Par mon expérience, un utilisateur non privilégié ne peut pas accéder à la prise Unix qu'il ne possède pas sans x bit défini. Que fait exactement ce bit? Merci
linux
permissions
unix-sockets
Владимир Тюхтин
la source
la source
0644
signifie simplement une autorisation de lecture pour les membres du groupe et "autres", de sorte que seul le propriétaire pourrait accéder à la socket (puisque l'autorisation d'écriture la contrôle).0666
, ou tout0222
comme une autorisation de lecture n'est pas nécessaire, serait suffisant pour donner accès à tout le monde. Mais, plutôt que de donner des autorisations à tout le monde, je chercherais à utiliser des groupes pour autoriser l'accès.Réponses:
Rien, comme je peux le voir.
Linux unix page de manuel (7) dit que les permissions du répertoire contenant un socket appliquent normalement (vous devez
+x
sur/foo
se connecter à/foo/sock
et+w
sur/foo
la création/foo/sock
) et que écrire des contrôles d'autorisation de connexion à la prise elle - même:Apparemment, certains autres systèmes se comportent différemment:
unix(4)
sur FreeBSD décrit des exigences similaires. La page de manuel Linux ne dit pas si l'accès au socket sur certains systèmes ignore également les autorisations du répertoire .La suppression du
x
bit du socket semble avoir pour effet de donner une erreur différente pour essayer d'exécuter le socket, mais ce n'est pas vraiment une différence pratique:(J'ai également testé qu'en effet, seul le
w
bit semblait avoir de l'importance pour accéder au socket sur Debian's Linux 4.9.0.)Peut-être que les sockets que vous vouliez dire avaient tous les bits d'autorisation supprimés de l'utilisateur, ou vous vouliez dire le
x
bit sur le répertoire?la source