Por que o chown
comando é somente raiz? Por que os usuários não raiz não podem usar o chown para distribuir os arquivos que possuem?
75
Por que o chown
comando é somente raiz? Por que os usuários não raiz não podem usar o chown para distribuir os arquivos que possuem?
chown
para doar os arquivos que possuem? (Eu sistemas onde, dependendo da configuração do sistema de arquivos visto, você pode.)Respostas:
A maioria dos sistemas unix impede que os usuários “entreguem” arquivos, ou seja, os usuários só podem executar
chown
se tiverem os privilégios de usuário e grupo de destino. Como o usochown
requer a propriedade do arquivo ou a raiz (os usuários nunca podem se apropriar dos arquivos de outros usuários), somente o root pode executarchown
para alterar o proprietário de um arquivo para outro usuário.O motivo dessa restrição é que a distribuição de um arquivo a outro usuário pode permitir que coisas ruins aconteçam em situações incomuns, mas ainda importantes. Por exemplo:
chown
para tornar esse arquivo pertencente a outro usuário Bill. O arquivo será contado na cota de disco de Bill, embora apenas Alice possa usá-lo.fonte
/bin/bash
, configurá-lo e depoischown
para quem quiser. Agora eles têm acesso ao shell como essa pessoa.chown
sempre limpa os bits setuid e setgid.drwxr-xr-x ring0 ring0 .
) no qual o root tem um arquivo regular (-rw-r--r-- root root file
), por que não posso fazer,chown ring0 file
pois, de qualquer maneira, é permitido fazer isso, comoring0
,cp file x ; rm file ; mv x file
(e alguns opcionaistouch sometime file
...)?No Linux, você precisa do recurso CAP_CHOWN para exibir. raiz é concedida tal. Consulte: http://vouters.dyndns.org/tima/Linux-OpenVMS-C-Implementing_chown.html para obter explicações. Se você pretende fornecer o recurso CAP_CHOWN, construa seu código com libcap-ng ou libcap, conforme demonstrado por: http://vouters.dyndns.org/tima/Linux-PAM-C-Pluggable_Authentication_Modules_programming_example.html onde você deve substituir CAP_AUDIT_WRITE com CAP_CHOWN.
fonte
Você pode iniciar o comando, mas ele não funcionará se você não for root. É fácil: imagine um usuário que possa alterar um software para usuário root. Pode adicionar o bit setuid e, voilà, o cara é root! Portanto, o uso pode adicionar um pouco ao chmod, mas não há chance de alterar o proprietário dos arquivos.
fonte