Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Unix - ACL - klappt nicht

Empfohlene Antworten

Veröffentlicht

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!

Daraus resultieren zwei Fragen:

a) wie kann ich das herausfinden?

B) warum klappt es dann im Applikationsverzeichnis?

Hä? :confused:

:rolleyes: :floet:

Mist. Bzw: Hervorragend! :)

Hat sich damit soeben erledigt. :floet:

Thx a lot!

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?

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

guter tipp... :D

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...

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:

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...

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. :D

Nochmals danke für deine Tipps!

Kein Ding ;)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.