Je fais une petite expérience avec des bits de privilège spéciaux comme suit:
[root@localhost~]# useradd user1
[root@localhost~]# cp /bin/touch /home/
[root@localhost~]# chown user1:user1 /home/touch
[root@localhost~]# chmod u+s,g+s /home/touch
[root@localhost~]# ls -l /home/touch
-rwsr-sr-x 1 user1 user1 52656 Jun 26 14:17 /home/touch
[root@localhost~]# chmod o+w /usr/local/etc/
[root@localhost~]# ls -ld /usr/local/etc
drwxr-xrwx.2 root root 4096 Jun 26 14:14 /usr/local/etc/
[root@localhost~]# /home/touch /usr/local/etc/root.1
/home/touch: cannot touch '/usr/local/etc/root.1': Permission denied
Parce que les deux bits suid et sgid sont définis pour l'exécutable /home/touch
, Je m'attendais à ce que lorsque root exécute la commande /home/touch /usr/local/etc/root.1
, l'efficacité user:group
devrait être user1:user1
, qui devrait avoir un accès en écriture à /usr/local/etc
répertoire (voir o=rwx
).
Mais le résultat m'a rendu perplexe. En fait, toute personne appartenant à la root
Le groupe échouera comme la racine, mais d'autres utilisateurs pourront exécuter la commande ci-dessus avec succès.
Seulement après avoir changé le mode de répertoire par chmod g+w /usr/local/etc
, les utilisateurs appartenant au root
groupe exécuter la commande sans erreur de permission.
Ne doit pas l'utilisateur effectif: groupe pour toute personne en cours d'exécution /home/touch
être user1:user1
? Quel est le problème avec le groupe racine? Est-ce que j'ai manqué quelque chose?
J'ai pris l'expérience sur RHEL 6.4 64 bits
la source
/usr/local/etc
(“drwxr-xrwx.
”) Se termine par un point. Cela peut signifier que le répertoire a une liste de contrôle d'accès. Pouvez-vous vérifier cela?