
Ich habe eine einfache Samba-Umgebung konfiguriert, um Mediendateien über SMB in meinem lokalen Netzwerk ohne Anmeldeinformationen (also als SMB-Gast) freizugeben.
/etc/samba/smb.conf
[media]
Comment = Media directory
Path = /mnt/media
Browseable = yes
Writeable = Yes
create mask = 0666
directory mask = 0777
Public = yes
Wenn ich unter Windows mit SMB ein Verzeichnis mit dem Namen erstelle example
, sieht die Verzeichnisstruktur folgendermaßen aus
ls -alh
total 28K
drwxrwxrwt 4 root root 4.0K Oct 21 13:44 ./
drwxr-xr-x 3 root root 4.0K Oct 20 13:33 ../
drwxrwxrwx 2 nobody nogroup 4.0K Oct 21 13:44 example/
drwx------ 2 root root 16K Oct 20 13:36 lost+found/
lsattr
--------------e----- ./example
Beim Versuch, das Verzeichnis mit einem Standardbenutzerkonto aus dem System zu löschen, erhalte ich eine Fehlermeldung.
rmdir: „Beispiel“ konnte nicht entfernt werden: Vorgang nicht zulässig
Ich kann den Ordner jedoch mithilfe von SMB unter Windows löschen. Was passiert hier und wie kann ich jedem lokalen Unix-Benutzer erlauben, von einem Gast über SMB erstellte Dateien zu löschen oder zu ändern?
Antwort1
Das t
Flag in den Berechtigungen des übergeordneten Verzeichnisses gibt an, dass nur der Eigentümer eines Verzeichnisses (oder die Wurzel) eine Datei oder ein Verzeichnis daraus löschen kann.
Samba scheint so konfiguriert zu sein, dass Benutzerzugriff mit dem Konto gewährt wird nobody
. Dies ist bei Ihnen nicht der nobody
Fall und Sie haben daher nicht die Berechtigung, das Verzeichnis zu löschen.
Ich empfehle nicht, Dateien und Verzeichnisse auf der obersten Ebene zu erstellen. Belassen Sie dies für lost+found
ein Datenverzeichnis und geben Sie dieses Datenverzeichnis anstelle des Einhängepunkts frei.
# Remove global write permission from the mountpoint
chmod go-w,-t /mnt/media
# Create your files and directories in here
mkdir -m777 /mnt/media/data
Korrigieren Sie nun den Samba-Datenpfad
[media]
comment = Media directory
path = /mnt/media/data
browseable = yes
read only = no
guest ok = yes
force directory mode = 0777
force create mode = 0666