Я получаю ошибку разрешений в CentOS 7, когда пытаюсь создать жесткую ссылку. С теми же разрешениями, установленными в CentOS 6, я не получаю ошибку. Проблема сосредоточена на групповых разрешениях. Я не уверен, какая версия ОС правильная, а какая нет.
Позвольте мне проиллюстрировать, что происходит. В моем текущем рабочем каталоге у меня есть два каталога: исходный и целевой. В начале пункт назначения пуст; Источник содержит текстовый файл.
[root@tc-dlx-nba cwd]# ls -l
total 0
drwxrwxrwx. 2 root root 6 Jun 12 14:33 destination
drwxrwxrwx. 2 root root 21 Jun 12 14:33 source
[root@tc-dlx-nba cwd]# ls -l destination/
total 0
[root@tc-dlx-nba cwd]# ls -l source/
total 4
-rw-r--r--. 1 root root 8 Jun 12 14:20 test.txt
[root@tc-dlx-nba cwd]#
Как видите, в отношении разрешений две директории - 777, причем для владельца и группы установлено значение root. Владелец и группа текстового файла также установлены в root. Тем не менее, разрешения для текстового файла доступны для чтения и записи для владельца, но только для чтения для группы.
Когда я вошел в систему как пользователь root, у меня нет проблем с созданием жесткой ссылки в целевом каталоге, указывающей на текстовый файл (в исходном каталоге).
[root@tc-dlx-nba cwd]# ln source/test.txt destination/
[root@tc-dlx-nba cwd]# ls destination/
test.txt
Однако, если я вхожу в систему как другой пользователь, в этом случае, администратор, я не могу создать ссылку. Я получаю: «Операция не разрешена».
[root@tc-dlx-nba cwd]# rm -f destination/test.txt
[root@tc-dlx-nba cwd]# su admin
bash-4.2$ pwd
/root/cwd
bash-4.2$ ln source/test.txt destination/
ln: failed to create hard link ‘destination/test.txt’ => ‘source/test.txt’: Operation not permitted
То, что происходит, на самом деле имеет смысл для меня, но, поскольку вышеизложенное разрешено в CentOS 6, я хотел проверить, не понял ли я что-либо. Для меня это похоже на ошибку в CentOS 6, которая была исправлена в CentOS 7.
Кто-нибудь знает, что дает? Правильно ли я считаю, что вышеуказанное поведение является правильным поведением? Это CentOS 6, что правильно? Или оба правы, и, возможно, есть какая-то скрытая проблема с правами доступа группы, которую я пропускаю? Спасибо.
Изменить: я только что попробовал тот же тест на виртуальной машине Debian v7, что у меня есть. Debian согласен с CentOS 7: «Операция не разрешена».
Правка № 2: Я только что попробовал то же самое на Mac OS X (Yosemite). Это работало так же, как и CentOS 6. Другими словами, это позволило создать ссылку. (Примечание. На OS X корневая группа называется «wheel». Насколько я могу судить, это единственное отличие.)