¿Actualizar membresías de grupo suplementarias sin iniciar sesión nuevamente?

12

Según tengo entendido, una sesión de Linux almacena en caché sus pertenencias a grupos al iniciar sesión. Luego, si se agrega una nueva membresía de grupo (por ejemplo, con adduser someuser somegroup), el usuario debe cerrar sesión e iniciar sesión nuevamente para poder aprovechar la nueva membresía.

Mi pregunta es: ¿hay alguna forma de actualizar las membresías de grupo en proceso, sin iniciar sesión nuevamente, salir del proceso actual o comenzar un nuevo proceso?

Avdi
fuente

Respuestas:

9

Puede comenzar un nuevo inicio de sesión desde su sesión

$ su - your_login

No afecta tu proceso de ejecución. Si está utilizando Xserver, puede iniciar xterm y escribir este comando (solo afecta a esta sesión de terminal). La única forma de hacerlo persistente es finalizar su sesión e iniciarla nuevamente.

sumar
fuente
En caso de que solo permita la autenticación de clave pública en su servidor, ¿necesitaría importar la clave secreta?
Cyril Duchon-Doris
5

No lo creo. Pero puede usar el newgrpcomando para generar un nuevo shell con el nuevo grupo. Esto no es permanente.

newgrp superawesomegroupname

Tendrá que desconectar a sus usuarios y luego volver a activarlos.

Joseph Kern
fuente
1
+1 funciona sin requerir contraseña / autenticación a diferenciasu
Cyril Duchon-Doris
2

Otros han mencionado " su - $USER" y " newgrp", y pensé que debería mencionar que también debería mirar " sg".

Osito de peluche
fuente
1

Puede usar gpasswdpara un cambio inmediato:

gpasswd -a someuser somegroup

No es necesario crear un nuevo shell o volver a iniciar sesión. Luego verifique la membresía del grupo usando getent:

getent group somegroup
Tombart
fuente
Estás creando el grupo, luego estás buscando ese grupo. Esto no tiene nada que ver con la pregunta discutida: el cambio no es efectivo en su sesión actual.
Str.
1

Tu puedes hacer:

exec su -l $USER

Eso actualiza implícitamente la lista de grupos sin tener que salir de la terminal.

Arjen P. De Vries
fuente
0

Qué pasa con esto (aunque solo cumple con el requisito de que no tendría que volver a iniciar sesión)

exec /bin/bash -l

El indicador -l asumiría un nuevo shell de inicio de sesión y el ejecutivo reemplazaría el shell actual con ese nuevo. Por cierto, no escribas mal el nombre del shell :-)

Un problema con el uso de newgrp y su como se sugirió anteriormente es que se crearía un nuevo sub-shell. Sí, también puedes precederlos con un comando exec.

mdpc
fuente