also im Grunde möchte ich in der Lage sein, Daten mit stfp zu schreiben, aber wenn ich es verwende, wird angezeigt, dass die Berechtigung verweigert wurde. Ich möchte dies in diesem Verzeichnis tun können, /home/user
sodass bei Verwendung ls -l
des Befehls die folgende Ausgabe angezeigt wird
total 8
drwxr-xr-x 2 root root 4096 Apr 22 21:43 FOLDER1
drwxr-xr-x 2 root root 4096 Apr 22 22:00 FOLDER2
Wie kann ich sehen, wer der Besitzer dieses Verzeichnisses ist? Ich weiß, dass ich diesen Befehl verwenden kann, chmod a+rw user
um jedem Lese- und Schreibrechte zu erteilen, aber ich möchte sie nur einem Benutzer erteilen. Und es gibt nur einen Benutzer im System, aber ich werde in Zukunft vielleicht mehr erstellen. Ich möchte das Konzept von Besitzern und Gruppen verstehen. Weitere Fragen: - Wie kann ich sehen, welche Gruppen vorhanden sind? Wie erstelle ich Gruppen und wie füge ich Benutzer zu diesen Gruppen hinzu?
Antwort1
Sehr gute und richtige Antwort vonyxz
Das Einzige, was es verbessern würde, wäre ein tatsächliches Beispiel (auch wenn es impliziert ist). Da ich noch keinen Kommentar abgeben kann (nicht genügend Reputationspunkte), muss ich eine zusätzliche Antwort schreiben, um Beispiele anzugeben.
Vereinfachte Befehlssyntax:
sudo chown username[:[groupname]] <filename>
sudo chown username[:[groupname]] <dirname>
Für die folgenden Beispiele sind dies die Parameter
- Nutzername:Jack
- Name der Anmeldegruppe:ptimer
- Gruppenname:Konten
- Dateiname:foo
- Verzeichnisname:Kunden
Die Datei foo
existiert auf dem System, das server
in der Freigabe namens data
im Verzeichnis genannt wird clients
.dh //sever/data/clients/foo
Beispiele: Dateieigentümer ändern
1. admin@server:/data$ sudo chown jack clients/foo
2. admin@server:/data$ sudo chown jack: clients/foo
3. admin@server:/data$ sudo chown jack:accounts clients/foo
- Besitzer ändern vonDateibenannt
foo
nachJack - Besitzer ändern vonDateibenannt
foo
nachJackund Gruppeptimer. Jack ist Mitglied derAnmeldegruppegenanntptimer. In diesem BeispielAnmeldegruppewird impliziert durch die Verwendung von:
nach dem Besitzernamen - Besitzer ändern vonDateibenannt
foo
nachJackund Gruppe zuaccounts
Beispiele: Eigentümer eines Verzeichnisses ändern
4. **admin@server:/data$** sudo chown jack clients
5. admin@server:/data$ sudo chown jack: clients
6. admin@server:/data$ sudo chown jack:accounts client
7. admin@server:/data$ sudo chown -R jack:accounts client
- Besitzer ändern vonVerzeichnisbenannt
clients
nachJack - Besitzer ändern vonVerzeichnisbenannt
clients
nachJackund Gruppeptimer - Besitzer ändern vonVerzeichnisbenannt
clients
nachJackund Gruppe zuaccounts
- Besitzer ändern vonVerzeichnisund alle Dateien im Verzeichnis mit dem
clients
NamenJackund Gruppe zuaccounts
Weitere Hilfe finden Sie unter:
chown --help
man chown
info chown
Antwort2
In Ihrer ls -l
Ausgabe enthalten die dritte und vierte Spalte den Benutzer (Besitzer) bzw. die Gruppe (Besitzer). Ihre Ordner gehören also beide dem Root-Benutzer.
Wenn Sie ausführen chmod +006 yourfile
, erhalten alle Benutzer Lese- und Schreibberechtigung für yourfile
. In diesem Fall root
ist der Ordner Eigentümer, Sie müssen also sudo
(oder eine andere Methode verwenden, um den Befehl als Root einzugeben). Wenn Sie nur einem einzigen Benutzer oder einigen wenigen Benutzern Zugriff gewähren möchten, können Sie chown userowner[:groupowner]
(mit sudo
) verwenden, um diesen Benutzer oder diese Gruppe zum Eigentümer der Datei zu machen, und verwenden, chmod +600
um dem Eigentümer Lese- und Schreibberechtigungen zu erteilen, und chmod +060
um der Gruppe des Eigentümers Lese- und Schreibberechtigungen zu erteilen.
Um die Gruppen aufzulisten, zu denen der aktuelle Benutzer gehört, verwenden Sie groups username
. Um alle Gruppen aufzulisten, können Sie verwenden cat /etc/group
. getent group
funktioniert auch.
Um eine neue Gruppe zu erstellen, verwenden Sie groupadd
.
Um einen Benutzer zu einer Gruppe hinzuzufügen, verwenden Sie usermod -Ga groupname username
. Wenn Sie das Flag nicht verwenden -a
, wird der Benutzer username
aus allen aktuellen Gruppen entfernt und ist nur in der neuen Gruppe vorhanden groupname
.