Vor einiger Zeit schlug ein Benutzer in einem Kanal, in dem ich mich befand, während eines Gesprächs im IRC vor, dass jemand ein Verzeichnis einrichten sollte, damit es die Benutzer-ID für Dateien erbt, um ein Problem zu lösen, das jemand anderes hatte. Zu der Zeit sprach ich und sagte "Linux unterstützt keine Setuid-Verzeichnisse". Danach zeigte mir die Person, die den Rat gab, einen Pastebin ( http://codepad.org/4In62f13 ) seines Systems, in dem die in einem Verzeichnis festgelegte Berechtigung setuid berücksichtigt wurde.
Nur um zu erklären, wenn ich sage "Linux unterstützt keine Setuid-Verzeichnisse", meine ich, dass Sie "chmod u + s Verzeichnis" gehen können und es das Bit im Verzeichnis setzt. Linux (wie ich es verstanden habe) ignoriert dieses Bit (in Verzeichnissen).
Versuchen Sie, wie ich könnte, ich kann diesen Pastebin einfach nicht ganz replizieren. Jemand hat mir einmal vorgeschlagen, dass es möglich sein könnte, das Verhalten mit Selinux zu emulieren - und mit Regeln herumzuspielen, es ist möglich, eine UID für eine Datei zu erzwingen, aber nicht von einer Setuid-Verzeichnisberechtigung (die ich sehen kann). Das Lesen im Internet war ziemlich uninformativ - die meisten Orte behaupten, "Nein, Setuid in Verzeichnissen funktioniert nicht mit Linux", gelegentlich "es kann unter bestimmten Umständen durchgeführt werden" (wie zum Beispiel: http://arstechnica.com/). etc / linux / 2003 / linux.ars-12032003.html )
Ich erinnere mich nicht, wer die ursprüngliche Person war, aber das ursprüngliche System war ein Debian 6-System, und das Dateisystem, das es ausführte, war xfs gemountet mit "default, acl". Ich habe versucht, das zu replizieren, aber bisher kein Glück (bisher mit verschiedenen Versionen von Debian, Ubuntu, Fedora und Centos versucht)
Kann mir jemand sagen, was oder wie Sie ein System dazu bringen, setuid in einem Verzeichnis zu ehren?
quelle
grpid|bsdgroups
odernogrpid|sysvgroups
), die bedeutet, dass Dateien in Verzeichnissen mit der Gruppe des Verzeichnisses und nicht mit der Gruppe des Besitzers erstellt werden. vielleicht damit spielen?Antworten:
Setuid für Verzeichnisse verhält sich nicht wie setgid. Sofern die Shell-Ausgabe nicht von FreeBSD stammte, war jemand gelangweilt und hatte ein wenig Spaß auf Ihre Kosten.
http://en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories
quelle
Teilantwort / Umgehung:
Ich habe versucht, das Gleiche zu tun, ich habe mich entschieden, nicht dagegen anzukämpfen und eine andere Methode auszuprobieren. Ich habe versucht, Zugriffssteuerungslisten zu erstellen, um Standardberechtigungen festzulegen. (Hinweis: Möglicherweise müssen Sie sie zuerst aktivieren.)
Hier wird testuser verwendet, um Tests auszuführen, und der normale Benutzer kann die Ergebnisse löschen, ohne (jedes Mal) root zu verwenden.
quelle
Von RHEL
man chmod
Wenn ich mich richtig erinnere, wird numerisch
chmod 4711 ./dir
das gesetzte UID-Bitchmod 2711 ./dir
hinzugefügt und das gesetzte GID-Bit6711
hinzugefügt, um die Vererbung von UID + GID gemäß der Demonstration in Pastebin festzulegen.Per Manpage
chmod u+s
==chmod 4XXX
undchmod g+s
==chmod 2XXX
quelle
=755
oder unter00755
Verwendung der