La comanda newgrp a Linux: canviar de grup sense tancar la sessió
La comanda newgrp obre un shell nou amb un altre grup com a grup primari. Tot el que facis dins d’aquest shell (crear fitxers, accedir a directoris) es farà amb aquest grup. Quan surts amb exit, tornes al shell d’abans i al teu grup de sempre.
Té dos usos pràctics:
- Fer servir un grup que t’acaben d’afegir sense tancar la sessió. Si un administrador t’ha posat al grup
dockerodialout, la teva sessió actual encara no ho sap;newgrp dockeret dona un shell on ja hi ets. - Crear fitxers amb un grup concret, per exemple en un directori compartit d’un projecte.
Sintaxi
newgrp [grup] A Debian 13, newgrp ve d’util-linux i també accepta una comanda per executar amb el grup nou, en lloc d’obrir un shell:
newgrp grup -c 'comanda' Exemple: crear fitxers amb un altre grup
L’usuari joan és membre del grup projecte, però el seu grup primari és joan:
$ id
uid=1000(joan) gid=1000(joan) groups=1000(joan),1001(projecte)
$ touch abans.txt
$ newgrp projecte
$ id
uid=1000(joan) gid=1001(projecte) groups=1001(projecte),1000(joan)
$ touch despres.txt
$ exit
$ ls -l abans.txt despres.txt
-rw-r--r-- 1 joan joan 0 Oct 3 17:52 abans.txt
-rw-r--r-- 1 joan projecte 0 Oct 3 17:52 despres.txt El fitxer creat dins del shell de newgrp és del grup projecte.
Exemple: fer servir un grup nou sense tornar a entrar
$ sudo usermod -aG docker joan
$ docker ps
permission denied while trying to connect to the Docker daemon socket ...
$ newgrp docker
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES Això només val per a aquest shell. La solució definitiva és tancar la sessió i tornar a entrar.
Executar una sola comanda amb un altre grup
Si només vols executar una comanda, no cal obrir un shell. Pots fer servir -c (Debian 13) o, en qualsevol distribució, la comanda sg:
newgrp projecte -c 'touch informe.txt'
sg projecte -c 'touch informe.txt' Tornar al grup original
exit newgrp obre un shell nou a sobre de l’anterior. Si encadenes diversos newgrp, hauràs de fer exit diverses vegades per tornar al principi. newgrp sense arguments també et torna al teu grup d’inici, però obrint un altre shell més.
Si no ets membre del grup
Si no ets membre del grup, newgrp et demana una contrasenya. Només funcionarà si l’administrador ha posat contrasenya al grup (amb gpasswd grup), cosa molt poc habitual; si no, l’accés es denega. Avui les contrasenyes de grup pràcticament no es fan servir: és molt millor afegir l’usuari al grup.
Alternativa per als directoris compartits
Si el que vols és que tots els fitxers d’un directori siguin d’un grup, no cal que cada usuari faci newgrp. Activa el bit setgid al directori i els fitxers nous n’heretaran el grup:
sudo chgrp projecte /srv/projecte
sudo chmod g+s /srv/projecte Comandes relacionades
usermod -aG: afegir un usuari a un grup.chgrp: canviar el grup de fitxers que ja existeixen.groupadd: crear grups.umask: permisos per defecte dels fitxers nous.- Usuaris i grups a Linux
Esta web usa cookies.