Zugriffsrechte / cifs / file_mode / dir_mode

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

majobu

Benutzer
Registriert
02. Okt. 2011
Beiträge
10
Reaktionspunkte
0
Punkte
1
Hallo zusammen,
nach viel Lesen und herumprobieren, muss ich euch nun doch einmal zu demn Thema Berechtigungen mit cifs, umask, file_mode und dir_mode etc. befragen. EIgentlich dachte ich das ich verstanden hätte wie POSIX Zugriffsrechte funktionieren.

Aus eine DS211 versuche ich ein Share für ALLE Benutzer mit allen Rechten innerhalb dieses Share einzurichten. Die Benutzer sollen nicht auf der DS211 gepflegt werden. Im Prinzip JEDER darf ALLES.

Als Clients gibt es Linux, Mac OS X und Windowx XP/7. Deswegen habe ich mich zu cifs entschlossen, da alle Betirebssysteme cifs unterstützen. Ein Mischmasch aus afp, nfs und cifs wird am Ende vermutlich zu kompliziert.

Ich bin folgende Schritte durchgegangen:

1. Das Share "Daten" habe ich auf der DS211 angelegt.
2. In den Privilegieneinstellung des Shares "Daten" habe ich dem lokalen Benutzer "guest" das Recht "Lesen/Schreiben" erteilt.
3. den Benutzer "guest" habe ich aktiviert und kontrolliert das dieser in der Gruppe "users" Mitglied ist
4. "Bearbeiten der Liste für Windows Zugangskontrolle zulassen" ist deaktiviert
5. Mountpoint "/media/DS211_Daten" angelegt.
6. "/etc/fstab" ergänzt

/etc/fstab
Rich (BBCode):
...
//10.0.1.200/Daten              /media/DS211_Daten      cifs    rw,suid,exec,async,noauto,nocase,noperm      0       0
...

Auf meinem Hauptrechner, ein Notebook, verbinde ich mich über WLAN. Da der Rechner oft in fremden Netzen "rumturnt", habe ich mir ein im Rahmen des NetworkManagers und GNome ein Dispatcher-Skript gebastelt. Über diesen Weg habe ich den Vorteil das nach dem Login mit root-Berechtigung dieses Skript ausgeführt wird über das ich derzeit zwei Shares systemweit mounte. Ausserdem wird bei einer Abmeldung oder beim Wechsel des WLAN in eine andere SSID über den NetworkManager die Shares "saube" dismounted.

Das Skript:
Rich (BBCode):
#!/bin/bash
# Ausfuehren von Scripten nach Herstellung der WLAN-Verbindung
# zum Heimnetzwerk MEINESSID
#
# Diese Werte werden vom NetworkManager an das Skript übergeben
INTERFACE=$1
ACTION=$2
HOME=MEINESSIDNABOO24
ESSID=$(iwconfig $INTERFACE | grep ESSID | cut -d ":" -f 2 | sed -e 's/"//g' | sed -e 's/\ //g')

# DBG_MODE = 1 Ausgaben nach $LOG ausgeben
DBG_MODE=0
LOG=/tmp/dispatcher.log

log_action() {
if [ $DBG_MODE=1 ]; then
        echo $(basename $0): >> $LOG
        echo $(date) >> $LOG
        echo "ACTION: $ACTION, Device:$INTERFACE" >> $LOG

        echo "ESSID: $ESSID, Home: $HOME" >> $LOG
        echo "-$ESSID-" >> $LOG
fi
}



case "$2" in
        up)
                log_action
                if [ "$ESSID" = "$HOME" ]; then
                        mount /media/DS211_Daten &
                        mount /media/NetApp3140 &
                fi
                ;;

        down)
                log_action
                if [ "$ESSID" != "$HOME" ]; then
                        umount -f /media/DS211_Daten &
                        umount -f /media/NetApp3140 &
                fi
                ;;

        pre-up)
                log_action
                ;;

        post-down)
                log_action
                ;;

        *)
                echo $"Usage: $0 {up|down|pre-up|post-down}"
                exit 1
esac

Wenn ich nun eine Datei auf dem Share anlege, dann erhalte ich folgendes:
Code:
-rw-r--r--    1 guest    root             0 Oct  2 20:21 neue Datei

Mich wundert hier die Benutzergruppe.... wieso steht die auf root? Desweiteren würde ich gerne die Rechte bei Neuanlage verändern. Bei Dateien 666 und bei Verzeichnissen 777. Deswegen habe ich /etc/fstab abgeändert auf:
Code:
//10.0.1.200/Daten              /media/DS211_Daten      cifs    rw,suid,exec,async,noauto,nocase,noperm,file_mode=0666,dir_mode=0777,gid=users

Nachdem ich nun eine neue Datei anlegen bekomme ich trotzdem folgende Rechte angezeigt....

Code:
-rw-r--r--    1 guest    root             0 Oct  2 20:32 neue Datei

Doof, oder? Wer kann mir helfen?

Viele Grüße
Marcus
 
Zeig mal, was in der /etc/passwd und in der /etc/group drinne steht.

Itari
 
Hi Itari,
ich nehme an du möchtest den Inhalt der beiden Files von der DS211 sehen, oder?

/etc/group
Code:
root:x:0:
lp:x:7:lp
ftp:x:21:ftp
smmsp:x:25:admin,smmsp
users:x:100:
administrators:x:101:admin
postfix:x:125:postfix
maildrop:x:126:
dovecot:x:143:dovecot
nobody:x:1023:

/etc/passwd
Code:
root:x:0:0:root:/root:/bin/ash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
anonymous:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
ftp:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
smmsp:x:25:25:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin
postfix:x:125:125:Postfix User:/nonexist:/sbin/nologin
dovecot:x:143:143:Dovecot User:/nonexist:/sbin/nologin
spamfilter:x:783:1023:Spamassassin User:/var/spool/postfix:/sbin/nologin
nobody:x:1023:1023:nobody:/home:/sbin/nologin
admin:x:1024:100:System default user:/var/services/homes/admin:/bin/sh
guest:x:1025:100:Guest:/var/services/homes/guest:/bin/sh

Danke und vele Grüße,
Marcus
 
Wenn ich nun eine Datei auf dem Share anlege...

Für dich sicherlich völlig klar, für mich kaum nachzuvollziehen: Auf welchen Rechner unter welchen Betriebssystem/Programm und (Programm-)User wird denn die Datei angelegt?

Itari
 
Für dich sicherlich völlig klar, für mich kaum nachzuvollziehen: Auf welchen Rechner unter welchen Betriebssystem/Programm und (Programm-)User wird denn die Datei angelegt?

Als Testrechner verwende ich derzeit ein Notebook mit einem Ubuntu Linux 11.04. Die Datei lege ich entweder über das Terminal mit 'touch' an oder über Nautilus über 'Datei/Dokument anlegen/Leere Datei'

Alle Testaktionen habe ich mit einem normalen Benutzeraccount durchgeführt der allerdings das Recht hat auch 'sudo' auszuführen. Also kein root ...

Viele Grüße,
majobu
 
Gib mal das Ergebnis des 'id' von deinem Ubunto-User ... vielleicht bist ja mit deinem User in der Gruppe 'root'?

Itari
 
vielleicht bist ja mit deinem User in der Gruppe 'root'?
Für mich sieht das aber ziemlich normal aus.
Code:
uid=1000(majobu) gid=1000(majobu) Gruppen=1000(majobu),4(adm),20(dialout),24(cdrom),46(plugdev),110(netdev),112(lpadmin),120(admin),122(sambashare),1001(truecrypt)
Viele Grüße,
majobu
 
Für mich sieht das aber ziemlich normal aus.

Hee, nicht böse sein. Ich kann doch nicht aus der Ferne sehen, ob und wie gut du bist und ob wir hier um Schreibfehler kämpfen oder um richtige Probleme.

Also ich finde jetzt auch keine gute Erklärung für das Ganze ... vielleicht wiederholst den ganze Vorgang noch einmal und schaust nach jeder Zeile per 'id', ob du noch unter der gleiche Identität arbeitest. Und guck dir auch an, ob das suid/guid-Bit bei irgendwelchen Skripten/Programmen, die du aufrufts, auf 'an' gesetzt ist ... mehr fällt mir jetzt im Moment auch nicht ein.

Itari
 
Hee, nicht böse sein. Ich kann doch nicht aus der Ferne sehen, ob und wie gut du bist und ob wir hier um Schreibfehler kämpfen oder um richtige Probleme.

Das war nie so gemeint... bin ja dankbar für jeden Hinweis, denn so langsam sehe ich den Wald vor lauter Bäume nicht mehr.

Also ich finde jetzt auch keine gute Erklärung für das Ganze ... vielleicht wiederholst den ganze Vorgang noch einmal und schaust nach jeder Zeile per 'id', ob du noch unter der gleiche Identität arbeitest. Und guck dir auch an, ob das suid/guid-Bit bei irgendwelchen Skripten/Programmen, die du aufrufts, auf 'an' gesetzt ist ... mehr fällt mir jetzt im Moment auch nicht ein.

Hm. Bis auf das Verbindungsskript habe ich keine Skripte die etwas machen. Ich werde jetzt testweise mal einen anderen Benutzer verwenden. Kann ich die DS211 (DSM 3.2) auch auf Werkzustand zurücksetzten ohne die Daten zu plätten? So könnte ich dann noch einmal bei Null anfangen :)

Viele Grüße,
Majobu
 
So... Problem umgangen... jetzt funktioniert es wie zu erwarten...

Und zwar habe ich einen neuen Shared-Folder eingerichtet. Alles so wie bei dem anderen Ordner auch... aber jetzt funktioniert das so wie es soll... Ich kann das zwar nicht nachvollziehen, aber nun werden die Berechtigungen über file_mode und dir_mode richtig vergeben. Auch die Gruppenzuordnung stimmt nun... zuvor wurde immer root als Gruppe verwendet.. nun steht die Gruppe auf user.

Warum das nun so ist... keine Ahnung :eek:

Viele Grüße,
Majobu
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat