Il y a quelque temps, lors d'une conversation dans IRC, un utilisateur d'un canal dans lequel je me trouvais a suggéré à quelqu'un de définir un répertoire afin qu'il hérite de l'ID utilisateur sur les fichiers pour résoudre un problème rencontré par quelqu'un d'autre. À l'époque, j'ai pris la parole et dit que "Linux ne prend pas en charge les répertoires setuid". Après cela, la personne qui m'a donné des conseils m'a montré une boîte à pâte ( http://codepad.org/4In62f13 ) de son système honorant la permission setuid définie sur un répertoire.
Juste pour expliquer, quand je dis "linux ne prend pas en charge les répertoires setuid", ce que je veux dire, c'est que vous pouvez aller dans "répertoire chmod u + s" et cela mettra le bit sur le répertoire. Cependant, Linux (tel que je l'ai compris) ignore ce bit (sur les répertoires).
Essayez comme je pourrais, je ne peux pas tout à fait répliquer cette boîte à pâte. Quelqu'un m'a suggéré une fois qu'il pourrait être possible d'émuler le comportement avec selinux - et de jouer avec les règles, il est possible de forcer un uid sur un fichier, mais pas à partir d'une autorisation de répertoire setuid (que je peux voir). La lecture sur Internet a été assez peu informative - la plupart des endroits affirment "non, setuid sur les répertoires ne fonctionne pas avec linux" avec parfois "cela peut être fait dans des circonstances spécifiques" (comme ceci: http://arstechnica.com/ etc / linux / 2003 / linux.ars-12032003.html )
Je ne me souviens pas qui était la personne d'origine, mais le système d'origine était un système Debian 6, et le système de fichiers qu'il exécutait était monté xfs avec "default, acl". J'ai essayé de le répliquer, mais pas de chance jusqu'à présent (essayé jusqu'à présent avec différentes versions de debian, ubuntu, fedora et centos)
Quelqu'un peut-il me dire sur quoi ou comment obtenir un système pour honorer setuid sur un répertoire?
la source
grpid|bsdgroups
ounogrpid|sysvgroups
) qui signifie que les fichiers dans les répertoires sont créés avec le groupe du répertoire plutôt qu'avec le groupe du propriétaire; peut-être jouer avec ça?Réponses:
Setuid pour les répertoires ne se comporte pas comme setgid. Sauf si la sortie du shell était de FreeBSD, quelqu'un s'ennuyait et s'amusait un peu à vos dépens.
http://en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories
la source
Réponse partielle / solution:
J'essayais de faire la même chose, j'ai décidé de ne pas me battre et d'essayer une autre méthode. Ce que j'ai essayé était des listes de contrôle d'accès, pour définir des autorisations par défaut. (Remarque: vous devrez peut-être d'abord les activer).
Ici, testuser est utilisé pour exécuter des tests, et l'utilisateur normal peut supprimer les résultats, sans avoir à utiliser root (à chaque fois).
la source
Depuis RHEL
man chmod
Numériquement si je me souviens bien,
chmod 4711 ./dir
ajoute le bit set UID,chmod 2711 ./dir
ajoute le bit set gid pour6711
définir l'héritage uid + gid selon la démonstration dans pastebin.Par la page de manuel
chmod u+s
==chmod 4XXX
etchmod g+s
==chmod 2XXX
la source
=755
ou en00755
utilisant les chiffres