Pourquoi la chown
commande est-elle uniquement root? Pourquoi les utilisateurs non root ne peuvent-ils pas utiliser chown pour distribuer des fichiers qu'ils possèdent?
permissions
not-root-user
chown
flegme
la source
la source
chown
pour donner des fichiers qu'ils possèdent? (J'ai vu des systèmes où, en fonction de la configuration du système de fichiers, vous le pouvez.)Réponses:
La plupart des systèmes Unix empêchent les utilisateurs de «donner» des fichiers, autrement dit, les utilisateurs ne peuvent s'exécuter
chown
que s'ils disposent des privilèges d'utilisateur et de groupe cibles. Étant donné que l'utilisationchown
nécessite de posséder le fichier ou d'être root (les utilisateurs ne peuvent jamais s'approprier les fichiers d'autres utilisateurs), seul root peut s'exécuterchown
pour remplacer le propriétaire d'un fichier par un autre utilisateur.La raison de cette restriction est que donner un fichier à un autre utilisateur peut permettre à de mauvaises choses de se produire dans des situations peu communes, mais néanmoins importantes. Par exemple:
chown
ce fichier pour le faire appartenir à un autre utilisateur, Bill. Le fichier serait alors comptabilisé dans le quota de disque de Bill même si seule Alice pouvait utiliser le fichier.la source
/bin/bash
, définir, puischown
le transférer à qui il veut. Maintenant, ils ont un accès shell en tant que personne.chown
efface toujours les bits setuid et setgid.drwxr-xr-x ring0 ring0 .
répertoire dir ( ) dans lequel root a un fichier standard (-rw-r--r-- root root file
), pourquoi ne puis-je pas le fairechown ring0 file
car il est de toute façon autorisé à le faire, commering0
,cp file x ; rm file ; mv x file
(et quelques optionneltouch sometime file
...)?Sous Linux, vous devez avoir la capacité CAP_CHOWN pour pouvoir chown. la racine est accordée tel. Voir: http://vouters.dyndns.org/tima/Linux-OpenVMS-C-Implementing_chown.html pour des explications. Si vous avez l'intention de donner la capacité CAP_CHOWN, construisez votre code avec libcap-ng ou libcap comme indiqué par: http://vouters.dyndns.org/tima/Linux-PAM-C-Pluggable_Authentication_Modules_programming_example.html où vous devez simplement remplacer CAP_AUDIT_WRITE. avec CAP_CHOWN.
la source
Vous pouvez lancer la commande mais cela ne fonctionnera pas si vous n'êtes pas root. C'est simple: imaginez un utilisateur capable de changer un logiciel en utilisateur root. Il peut ajouter le bit setuid et, voilà, le gars est root! Donc, l'utilisation peut ajouter le bit avec chmod, mais aucune chance de changer le propriétaire des fichiers.
la source