GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Neue Dateien erhalten, um Gruppenberechtigungen unter Linux zu erben?

Ich habe ein Problem mit Berechtigungen auf einem Linux-Server. Ich bin an BSD gewöhnt. Wenn ein Verzeichnis einer Gruppe gehört, in der sich der Benutzer, dem es gehört, nicht befindet, z. B. www-data, werden darin erstellte Dateien dieser Gruppe gehören. Dies ist wichtig, weil ich möchte, dass Dateien vom Webserver gelesen werden können (den ich nicht als Root ausführen werde), ein Benutzer aber immer noch neue Dateien in das Verzeichnis einfügen kann. Ich kann die Benutzer nicht in www-Daten einfügen, weil sie dann die Websites aller anderen Benutzer lesen können.

Ich möchte, dass der Webserver alle Websites liest, ich möchte, dass Benutzer ihre eigenen ändern können.

Die Berechtigungen werden im Moment so auf die Ordner gesetzt….

drwxr-x--- 3 john www-data 4096 Feb 17 21:27 john

Es ist Standardverhalten auf BSD, dass Berechtigungen auf diese Weise funktionieren. Wie bekomme ich Linux dazu?

Akzeptierte Antwort:

Es hört sich so an, als würden Sie die setgid-Bit-Funktionalität beschreiben, bei der, wenn ein Verzeichnis, in dem es festgelegt ist, alle darin erstellten neuen Dateien erzwingen, dass ihre Gruppe auf dieselbe Gruppe festgelegt wird, die im übergeordneten Verzeichnis festgelegt ist.

Beispiel

$ whoami
saml

$ groups
saml wheel wireshark

ein Verzeichnis mit Rechten und Eigentumsrechten einrichten

$ sudo mkdir --mode=u+rwx,g+rs,g-w,o-rwx somedir
$ sudo chown saml.apache somedir
$ ll -d somedir/
drwxr-s---. 2 saml apache 4096 Feb 17 20:10 somedir/

Berühre eine Datei als Saml in diesem Verzeichnis

$ whoami
saml

$ touch somedir/afile
$ ll somedir/afile 
-rw-rw-r--. 1 saml apache 0 Feb 17 20:11 somedir/afile

Dies gibt Ihnen ungefähr das, was es klingt, wie Sie wollen. Wenn Sie jedoch wirklich genau das wollen, was Sie beschrieben haben, müssen Sie meines Erachtens auf die Funktionalität der Zugriffssteuerungslisten (ACLs) zurückgreifen, um dies zu erreichen.

ACLs

Wenn Sie etwas mehr Kontrolle über die Berechtigungen für die Dateien haben möchten, die unter dem Verzeichnis erstellt werden, somedir , können Sie die folgende ACL-Regel hinzufügen, um die Standardberechtigungen wie folgt festzulegen.

vorher

$ ll -d somedir
drwxr-s---. 2 saml apache 4096 Feb 17 20:46 somedir

Berechtigungen festlegen

$ sudo setfacl -Rdm g:apache:rx somedir
$ ll -d somedir/
drwxr-s---+ 2 saml apache 4096 Feb 17 20:46 somedir/

Beachten Sie das + am Ende bedeutet das, dass auf dieses Verzeichnis ACLs angewendet wurden.

$ getfacl somedir
# file: somedir
# owner: saml
# group: apache
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:group:apache:r-x
default:mask::r-x
default:other::---

nach

$ touch somedir/afile
$ ll somedir/afile 
-rw-r-----+ 1 saml apache 0 Feb 17 21:27 somedir/afile
$ 

$ getfacl somedir/afile
# file: somedir/afile
# owner: saml
# group: apache
user::rw-
group::r-x              #effective:r--
group:apache:r-x        #effective:r--
mask::r--
other::---

Beachten Sie bei den Standardberechtigungen (setfacl -Rdm ) so eingestellt, dass die Berechtigungen (r-x ) standardmäßig (g:apache:rx ). Dies zwingt alle neuen Dateien, nur ihren r zu haben Bit aktiviert.

Siehe auch:ShellScript-Spickzettel
Linux
  1. So verwenden Sie Rsync zum Synchronisieren neuer oder geänderter/geänderter Dateien in Linux

  2. Ich habe einen Benutzer zu einer Gruppe hinzugefügt, aber Gruppenberechtigungen für Dateien haben immer noch keine Wirkung?

  3. Alle neuen Dateien in einem Verzeichnis einer Gruppe zugänglich machen?

  4. Linux – Berechtigungsprobleme für freigegebenes Verzeichnis auf einem Server?

  5. Wie erzwinge ich bestimmte Berechtigungen für neue Dateien/Ordner auf dem Linux-Dateiserver?

Rm-Befehl unter Linux

So ändern Sie die Dateiberechtigungen in Linux rekursiv

So finden Sie Dateien anhand ihrer Berechtigungen in Linux

8 grundlegende Linux-Dateiverwaltungsbefehle für neue Benutzer

Erstellen Sie neue Gruppen in Linux mit dem Groupadd-Befehl

Grundlegende Dateiberechtigungen und Eigentumsrechte in Linux verstehen