У меня был хороший опыт с Поваренной книгой удара: Решения и Примеры для Пользователей удара от O’Reilly. Это имеет решения фактических проблем/ситуаций, которые я должен был разрешить. Все рецепты идут с обсуждением того, почему оно было сделано этот путь; и у многих также есть способы, которыми это, возможно, было сделано по-другому. Индивидуальное изучение.
Довольно дешевый как электронная книга.
Предположим, что корень работает в каталоге, в который может записать Eve. Существует файл foo
в этом каталоге, который должен быть изменен для принадлежности Eve. Так базируются типы chown eve foo
. Но непосредственно перед тем, как корневые хиты Входят, выполнения Кануна ln -sf /etc/passwd foo
. Теперь /etc/passwd
принадлежит Eve! Если корень может работать chown -h eve foo
чтобы удостовериться, что не следовала за символьными ссылками, затем, большая часть вреда, который может быть причинен, - то, что некоторый другой файл в том же каталоге был изменен для принадлежности Eve.
lchown
также удобно, когда Вы изменяете владельца дерева каталогов. Вы не должны волноваться о случайном влиянии на файл вне дерева, потому что Вы звонили chown
на символьной ссылке.
Apache может быть настроен для следования за символьными ссылками, только если владелец ссылки соответствует владельцу места назначения. Это может помочь препятствовать тому, чтобы пользователи создали ссылки для веб-доступа к файлам, которыми они не владеют (например,/etc/passwd).
... так же скажем, Вы, как корень, хотели, чтобы апач перешел по ссылке для отображения определенного файла журнала, который принадлежал xymon или чему-то, но Вы не хотели ослаблять безопасность апача, позволяя этому следовать за символьными ссылками независимо от владельца. Затем Вы могли бы хотеть сделать xymon владельцем символьной ссылки.
/etc/passwd
, затем badguy мог бы иметь доступ для чтения к тому файлу, не имея никакого другого локального доступа - но будет мешаться символьной ссылкой, принадлежавшей апачу.
– Lars Rohrbach
13.03.2012, 17:35
Первый ответ, похоже, не задается вопросом, а второй только относится только к Apache.
Одно я могу подумать о Linux в целом, заключается в том, что это возможно только для обычного пользователя сделать жесткую ссылку на символическую ссылку, если пользователь является владельцем символической ссылки. Почему кто-то хотел бы сделать такую ссылку, я не знаю.
Другое, что обычный пользователь может изменить только право собственности в группу файла, если пользователь владеет файлом (и также является членом группы, к которому добавляется файл.), Который вызывает вопрос о том, что Групповая владение символической ссылкой делает. В организации это может быть полезно в качестве тега, чтобы указать, какая команда будет нуждаться в ссылке.
Также на Ubuntu, по крайней мере, любой может обновить временную метку символической ссылки. Однако могут быть некоторые системы, которые позволяют владельцу. Что хорошего Timestamp делает для символической связи, я не уверен, но это может дать некоторую полезную информацию о том, сколько она используется.
Править: Я только что понял еще одну причину, по которой владение будет важно. Ссылка может быть внутри липкой каталога, где только владелец файла может удалить или переименовать его.
У меня есть программа, которая добавляет в файл журнала. Эти файлы журналов создаются ежемесячно, каждый из которых называется по-разному. Вместо того, чтобы программное обеспечение выяснял точное имя файла, я использую «общее» имя файла (скажем, данные.log), которое является символической ссылкой, указывая на текущий файл за этот месяц. Это автоматизировано на задании cron.
Теперь, как новый ежемесячный файл создается,он должен указать символическую ссылку на новый файл. При наличии конфликта между владением и группой программное обеспечение не может изменить символьную ссылку. Таким образом, вам нужны права собственности/группы на запись, чтобы изменить символьную ссылку.
Если вы хотите, чтобы на начальном экране отображалась ссылка на файл, символическая ссылка должна находиться в
"/home/имя пользователя/Рабочий стол"
.
И сама символическая ссылка должна принадлежать root :root (0 :0 ), иначе ссылка не работает.
(Ubuntu/Debian и т. д.)
mv myfile foo
, и корень закончит тем, что изменил владельцаmyfile
. Ноmyfile
должен быть файл, который Eve может создать или переместить в тот каталог, это не может быть никакой файл в системе. – Gilles 'SO- stop being evil' 02.03.2012, 02:47chown -h
как предостерегающая мера при изменении владения файла, который, как предполагается, не является символьной ссылкой, но все еще мог бы быть (пограничный случай, IMO). Это не объясняет, почему можно было бы хотеть изменить владение файла, который на самом деле предназначается, чтобы быть символьной ссылкой, которая является что вопрос, который задают. – Ivan X 18.01.2015, 08:03chown
изменитесь владелец "файла вне дерева" является всем, что Вы изменяете, владелец каталога? – Melab 18.11.2016, 06:16chown -R
, это звонит(l)chown
системный вызов на каждой записи каталога. Если запись каталога является символьной ссылкой затем, Вы не должны звонитьchown
системный вызов на нем, потому что это влияло бы на цель ссылки, которая может быть расположена вне дерева. – Gilles 'SO- stop being evil' 18.11.2016, 12:31