Почему изменение владелец символьной ссылки в Linux?

У меня был хороший опыт с Поваренной книгой удара: Решения и Примеры для Пользователей удара от O’Reilly. Это имеет решения фактических проблем/ситуаций, которые я должен был разрешить. Все рецепты идут с обсуждением того, почему оно было сделано этот путь; и у многих также есть способы, которыми это, возможно, было сделано по-другому. Индивидуальное изучение.

Довольно дешевый как электронная книга.

11
02.03.2012, 01:37
5 ответов

Предположим, что корень работает в каталоге, в который может записать Eve. Существует файл foo в этом каталоге, который должен быть изменен для принадлежности Eve. Так базируются типы chown eve foo. Но непосредственно перед тем, как корневые хиты Входят, выполнения Кануна ln -sf /etc/passwd foo. Теперь /etc/passwd принадлежит Eve! Если корень может работать chown -h eve foo чтобы удостовериться, что не следовала за символьными ссылками, затем, большая часть вреда, который может быть причинен, - то, что некоторый другой файл в том же каталоге был изменен для принадлежности Eve.

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

6
27.01.2020, 19:58
  • 1
    спасибо, "Если корень может выполнить показанное-h нечто боба, чтобы удостовериться, что не следовал за символьными ссылками, то большая часть вреда, который может быть причинен, - то, что некоторый другой файл в том же каталоге был изменен для принадлежности Eve".. Я предполагаю, что Вы имеете в виду "показанный-h нечто кануна". Другой файл, который мог бы быть изменен, это - символьная ссылка, я исправляюсь? –  user368507 02.03.2012, 02:22
  • 2
    @user5528 другой файл не мог бы быть символьной ссылкой: Eve может все еще работать mv myfile foo, и корень закончит тем, что изменил владельца myfile. Но myfile должен быть файл, который Eve может создать или переместить в тот каталог, это не может быть никакой файл в системе. –  Gilles 'SO- stop being evil' 02.03.2012, 02:47
  • 3
    В то время как интересный, и очевидно утвержденный автором вопроса, я не вижу, как этот ответ рассматривает вопрос. Это, кажется, больше объясняет, почему можно было бы использовать chown -h как предостерегающая мера при изменении владения файла, который, как предполагается, не является символьной ссылкой, но все еще мог бы быть (пограничный случай, IMO). Это не объясняет, почему можно было бы хотеть изменить владение файла, который на самом деле предназначается, чтобы быть символьной ссылкой, которая является что вопрос, который задают. –  Ivan X 18.01.2015, 08:03
  • 4
    Почему был бы chown изменитесь владелец "файла вне дерева" является всем, что Вы изменяете, владелец каталога? –  Melab 18.11.2016, 06:16
  • 5
    @Melab, Когда Вы изменяете владельца дерева каталогов, т.е. unning утилита chown -R, это звонит (l)chown системный вызов на каждой записи каталога. Если запись каталога является символьной ссылкой затем, Вы не должны звонить chown системный вызов на нем, потому что это влияло бы на цель ссылки, которая может быть расположена вне дерева. –  Gilles 'SO- stop being evil' 18.11.2016, 12:31

Apache может быть настроен для следования за символьными ссылками, только если владелец ссылки соответствует владельцу места назначения. Это может помочь препятствовать тому, чтобы пользователи создали ссылки для веб-доступа к файлам, которыми они не владеют (например,/etc/passwd).

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

8
27.01.2020, 19:58
  • 1
    Хорошо. Я знаю, что это не связано, но какой смысл этого поведения в апаче? Я имею в виду, может ли пользователь считать файл, почему беспокойство считало его из веб-доступа? –  user368507 02.03.2012, 02:11
  • 2
    ну, это не просто локальный пользователь, читающий файл; если апач может считать его, то потенциально все могут считать его. И если некоторая апачская уязвимость позволила создание символьной ссылки на /etc/passwd, затем badguy мог бы иметь доступ для чтения к тому файлу, не имея никакого другого локального доступа - но будет мешаться символьной ссылкой, принадлежавшей апачу. –  Lars Rohrbach 13.03.2012, 17:35

Первый ответ, похоже, не задается вопросом, а второй только относится только к Apache.

Одно я могу подумать о Linux в целом, заключается в том, что это возможно только для обычного пользователя сделать жесткую ссылку на символическую ссылку, если пользователь является владельцем символической ссылки. Почему кто-то хотел бы сделать такую ​​ссылку, я не знаю.

Другое, что обычный пользователь может изменить только право собственности в группу файла, если пользователь владеет файлом (и также является членом группы, к которому добавляется файл.), Который вызывает вопрос о том, что Групповая владение символической ссылкой делает. В организации это может быть полезно в качестве тега, чтобы указать, какая команда будет нуждаться в ссылке.

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

Править: Я только что понял еще одну причину, по которой владение будет важно. Ссылка может быть внутри липкой каталога, где только владелец файла может удалить или переименовать его.

2
27.01.2020, 19:58

У меня есть программа, которая добавляет в файл журнала. Эти файлы журналов создаются ежемесячно, каждый из которых называется по-разному. Вместо того, чтобы программное обеспечение выяснял точное имя файла, я использую «общее» имя файла (скажем, данные.log), которое является символической ссылкой, указывая на текущий файл за этот месяц. Это автоматизировано на задании cron.

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

0
27.01.2020, 19:58

Если вы хотите, чтобы на начальном экране отображалась ссылка на файл, символическая ссылка должна находиться в

"/home/имя пользователя/Рабочий стол"

.

И сама символическая ссылка должна принадлежать root :root (0 :0 ), иначе ссылка не работает.

(Ubuntu/Debian и т. д.)

1
02.02.2020, 06:57

Теги

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