[gelöst] Erweiterte Dateiberechtigung | chmod | acl | umask

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

[gelöst] Erweiterte Dateiberechtigung | chmod | acl | umask

Beitrag von Rubberduck » 18.08.2013 19:31:15

Hallo,

folgendes möchte ich realisieren.

1. Dateien und Ordner, die in meiner smb Freigabe /share liegen, sollen immer [tom | users | others || 750] erstellt werden,
Tom alles, users lesen ausführen, der Rest nichts.
Und zwar soll das immer gesetzt/gewandelt werden wenn ich von der smb Freigabe zugreife und wenn ich als root über die Konsole zugreife (Ordner und Dateien erstelle).

Einmalig gesetzt: chown -R tom.users /share && chmod -R 750 /share
tom@DEB-SRV01:/share$ ll
insgesamt 28
drwxr-x--- 12 tom users 4096 Aug 4 15:33 00_backup
drwxr-x--- 26 tom users 4096 Jul 28 09:45 01_Bilder
drwxr-x--- 12 tom users 4096 Jul 27 15:03 03_Musik
drwxr-x--- 66 tom users 4096 Aug 12 23:48 04_Programme
drwxr-x--- 16 tom users 4096 Jul 5 14:20 05_Games
drwxr-x--- 8 tom users 4096 Aug 14 13:10 06_Skripte
drwxr-x--- 4 tom users 4096 Jul 20 22:16 10_log
usw...
Versucht habe ich schon folgendes
* SGID bit gesetzt
[quelle: Galileo LPIC1]
Wenn das SGID Bit auf ein Verzeichnis....wird jede Datei automatisch der Gruppe zugeordnet der auch das Verzeichnis gehört.
ist aber nur für Gruppen interessant und nicht ganz das was ich möchte.
Jeder neue Ordner und Datei gehören danach root.users[744], ich möchte aber das sie tom.users[750] gehören.

* ACL habe ich mir angeschaut,
FileACL in Debian
Debian.org / Permissions / ACL

Das hat bei mir merkwürdige Effekte.
Nur das + Zeichen signalisiert, das hier mit ACLs gearbeitet wurde ( scheint by Design so zu sein)

Code: Alles auswählen

 setfacl -d -m u:tom:7 10_log/
mkdir 10_log/hallo
tom@DEB-SRV01:/share/10_log$ ll
insgesamt 12
drwxrwx---+ 2 root root 4096 Aug 18 18:49 hallo
drwxr-x--- 2 tom users 4096 Jul 18 17:35 Report
drwxr-x--- 2 tom users 4096 Aug 15 12:10 RSYNC-Backup
Ich kann als User Tom Ordner und Dateien von root löschen. Verstehen tu ichs aber nicht wirklich und ich bin mir nicht ganz so sicher
ob das unbedingt mit acl zu tun hat.

* umask 0027 im /etc/profile
führt zwar dazu das Ordner richtig angelegt werden aber wenn root das macht, ist es danach auch sein Ordner. Also wieder nichts..



Könnt ihr mir helfen? Wie macht ihr das?
Zuletzt geändert von Rubberduck am 26.08.2013 15:37:29, insgesamt 2-mal geändert.

Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

Re: Erweiterte Dateiberechtigung | chmod | acl | umask

Beitrag von Rubberduck » 20.08.2013 13:03:35

...ich bin etwas erstaunt..sind meine Fragen schlecht formuliert oder ist irgendwas unklar?
Soll ich etwas an Informationen nachliefern?

Nur raus damit..

Gruß
Rubberduck

fbartels
Beiträge: 326
Registriert: 20.08.2009 10:06:56
Kontaktdaten:

Re: Erweiterte Dateiberechtigung | chmod | acl | umask

Beitrag von fbartels » 20.08.2013 14:25:29

Vielleicht nicht ganz die Lösung die du gesucht hat, aber ich habe das in der Vergangenheit immer über inotify gelöst. Hierzu verwende ich folgendes Skript (stammt größtenteils von einem privaten Wiki, dessen URL ich aber nicht mehr kenne):

Code: Alles auswählen

#!/bin/bash
# This script watches my home directory like a cybernetic hawk
DIR=/home/dir
OG=nobody:nogroup

echo "Initial chown in $DIR"
chown -R $OG $DIR

# Normal chown will actually spawn more inotify events.
# This means we have to only chown when we actually need to
function selective-chown {
   FILE=$1
   CURRENTOG=`stat -c %U:%G "$FILE"`
   if [ "$OG" != "$CURRENTOG" ]; then
        echo "   actually chowning $FILE"
        chown $OG "$FILE"
   fi
}

# Scripts cant read inotifywaits output easily, and we need to be careful with spaces
inotifywait -rm -e attrib -e create -e moved_to --format=%w%f $DIR \
| while read file; do
       selective-chown "$file"
       echo Running selective-chown on $file
done
Das hatte ich dann immer in einer Screen Session mit drin (um zu sehen was so passiert), lässt sich aber mit Sicherheit auch komplett im Hintergrund ausführen.

Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

Re: Erweiterte Dateiberechtigung | chmod | acl | umask

Beitrag von Rubberduck » 20.08.2013 14:40:30

Hallo und erstmal vielen Danke für deine Mühe.

Irgendwie kann ich nicht ganz glauben, dass kein Admin in seiner Firma solche Probleme hat.
Wenn ich doch in einer Firmenumgebung mehrere Gruppen habe, ist es doch durchaus nicht unnatürlich
die Verzeichnis und Dateirechte vorzugeben?

Unter Windows kann ich sowas ja schön mit Gruppenverschachtelungen regeln, wenn ich mich recht erinnere funktioniert das hier
auch nur sehr aufwendig über ACLs (
Auch ein Thema, dass ich nicht ganz erfassen kann...Arbeitet unter Unix immer nur eine Gruppe?
Was machen die mit Zugriffen von > X Sites mit hunderten von Gruppen und Usern und eigenen Dateiberechtigungen?
Ich bin wohl schon zu sehr microsoft minded)

Aber ist nicht das Thema. Danke werde mir das mal anschauen.
Rubberduck

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Erweiterte Dateiberechtigung | chmod | acl | umask

Beitrag von syssi » 20.08.2013 14:46:41

Dein Anwendungsfall ist einfach nur unnatuerlich. Normalerweise ist Samba der Dienst, welcher ausschliesslich mit den Daten haushaltet. Mit Hilfe von Samba erfolgt das Mapping zwischen Attributen, die Windows sich wuenscht (Rechte, Gruppenzugehoerigkeiten) und welche man moeglicherweise noch ueber die Samba-Konfiguration dazu schustert. Du kommst nun daher und sagst: "Ich werfe als root Daten dazu! Diese sollen aber nicht Root gehoeren, sondern irgendein Layer zwischen Dateisystem und fopen() soll die Rechte zaubern.

Gruss syssi

fbartels
Beiträge: 326
Registriert: 20.08.2009 10:06:56
Kontaktdaten:

Re: Erweiterte Dateiberechtigung | chmod | acl | umask

Beitrag von fbartels » 20.08.2013 14:49:11

Das was syssi sagt ;-)

Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

Re: Erweiterte Dateiberechtigung | chmod | acl | umask

Beitrag von Rubberduck » 20.08.2013 14:50:36

ok ihr habt wahrscheinlich recht, ich werde das überdenken.

Danke

edit:

wobei, setze ich ein SGID bit auf den entsprechenden Ordner, gehört es ja auch automatisch der entsprechenden Gruppe.
Da gibt es dann ja auch einen Layer der dazwischen funkt.
Ich möchte ja nur einen Schritt weiter. Aber egal werde noch was forschen.
Mit samba muss das nicht unmittelbar zu tun haben.
Wir können uns auch darauf einigen, dass alle User/Gruppen über ssh zugreifen. Die Problemstellung ändert sich nicht.

Rubberduck

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Erweiterte Dateiberechtigung | chmod | acl | umask

Beitrag von syssi » 20.08.2013 18:27:59

Ich habe auch nicht ausgeschlossen, dass es moeglich ist. Mit ACLs sollte so etwas grundsaetzlich machbar sein.

Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

Re: Erweiterte Dateiberechtigung | chmod | acl | umask

Beitrag von Rubberduck » 26.08.2013 02:51:20

Und das ist es....
habe es gerade hin bekommen.

Nochmal zusammen gefasst, was ich wollte:

Benutzer tom (rwx) Gruppe users(r-x) others(---) recursiv und vor allem vererbt, d.h jeder neue Ordner oder jedes neue File
soll die Berechtigung erben.

Code: Alles auswählen

setfacl -m default:user:tom:rwx,default:group:users:r-x,default:other:--- /Pfad/
Man sieht zwar in der "normalen" Ausgabe von bspw. ls -lisa nur ein "+-Zeichen" das auf erweiterte ACLs hinweist
Bild Nr.1 mit + Zeichen aber mit s|getfacl sieht man mehr.

Obwohl der Besitzer und die Gruppe scheinbar root sind zeigt getfacl dann in den erweiterten Berechtigungen,
dass die Gruppe users r-x und der User tom rwx Berechtigung besitzt.
.Bild Nr. 2 mit erweiterten Berechtigungen

Die Sicht von Windows-Seite auf den neu erstellen Ordner "Hallo" hat sich auch geändert.
Bild Nr.3 - Sicht aus Windows

Kleiner Hinweis noch: Mit dem Befehl werden nicht aktiv Berechtigungen gesetzt, vielmehr wird hier die Vererbung der Berechtigung eingeschaltet.
ich würde dem ein chown -R user.gruppe && chmod 750 -R vorausgehen lassen, zumindest möchte ich das so für mich.

Greets
Rubberduck

Antworten