Los permisos de grupo de Linux no se aplican correctamente.

18

Estoy ejecutando el servidor Ubuntu 10.04 y estoy teniendo algunas experiencias muy intuitivas con usuarios / grupos. Por ejemplo:

sudo touch test_file                    # create empty file

sudo groupadd test                      # create 'test' group

sudo chown root:test test_file          # change group of file to 'test'

sudo chmod g+rwx test_file              # give write permissions to group

sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

La última línea produce un error de permisos.

Me he asegurado de que mi usuario sea parte del grupo 'prueba' (lo groups {my-user}confirma). El grupo de test_file también se establece definitivamente en 'test' y se establecen los permisos del grupo.

¿Por qué mi usuario no puede escribir en el archivo de prueba?

Gordon
fuente

Respuestas:

29

Al agregar un usuario a un nuevo grupo, eso no se aplicará en ningún proceso actualmente en ejecución, solo en los nuevos. Debe cerrar sesión y luego volver a iniciarla.

Daenyth
fuente
44
o piratear su - usernametu consola en ejecución. no tienes que cerrar sesión para iniciar sesión de esta manera :)
matthias krull
5

Los métodos de cierre de sesión y reinicio del servidor no funcionaron para mí.

Sin embargo, este método funciona para mí: (referencia a esta respuesta )

chmod g+rwxs <parent folder>
suma de comprobación
fuente
1
¿Qué hace la +sparte? Gracias.
tommy.carstensen
1
Establece el bit setuid. Esto permite que un archivo se ejecute como propietario del archivo. Supongamos que tiene un archivo que desea ejecutar como root, no importa quién sea la persona que ejecuta el archivo, establecería el bit setuid para ese archivo.
Julius
La clave era x: parece que se necesitan derechos de ejecución para touchtrabajar.
asac - Restablecer a Monica
0

Puede usar el newgrpcomando para cambiar la ID de grupo actual del usuario. De man newgrp:

El comando newgrp se usa para cambiar la ID del grupo actual durante una sesión de inicio de sesión. Si se proporciona el -indicador opcional , el entorno del usuario se reinicializará como si el usuario hubiera iniciado sesión; de lo contrario, el entorno actual, incluido el directorio de trabajo actual, permanece sin cambios.

Pausado hasta nuevo aviso.
fuente
1
Esto también tiene el efecto de reemplazar su grupo actual. No siempre es una buena idea.
Daenyth
Lo rechazaría si pudiera. Sobrescribir grupos podría ser muy frustrante en el futuro ... esp. con -Ropción!
Edward
0

Reinicie la computadora para asegurarse de que ningún proceso atascado impida que su usuario y sus grupos se apliquen correctamente durante el cierre de sesión y el inicio de sesión.

Estos pasos deberían darle a su usuario del grupo testel permiso de escritura entest_file

sudo touch test_file 
sudo groupadd test
sudo chown root:test test_file
sudo chmod g+rwx test_file
sudo usermod -a -G test {my-user}

Reinicie la computadora o cierre la sesión del sistema operativo de su usuario. Un reinicio de terminal no es suficiente.

touch test_file

El usuario puede escribir en el archivo porque es parte del grupo 'prueba' y el grupo tiene permiso rwx.

Eric Leschinski
fuente
3
No hay ningún requisito para reiniciar la computadora.
Kevin Panko