So legen Sie die Berechtigungen für Ordner in Unix / Linux Ubuntu fest

6331

Dies ist nicht notwendigerweise eine direkte Informatikfrage, aber sie ist eng miteinander verbunden.

Gibt es eine Möglichkeit, dies zu tun?

Ich verwende Z Shell zsh.

Ich möchte es so einrichten, wann immer ich im Ordner bin

~ / bla

Alles, was ich erstellt habe, wird mit den Berechtigungen 770 (Alle Zugriffsrechte für mich und die Gruppe) erstellt. Grundsätzlich sollte alles, was ich in diesem Ordner tue, diese Berechtigungen haben.

Außerdem sollte die Gruppe für diese Datei auf dieselbe Weise erstellt werden. Dies ist jedoch der gleiche Vorgang wie der für die Berechtigungen.

Jemand?

2

5 Antworten auf die Frage

3
Pascal Thivent

Fand einen schönen Artikel zu diesem Thema: Was ist der "umask"? Wie kann ich es einstellen?

Die umaskdefiniert die Berechtigungen, die eine neue Datei erhält - oder besser: die Berechtigungen, die sie nicht erhält.

[...]

Wenn Sie das umaskfür ein bestimmtes Verzeichnis definieren möchten (Beispiel: Gruppenschreibberechtigung für ein Verzeichnis, das Sie zusammen mit Ihren Colleges verwenden), schwitzen Sie, wenn Sie den Befehl umask verwenden, da es immer für alle Verzeichnisse gilt.

Die Lösung dieses Problems besteht darin, eine Standard-ACL festzulegen . Mit dem folgenden Befehl wird sichergestellt, dass für alle neuen Dateien /home/shared/alle Berechtigungen (einschließlich Schreibberechtigungen) für die Gruppe festgelegt sind:

setfacl -d -m mask:007 /home/shared/ 

Sie sollten auch das sgid-bit für das Verzeichnis festlegen und die gewünschte Gruppe mit chgrp auswählen:

chgrp the_team /home/shared/ chmod g+s /home/shared/ 

Wenn /home/shared/bereits Unterverzeichnisse enthalten sind, müssen Sie auch deren Berechtigungen ändern. Tipp: Alle genannten Befehle kennen die Option -R.

Ich denke, das OP sucht nach einer Einstellung vom Typ umask, die nur für einen bestimmten Ordner gilt Peter van der Heijden vor 14 Jahren 1
1
Dirk Eddelbuettel

einstellen

umask 006 

in Ihrem, ~/.bash_profiledie von der Standardeinstellung von 022 abweicht

chgrp staff # or some other group you pick chmod g+s blah 

um das Sticky-Bit im Verzeichnis zu aktivieren. Jetzt sollte alles, was Sie darunter erstellen, sowohl die Modi als auch die Gruppe beibehalten.

0
Chen Levy

umaskändert die Standardberechtigungen für jede zu erstellende Datei und jedes Verzeichnis. Wenn Sie jedoch nur für ein bestimmtes Verzeichnis dieses Verhalten benötigen, sollten Sie sich die Zugriffssteuerungslisten man acl(5)für Zugriffssteuerungslisten ansehen: Weitere Informationen finden Sie unter.

0

Vergessen Sie nicht, dass das Dateisystem mit dem Flag ' acl ' gemountet werden muss, um Zugriffskontrolllisten verwenden zu können. Andernfalls gibt der Befehl setfacl ' Operation nicht unterstützt ' zurück.

Dies ist zum Beispiel der Eintrag in meiner fstab-Datei (/ etc / fstab): -

# <file system> <mount point> <type> <options> <dump> <pass> /dev/sdb1 /media/DataDrive ext3 acl 0 0 
0
Phil P

Sie können eine chpwd () - Funktion definieren, die jedes Mal ausgeführt wird, wenn der cwd der Shell geändert wird. Testen Sie dort das Verzeichnis und setzen Sie umask entsprechend.

function chpwd { [[ $PWD == $HOME/blah ]] && { umask 007; return } # or, if more tests here, use case $PWD in ... esac umask 022 }