michaelmeier Geschrieben 15. September 2008 Geschrieben 15. September 2008 Moin zusammen, ich habe hier ein Problem mit der Erstellvon von ACLs unter Solaris. Folgendes Ziel: ich möchte für ein Verzeichnis die Berechtigung 760 vergeben; ferner sollen noch zwei weitere Gruppen berechtigt werden; hier sollen die Rechte als 7 und 6 vergeben werden. Zum Test habe ich unter /tmp eine kleine Verzeichnisstruktur angelegt: Werden Dateien vom Owner angelegt, so liefert getfacl folgende Angaben: cd /tmp for f in 1 2 3 4 5 6; do mkdir expdir; cd expdir; touch testfile${f}; echo "1" >> testfile${f}; done Die ACLs sehen dann beispielsweise für /tmp/expdir/testfile1 wie folgt aus: # file: testfile1 # owner: user1 # group: gruppe1 user::rw- group::r-- #effective:r-- mask:rwx other:--- Mein naiver Ansatz zum Test für die Datei /tmp/expdir/testfile1: setfacl -s user::rw-,group::r--,mask:rw-,other:---,u:testuser:rw- /tmp/expdir/testfile1 (vgl. www.fz-juelich.de/jsc/files/docs/tki/tki-0314.pdf) Ergebnis: /tmp/expdir/testfile1: failed to set acl entries setacl error: Operation not applicable Aber warum? Was mache ich falsch? Raff ich nicht... Kann jemand helfen? Thx in advance! Zitieren
lordy Geschrieben 15. September 2008 Geschrieben 15. September 2008 Ich würde mal tippen, das es daran liegt, das tmpfs (was ja normalerweise /tmp ist) keine ACLs unterstützt. Zitieren
michaelmeier Geschrieben 15. September 2008 Autor Geschrieben 15. September 2008 Daraus resultieren zwei Fragen: a) wie kann ich das herausfinden? warum klappt es dann im Applikationsverzeichnis? Hä? :confused: :floet: Mist. Bzw: Hervorragend! Hat sich damit soeben erledigt. :floet: Thx a lot! Zitieren
michaelmeier Geschrieben 15. September 2008 Autor Geschrieben 15. September 2008 Moin zusammen, also das Setzen der ACLs klappt nun - aber irgendwie sind die noch nicht wirksam. Hier das Setting: setfacl -m user::rwx,group::---,other:---,mask:rw-,group:aba_am:rw-,user:b78mun:rwx,d:user::rwx,d:group::---,d:mask:rw-,d:other:---,d:group:aba_am:rw- test2 getfacl test2 # file: test2 # owner: abacus # group: abacus user::rwx user:meier:rwx #effective:rw- group::--- #effective:--- group:aba_am:rw- #effective:rw- mask:rw- other:--- default:user::rwx default:group::--- default:group:aba_am:rw- default:mask:rw- default:other:--- Wenn ich nun als User meier versuche ins Verzeichnis test2 zu wechseln, mir dort vorhandene Dateien anzuschauen oder was auch immer: ich bekomme immer ein "permission denied". Bin ein wenig ratlos. Hat da jemand noch eine Idee? Zitieren
Forcid Geschrieben 15. September 2008 Geschrieben 15. September 2008 Hast du die Regeln auch rekursiv gesetzt? Also so, dass sie auch für Unterverzeichnisse bzw eben auch den Inhalt von Test2 wirken? -R, --recursive recurse into subdirectories Zitieren
michaelmeier Geschrieben 15. September 2008 Autor Geschrieben 15. September 2008 guter tipp... ich wußte, ich habe da was vergessen. aber da kommen gleich bestimmt noch mehr punkte... ^^ danke für den hinweis! ich sehe hier den wald vor lauter bäumen nicht... Zitieren
michaelmeier Geschrieben 15. September 2008 Autor Geschrieben 15. September 2008 Ok - das tut soweit für das Verzeichnis und dort neu angelegte Dateien und Unterverzeichnisse. Nochmals vielen Dank! Nun zur tatsächlichen Situation: Ich möchte das gerne für ein bestehendes Verzeichnis anwenden - rekursiv für alle vorhandenen Unterverzeichnisse und Dateien ab einem bestimmten Pfad. Gibt's die Möglichkeit, das auch rekursiv für alle bereits vorhandenen Dateien und Verzeichnisse umzusetzen? Denn das klappt mit -r nur für neu angelegte Dateien / Verzeichnisse. Irgendwie komme ich mir gerade total n00blike vor. Ich hoffe, ihr habt trotzdem nen Tipp für mich... :hells: Zitieren
Forcid Geschrieben 15. September 2008 Geschrieben 15. September 2008 setfacl 2.2.45 -- set file access control lists Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ... -m, --modify=acl modify the current ACL(s) of file(s) -M, --modify-file=file read ACL entries to modify from file -x, --remove=acl remove entries from the ACL(s) of file(s) -X, --remove-file=file read ACL entries to remove from file -b, --remove-all remove all extended ACL entries -k, --remove-default remove the default ACL --set=acl set the ACL of file(s), replacing the current ACL --set-file=file read ACL entries to set from file --mask do recalculate the effective rights mask -n, --no-mask don't recalculate the effective rights mask -d, --default operations apply to the default ACL -R, --recursive recurse into subdirectories -L, --logical logical walk, follow symbolic links -P, --physical physical walk, do not follow symbolic links --restore=file restore ACLs (inverse of `getfacl -R') --test test mode (ACLs are not modified) --version print version and exit --help this help text Wieso soll das nur bei neuangelegten Dateien gehen? Ansonsten würd ich -xb nehmen und dann mit -mr neue ACLs setzen bzw das versuchen. Mit --test kannst du erstmal testen. Allerdings weiß ich nun nicht, ob die Befehle unter Solaris identisch sind. Ansonsten setfacl --help oder man setfacl. Sollte dir weiterhelfen. btw: So n00blike ist das net, haben alle mal angefangen Also teste weiter, dabei lernst du und nächstes Mal hilfst du hier anderen... Zitieren
michaelmeier Geschrieben 15. September 2008 Autor Geschrieben 15. September 2008 Wieso soll das nur bei neuangelegten Dateien gehen? Das frage ich mich auch gerade - ist aber scheinbar so. Wenn die Permissions mit -R für ein Verzeichnis setze, dann bleiben die dort bereits existenten Dateien davon völlig unbeeindruckt. Bei -r bietet bei Solaris nur ein Recalculates the permissions for the ACL mask entry. The permissions specified in the ACL mask entry are ignored and replaced by the maximum permissions necessary to grant the access to all additional user, file group owner, and additional group entries in the ACL. The permissions in the additional user, file group owner, and additional group entries are left unchanged. Na, Notfalls gibt's die "Hau-drauf-und-Schluss-Methode" . find ./ -type f | while read file; do getfacl demofile | setfacl -f - $file done Nicht schick - aber billig. Nochmals danke für deine Tipps! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.