По моему опыту непривилегированный пользователь не может получить доступ к сокету unix, которому он / она не владеет без установленного x-битного бита. Что именно делает этот бит? Спасибо
linux
permissions
unix-sockets
Владимир Тюхтин
источник
источник
0644
означает просто разрешение на чтение для членов группы и «других», поэтому только владелец сможет получить доступ к сокету (так как разрешение на запись управляет им).0666
или, так0222
как разрешение на чтение не требуется, этого будет достаточно, чтобы предоставить доступ каждому. Но вместо того, чтобы давать разрешения всем, я бы рассмотрел использование групп для предоставления доступа.Ответы:
Ничего, как я вижу.
Linux человек страница UNIX (7) говорит о том , что права доступа к директории , содержащие сокет обычно применяются (т.е. вам нужно
+x
на/foo
подключение к/foo/sock
, и+w
на/foo
создание/foo/sock
) , и что записи управления разрешения при подключении к самой розетке:Видимо, некоторые другие системы ведут себя по-другому:
unix(4)
на FreeBSD описаны аналогичные требования. В справочной странице Linux не сказано, игнорирует ли доступ к сокетам в некоторых системах права доступа к каталогу .Удаление
x
бита из сокета, по-видимому, приводит к другой ошибке при попытке выполнить сокет, но это не так много практического различия:(Я также проверил, что действительно только
w
бит имеет значение для доступа к сокету в Linux 4.9.0 Debian.)Возможно, у сокетов, которые вы имели в виду, были удалены все биты прав доступа пользователя, или вы имели в виду
x
бит в каталоге?источник