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

Einführung in die Linux-Befehle chgrp und newgrp

In einem kürzlich erschienenen Artikel habe ich den Chown vorgestellt Befehl, der zum Ändern des Besitzes von Dateien auf Systemen verwendet wird. Denken Sie daran, dass die Eigentümerschaft die Kombination aus dem Benutzer und der Gruppe ist, die einem Objekt zugewiesen sind. Die chgrp und newgrp Befehle bieten zusätzliche Hilfe beim Verwalten von Dateien, die den Gruppenbesitz beibehalten müssen.

Chgrp verwenden

Die chgrp Der Befehl ändert einfach den Gruppenbesitz einer Datei. Es ist dasselbe wie chown : Befehl. Sie können Folgendes verwenden:

$chown :alan mynotes

oder:

$chgrp alan mynotes

Rekursiv

Einige zusätzliche Argumente für chgrp können sowohl in der Befehlszeile als auch in einem Skript nützlich sein. Wie viele andere Linux-Befehle hat chgrp ein rekursives Argument, -R . Sie benötigen dies, um rekursiv mit einem Verzeichnis und seinem Inhalt zu arbeiten, wie ich unten demonstrieren werde. Ich habe das -v hinzugefügt (ausführlich ) Argument, also sagt mir chgrp, was es tut:

$ ls -l . conf
.:
drwxrwxr-x 2 alan alan 4096 Aug  5 15:33 conf

conf:
-rw-rw-r-- 1 alan alan 0 Aug  5 15:33 conf.xml
# chgrp -vR delta conf
changed group of 'conf/conf.xml' from alan to delta
changed group of 'conf' from alan to delta

Referenz

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Eine Referenzdatei (--reference=RFILE ) kann verwendet werden, wenn die Gruppe für Dateien geändert wird, damit sie einer bestimmten Konfiguration entspricht, oder wenn Sie die Gruppe nicht kennen, wie dies beim Ausführen eines Skripts der Fall sein kann. Sie können die Gruppe einer anderen Datei duplizieren (RFILE ), die als Referenzdatei bezeichnet wird. Um beispielsweise die oben vorgenommenen Änderungen rückgängig zu machen (denken Sie daran, dass ein Punkt [. ] bezieht sich auf das aktuelle Arbeitsverzeichnis):

$ chgrp -vR --reference=. conf

Änderungen melden

Die meisten Befehle haben Argumente zur Steuerung ihrer Ausgabe. Am gebräuchlichsten ist -v um verbose zu aktivieren, und der chgrp-Befehl hat einen verbose-Modus. Es hat auch ein -c (--Änderungen )-Argument, das chgrp anweist, nur zu melden, wenn eine Änderung vorgenommen wird. Chgrp wird weiterhin andere Dinge melden, z. B. wenn eine Operation nicht erlaubt ist.

Das Argument -f (--stumm , --leise ) wird verwendet, um die meisten Fehlermeldungen zu unterdrücken. Ich werde dieses Argument und -c verwenden im nächsten Abschnitt, sodass nur tatsächliche Änderungen angezeigt werden.

Stamm beibehalten

Die Wurzel (/ ) des Linux-Dateisystems sollte mit großem Respekt behandelt werden. Wenn auf dieser Ebene ein Befehlsfehler gemacht wird, können die Folgen schrecklich sein und ein System völlig nutzlos machen. Vor allem, wenn Sie einen rekursiven Befehl ausführen, der jede Art von Änderung vornimmt – oder noch schlimmer, Löschungen. Der Befehl chgrp hat ein Argument, das zum Schützen und Erhalten des Stammverzeichnisses verwendet werden kann. Das Argument ist --preserve-root . Wenn dieses Argument mit einem rekursiven chgrp-Befehl auf der Wurzel verwendet wird, passiert nichts und stattdessen wird eine Meldung angezeigt:

[root@localhost /]# chgrp -cfR --preserve-root a+w /
chgrp: it is dangerous to operate recursively on '/'
chgrp: use --no-preserve-root to override this failsafe

Die Option hat keine Wirkung, wenn sie nicht in Verbindung mit recursive verwendet wird. Wenn der Befehl jedoch vom Root-Benutzer ausgeführt wird, sind die Berechtigungen von / ändern, aber nicht die anderer darin enthaltener Dateien oder Verzeichnisse:

[alan@localhost /]$ chgrp -c --preserve-root alan /
chgrp: changing group of '/': Operation not permitted
[root@localhost /]# chgrp -c --preserve-root alan /
changed group of '/' from root to alan

Überraschenderweise scheint dies nicht das Standardargument zu sein. Die Option --no-preserve-root ist die Vorgabe. Wenn Sie den obigen Befehl ohne die Option „preserve“ ausführen, wird standardmäßig der Modus „no Preserve“ verwendet und möglicherweise die Berechtigungen für Dateien geändert, die nicht geändert werden sollten:

[alan@localhost /]$ chgrp -cfR alan /
changed group of '/dev/pts/0' from tty to alan
changed group of '/dev/tty2' from tty to alan
changed group of '/var/spool/mail/alan' from mail to alan

Über newgrp

Die newgrp Der Befehl ermöglicht es einem Benutzer, die aktuelle primäre Gruppe zu überschreiben. newgrp kann praktisch sein, wenn Sie in einem Verzeichnis arbeiten, in dem alle Dateien denselben Gruppenbesitz haben müssen. Angenommen, Sie haben ein Verzeichnis namens share auf Ihrem Intranetserver, auf dem verschiedene Teams Marketingfotos speichern. Die Gruppe ist Teilen . Wenn verschiedene Benutzer Dateien in das Verzeichnis stellen, können die primären Gruppen der Dateien vermischt werden. Immer wenn neue Dateien hinzugefügt werden, können Sie chgrp ausführen um eventuelle Verwechslungen zu korrigieren, indem Sie die Gruppe auf Teilen setzen :

$ cd share
ls -l
-rw-r--r--. 1 alan share 0 Aug  7 15:35 pic13
-rw-r--r--. 1 alan alan 0 Aug  7 15:35 pic1
-rw-r--r--. 1 susan delta 0 Aug  7 15:35 pic2
-rw-r--r--. 1 james gamma 0 Aug  7 15:35 pic3
-rw-rw-r--. 1 bill contract  0 Aug  7 15:36 pic4

Ich habe setgid behandelt Modus in meinem Artikel zum chmod Befehl. Dies wäre eine Möglichkeit, dieses Problem zu lösen. Angenommen, das setgid-Bit wurde aus irgendeinem Grund nicht gesetzt. Der Befehl newgrp ist in dieser Situation nützlich. Bevor Benutzer Dateien in die Freigabe einfügen Verzeichnis, können sie den Befehl newgrp share ausführen . Dadurch wird ihre primäre Gruppe auf Teilen umgestellt daher haben alle Dateien, die sie in das Verzeichnis stellen, automatisch die Gruppe Freigabe , und nicht die primäre Gruppe des Benutzers. Sobald sie fertig sind, können Benutzer mit (zum Beispiel) zu ihrer regulären Hauptgruppe zurückkehren:

newgrp alan

Schlussfolgerung

Es ist wichtig zu verstehen, wie Benutzer, Gruppen und Berechtigungen verwaltet werden. Es ist auch gut, ein paar alternative Möglichkeiten zur Umgehung von Problemen zu kennen, auf die Sie stoßen könnten, da nicht alle Umgebungen auf die gleiche Weise eingerichtet sind.


Linux
  1. Einführung in den Linux-Befehl chown

  2. Linux-Befehle – Übersicht und Beispiele

  3. Einführung in den Alternativen-Befehl in Linux

  4. Inodes und das Linux-Dateisystem

  5. Linux-Befehle:jobs, bg und fg

Einführung in das Linux-Dateisystem

Chgrp-Befehl in Linux (Gruppe ändern)

Linux Chgrp-Befehl mit Beispielen

So listen Sie die Mitglieder einer Gruppe in Linux auf

Die 40 nützlichen Linux-Server-Befehle für Anfänger und Profis

Gruppenverwaltungsbefehle in Linux