Aggiornare le iscrizioni ai gruppi supplementari senza effettuare nuovamente l'accesso?


12

Da quanto ho capito, una sessione Linux memorizza nella cache le appartenenze ai gruppi al momento dell'accesso. Quindi, se viene aggiunta una nuova appartenenza al gruppo (ad es. Con adduser someuser somegroup), l'utente deve disconnettersi e riconnettersi per poter usufruire della nuova appartenenza.

La mia domanda è: esiste un modo per aggiornare le appartenenze ai gruppi in-process, senza accedere di nuovo, uscire dal processo corrente o iniziare un nuovo processo?

Risposte:


9

Puoi iniziare un nuovo accesso dalla tua sessione

$ su - your_login

Non influisce sul processo in esecuzione. Se stai usando Xserver, puoi avviare xterm e digitare questo comando (influisce solo su questa sessione terminale) L'unico modo per renderlo persistente è terminare la sessione e avviarlo di nuovo


Nel caso in cui consenti solo l'autenticazione con chiave pubblica sul tuo server, dovresti importare la chiave segreta?
Cyril Duchon-Doris,


2

Altri hanno menzionato " su - $USER" e " newgrp", e ho pensato che dovrei menzionare che dovresti anche guardare " sg".


1

È possibile utilizzare gpasswdper la modifica immediata:

gpasswd -a someuser somegroup

Non è necessario creare una nuova shell o accedere nuovamente. Successivamente verifica l'appartenenza al gruppo utilizzando getent:

getent group somegroup

Stai creando il gruppo, quindi stai cercando quel gruppo. Questo non ha nulla a che fare con la domanda discussa: la modifica non è efficace nella sessione corrente.
Str.

1

Tu puoi fare:

exec su -l $USER

Ciò aggiorna implicitamente l'elenco dei gruppi senza dover uscire dal terminale.


0

Che dire di questo (anche se soddisfa solo il requisito che non dovresti riconnetterti)

exec /bin/bash -l

Il flag -l assumerebbe una nuova shell di login e il exec sostituirà la shell corrente con quella nuova. A proposito, non digitare male il nome della shell :-)

Un problema con l'utilizzo di newgrp e su come suggerito in precedenza è che verrebbe creata una nuova sotto-shell. Sì, potresti precederli anche con un comando exec.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.