Что такое Ubuntu-эквивалент флага OSX `chmod -h`?

В OSX я могу установить разрешения самой символической ссылки (вместо того, что она указывает на использование -h). Со страницы man:

 -h      If the file is a symbolic link, change the mode of the link itself rather than the file that the link points to.

В Ubuntu 14.04 я пытаюсь установить разрешения для символической ссылки, но она устанавливается только для цели символической ссылки.

Это касается символической ссылки с /home/nagios/.ssh/someprivatekey на /somewhere/else/privatekey, поэтому разрешения важны для ssh. Как мне этого добиться?

13
задан 22 May 2015 в 16:16

2 ответа

Не возможный. Нет никакого пути, так как полномочия на символьной ссылке бессмысленны (символьная ссылка не является файлом; это только указывает на файл). Способ сделать это с Linux до ACL все же.

символьная ссылка объяснены как...

значения битов режима файла для созданной символьной ссылки являются неуказанными. Все интерфейсы, определенные POSIX.1-2008, должны вести себя, как будто содержание символьных ссылок может всегда читаться, за исключением того, что значение битов режима файла, возвращенных в st_mode поле структуры статистики, является неуказанным.

<час>

различие здесь: chmod и chmod... это - BSD по сравнению с Linux.

<час>

Не уверенный, если это важно, но относительно SSH: это использует статистика (2) , не lstat (2) для получения полномочий.

  • статистика () статистика файл, на который указывает путь и, заполняет buf.
  • lstat () идентичен статистике (), за исключением того, что, если путь является символьной ссылкой, то сама ссылка указана, не файл, к которому это относится.
0
ответ дан 22 May 2015 в 16:16

Вы не можете. Лежание в основе chmod системный вызов просто не поддерживает это в Linux, и в этом отношении, Linux не заботится о полномочиях ссылки также. От man chmod :

chmod never changes the permissions of symbolic links; the chmod system
call cannot change their permissions.  This is not a problem since  the
permissions  of  symbolic  links  are  never  used.   However, for each
symbolic link listed on the command line, chmod changes the permissions
of  the  pointed-to  file.   In  contrast, chmod ignores symbolic links
encountered during recursive directory traversals.

Что касается жестких ссылок или связывают, монтируется, полномочия источника используются, таким образом, ни один из трех стандартных способов отразить содержание файла в другом месте не может помочь Вам в этом.

0
ответ дан 22 May 2015 в 16:16

Другие вопросы по тегам:

Похожие вопросы: