GNU/Linux >> Linux Esercitazione >  >> Linux

Introduzione ai comandi Linux chgrp e newgrp

In un recente articolo, ho introdotto il chown comando, che viene utilizzato per modificare la proprietà dei file sui sistemi. Ricordiamo che la proprietà è la combinazione dell'utente e del gruppo assegnati a un oggetto. Il chgrp e newgrp i comandi forniscono ulteriore aiuto per la gestione dei file che devono mantenere la proprietà del gruppo.

Utilizzo di chgrp

Il chgrp comando cambia semplicemente la proprietà del gruppo di un file. È lo stesso di chown : comando. Puoi usare:

$chown :alan mynotes

oppure:

$chgrp alan mynotes

Ricorsivo

Alcuni argomenti aggiuntivi per chgrp possono essere utili sia nella riga di comando che in uno script. Proprio come molti altri comandi Linux, chgrp ha un argomento ricorsivo, -R . Avrai bisogno di questo per operare su una directory e il suo contenuto in modo ricorsivo, come dimostrerò di seguito. Ho aggiunto il -v (prolisso ) argomento quindi chgrp mi dice cosa sta facendo:

$ 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

Riferimento

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Un file di riferimento (--reference=RFILE ) può essere utilizzato quando si modifica il gruppo sui file in modo che corrisponda a una determinata configurazione o quando non si conosce il gruppo, come potrebbe essere il caso durante l'esecuzione di uno script. Puoi duplicare il gruppo di un altro file (RFILE ), denominato file di riferimento. Ad esempio, per annullare le modifiche apportate sopra (ricorda che un punto [. ] si riferisce alla presente directory di lavoro):

$ chgrp -vR --reference=. conf

Segnala modifiche

La maggior parte dei comandi ha argomenti per controllare il proprio output. Il più comune è -v per abilitare verbose e il comando chgrp ha una modalità verbose. Ha anche un -c (--modifiche ) argomento, che indica a chgrp di segnalare solo quando viene apportata una modifica. Chgrp segnalerà comunque altre cose, ad esempio se un'operazione non è consentita.

L'argomento -f (--silenzioso , --silenzioso ) viene utilizzato per eliminare la maggior parte dei messaggi di errore. Userò questo argomento e -c nella prossima sezione in modo da mostrare solo le modifiche effettive.

Preserva radice

La radice (/ ) del filesystem Linux dovrebbe essere trattato con grande rispetto. Se viene commesso un errore di comando a questo livello, le conseguenze possono essere terribili e lasciare un sistema completamente inutile. In particolare quando si esegue un comando ricorsivo che apporterà qualsiasi tipo di modifica o, peggio, eliminazioni. Il comando chgrp ha un argomento che può essere utilizzato per proteggere e preservare la radice. L'argomento è --preserve-root . Se questo argomento viene utilizzato con un comando ricorsivo chgrp sulla radice, non accadrà nulla e apparirà invece un messaggio:

[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

L'opzione non ha effetto quando non viene utilizzata insieme a ricorsivo. Tuttavia, se il comando viene eseguito dall'utente root, le autorizzazioni di / cambierà, ma non quelli di altri file o directory al suo interno:

[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

Sorprendentemente, sembra che questo non sia l'argomento predefinito. L'opzione --no-preserve-root è l'impostazione predefinita. Se esegui il comando sopra senza l'opzione "preserva", verrà impostata la modalità "nessuna conservazione" e possibilmente cambierà le autorizzazioni sui file che non dovrebbero essere modificati:

[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

Informazioni su newgrp

Il nuovo gruppo Il comando consente a un utente di ignorare il gruppo principale corrente. newgrp può essere utile quando si lavora in una directory in cui tutti i file devono avere la stessa proprietà del gruppo. Supponiamo di avere una directory chiamata condividi sul tuo server intranet in cui diversi team archiviano le foto di marketing. Il gruppo è condiviso . Poiché utenti diversi inseriscono file nella directory, i gruppi primari dei file potrebbero confondersi. Ogni volta che vengono aggiunti nuovi file, puoi eseguire chgrp per correggere eventuali errori impostando il gruppo su condividi :

$ 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

Ho coperto setgid mode nel mio articolo su chmod comando. Questo sarebbe un modo per risolvere questo problema. Ma supponiamo che il bit setgid non sia stato impostato per qualche motivo. Il comando newgrp è utile in questa situazione. Prima che qualsiasi utente inserisca file nella condivisione directory, possono eseguire il comando newgrp share . Questo cambia il loro gruppo principale in condividi quindi tutti i file che inseriscono nella directory avranno automaticamente la condivisione del gruppo , anziché il gruppo principale dell'utente. Al termine, gli utenti possono tornare al loro gruppo principale normale con (ad esempio):

newgrp alan

Conclusione

È importante capire come gestire utenti, gruppi e autorizzazioni. È anche utile conoscere alcuni modi alternativi per aggirare i problemi che potresti incontrare poiché non tutti gli ambienti sono impostati allo stesso modo.


Linux
  1. Controlla i comandi e le attività con il comando watch di Linux

  2. Introduzione al comando useradd di Linux

  3. Comprendere i comandi di controllo del lavoro in Linux:bg, fg e CTRL+Z

  4. Come modificare (correttamente) l'UID e il GID di un utente/gruppo in Linux

  5. Esempi di comandi chgrp in Linux

Introduzione al file system Linux

Comando Chgrp in Linux (Cambia gruppo)

Comando Linux Chgrp con esempi

Come elencare i membri di un gruppo in Linux

I 40 comandi utili del server Linux per principianti e professionisti

Comandi di gestione dei gruppi in Linux