Настройки chmod не будут установлены - PullRequest
0 голосов
/ 14 декабря 2011

Я пытаюсь chmod папка в OS X Lion

Однако настройки, кажется, не остаются, когда я делаю ...

users-MacBook-Air:MAMP user$ sudo chmod a=rwx /tmp

users-MacBook-Air:MAMP user$ ls -l /tmp
lrwxr-xr-x@ 1 root  wheel  11 Jul 20 23:44 /tmp -> private/tmp

Ответы [ 3 ]

1 голос
/ 14 декабря 2011

Первая буква l в lrwxr-xr-x означает, что /tmp является символической ссылкой .

Эта часть /tmp -> private/tmp означает, что она ссылается на private/tmp.

С man chmod:

chmod никогда не изменяет разрешения символических ссылок; chmod Системный вызов не может изменить свои разрешения. Это не является проблемой поскольку разрешения символических ссылок никогда не используются. Тем не мение, для каждой символической ссылки, указанной в командной строке, chmod изменяется права доступа к указанному файлу. Напротив, chmod игнорирует символические ссылки, встречающиеся при рекурсивных обходах каталогов.

Таким образом, вы можете спокойно игнорировать разрешения вашей ссылки.

Обратите внимание, что private/tmp - это путь относительно папки, в которой находится /tmp - /. Его абсолютный путь /private/tmp.

1 голос
/ 14 декабря 2011

Это потому, что вы пытаетесь установить разрешения для символической ссылки.Это невозможно.Вместо этого примените chmod к private / tmp

0 голосов
/ 16 мая 2018

Проверено на macOS.

Вы можете изменить разрешения символической ссылки, написав chmod -h 755 file.Из руководства chmod параметр -h изменяет режим символической ссылки вместо файла, на который указывает ссылка.Без опции -h, chmod просто изменит режим файла, на который указывает символическая ссылка.

Имейте в виду, чтобы проверить, было ли разрешение файла успешно установлено или нет, потому что в некоторых случаях, несмотря на правильную команду, символическая ссылка не будет установлена.Я не знаю точный процесс, вызывающий следующее, но, похоже, существуют определенные параметры безопасности, которые позволяют изменять символическую ссылку только для определенных пользователей.

Если вы не являетесь пользователем root, вы можете временно изменить разрешения символической ссылки, работая с ней в папке /tmp.Папка /tmp - это специальная папка, потому что установлен ее фиксированный бит.Прочитайте man sticky*, чтобы узнать больше о липких битах, в нем даже указан /tmp в качестве примера папки.Любой каталог, принадлежащий root, чей липкий бит установлен, будет работать, но /tmp - это каталог, который, скорее всего, будет доступен на данном компьютере.Это важно, поскольку в качестве каталога, принадлежащего root, чей залипший бит установлен, он позволяет пользователям без полномочий root записывать в файлы, принадлежащие root.Это означает, что если вы обнаружите, что, когда вы пытаетесь изменить разрешения символической ссылки, она продолжает возвращаться к своему старому разрешению, вы можете попытаться изменить разрешения символической ссылки в /tmp, и она сохранит вновь установленные разрешения.Однако имейте в виду, что если вы столкнулись с препятствием на пути возврата разрешений, то перемещение файла обратно в исходный каталог приведет к тому, что разрешения будут возвращены к тому, к чему он всегда возвращается.В моем случае он вернулся в абсолютный режим 0777.Кроме того, имейте в виду, что разрешения символьной ссылки не влияют на права доступа к файлу, на который он ссылается, поскольку они определяются разрешениями самого файла.

* В терминалевведите man sticky и нажмите ENTER, и документация для sticky будет отображена.Нажмите q для выхода.В качестве альтернативы см. Sticky bit в Википедии .

...