Почему chown
команда только для root? Почему пользователи без полномочий root не могут использовать chown для передачи своих файлов?
75
Почему chown
команда только для root? Почему пользователи без полномочий root не могут использовать chown для передачи своих файлов?
chown
чтобы раздавать файлы , которыми они владеют. (Я видел системы, в которых, в зависимости от конфигурации файловой системы, вы можете.)Ответы:
Большинство систем Unix запрещают пользователям «отдавать» файлы, то есть пользователи могут работать, только
chown
если у них есть права целевого пользователя и группы. Поскольку для использованияchown
требуется владение файлом или наличие прав root (пользователи никогда не могут присваивать файлы других пользователей), только root может работать,chown
чтобы сменить владельца файла на другого пользователя.Причина этого ограничения заключается в том, что передача файла другому пользователю может привести к возникновению плохих вещей в необычных, но все же важных ситуациях. Например:
chown
чтобы этот файл стал владельцем другого пользователя Билла. После этого файл будет считаться дисковой квотой Билла, даже если файл может использовать только Алиса.источник
/bin/bash
, устанавливать его, а затемchown
- кому угодно. Теперь они имеют доступ к оболочке как этот человек.chown
всегда очищает биты setuid и setgid.drwxr-xr-x ring0 ring0 .
), в котором у root есть обычный file (-rw-r--r-- root root file
), почему я не могу этого сделать,chown ring0 file
так как ему все равно разрешено делать, какring0
,cp file x ; rm file ; mv x file
(и некоторые необязательныеtouch sometime file
...)?В Linux вам нужна возможность CAP_CHOWN для chown. root предоставляется таким. Обратитесь к: http://vouters.dyndns.org/tima/Linux-OpenVMS-C-Implementing_chown.html за разъяснениями. Если вы намереваетесь предоставить возможность CAP_CHOWN, соберите свой код с помощью libcap-ng или libcap, как показано на: http://vouters.dyndns.org/tima/Linux-PAM-C-Pluggable_Authentication_Modules_programming_example.html, где вам нужно просто заменить CAP_AUDIT_WRITE с CAP_CHOWN.
источник
Вы можете запустить команду, но она не будет работать, если вы не являетесь пользователем root. Это просто: представьте себе пользователя, который может сменить программное обеспечение на пользователя root. Он может добавить бит setuid и, вуаля, парень - root! Таким образом, использование может добавить бит с помощью chmod, но нет никаких шансов сменить владельца файлов.
источник