Почему непривилегированный пользователь не может изменить владельца файла?

из chown (2):

только привилегированный процесс (Linux: один с возможностью CAP_CHOWN) может изменить владельца файла. Владелец файла может изменить группу файла на любую группу, членом которой он является. Привилегированный процесс (Linux: with CAP_CHOWN)может произвольно изменять группу.

в чем причина такого ограничения? Почему непривилегированный пользователь не может изменить владельца файла, которым он владеет (ie. нет /и т. д./тень)?

$ touch blah
$ chown root:root blah
chown: changing ownership of `blah': Operation not permitted
29
задан Alexandru
16.11.2022 19:29 Количество просмотров материала 3051
Распечатать страницу

4 ответа

позволяя пользователям "отдавать" файлы, которые вы запускаете вразрез с различными функциями ОС. Такие как:

Taking up another user's disk quota.
Impersonating another user (or even root) via setuid.
Having insufficient privileges to undo a mistaken chown.
Making it appear that someone else had created a given file.
Setting up cron jobs to run on other user's accounts.
And many more...
26
отвечен Chris Nava 2022-11-18 03:17

Это просто личный выбор дизайнеров linux, чтобы не допустить этого - все причины псевдо-безопасности,дано, просторные, а есть UNIX-систем, которые позволяют это.

Я думаю, что эта функциональность сводилась к тому, следовало ли поведение вашего unix 'System-V' (AT&T) или unix (BSD) Беркли...

Что касается других вопросов безопасности, отметил:

  • олицетворение другого пользователя (или даже root) через setuid.

    без проблем: изменение владельца удаляет все биты setXid (U/G)

  • имея недостаточно привилегий, чтобы отменить ошибочный chown

    Не риск безопасности, но он может быть в системах, разрешить изменение пользователя, вы можете изменить его обратно, если он находится в каталоге у вас есть, другой мудрый: "будьте осторожны"!

  • кажется, что кто-то другой создал данный файл.

    Он все равно будет в каталог, доступный для записи. То есть. вы не можете переместить его в свой домашний каталог, если он не открыт для записи в вашу группу или все (или вы специально, если ACL доступны).

  • настройка заданий cron для запуска на аккаунтах других пользователей.

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

  • Если кто-то может изменить собственности, то каждый может изменить разрешения на доступ к любому файлу в системе.

    нет: только если пользователь "владеет" каталогом, содержащим этот файл. То есть. Я могу дать файл с именем 'passwd' root, но я не могу переместить его в /etc/, если у меня нет разрешения на запись в/etc/.

  • квоты

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

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

Я бы сказал, что приведенный выше "ответ" должен быть немаркирован как ответ, поскольку это не настоящий ответ. Это больше дизайнерское решение - я просто не знаю, что такое компромисс.

там могут быть вопросы безопасности, не поднятые выше, что было бы обоснованные опасения, но те, выше, не действительный.

IMO, это должно быть устанавливаемое системой "значение" в "/proc", но, вообще говоря, я думаю, что большинству людей это не так уж и важно.

Если бы была сильная необходимость, 'Краун' может быть повышенной безопасностью и изменен, и тогда корень настройки W/установлен бит setuid, чтобы предоставить возможность его реализовать такую политику.

8
отвечен Astara 2022-11-18 05:34

Ну, если кто-то может изменить владельца, то любой может изменить разрешения, чтобы получить доступ к любому файлу в системе. Это плохо не только с точки зрения вредоносных программ (не требуется sudo), но и с точки зрения системного администратора. Если кто-то из пользователей может изменить какой-либо из файлов, то права доступа к файлам бесполезны.

6
отвечен Hello71 2022-11-18 07:51

потому что тогда пользователь может обойти квоты файловой системы. Если у меня есть квота 100МБ, а у тебя квота 100 МБ, загрузить 100МБ, то chmod а+р, Чаун вы, затем отправьте другой 100МБ.

5
отвечен 2022-11-18 10:08

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх