2009-08-24 15 views

Respuesta

8

newgrp (1)

+0

Soy miembro del grupo, entonces ¿por qué me está pidiendo una contraseña? ¡No me gusta mi contraseña! – Michael

+0

también, si ejecuto "newgrp " como raíz (por ejemplo, ejecutando un script con newgrp usando sudo), me vuelco a un shell raíz. – Michael

+0

Esto no es para lo que debe usarse newgrp. ¿Qué ocurre si te olvidas de usar newgrp fuera del script? ¿Cómo manejará el script el nuevo shell creado por newgrp? La respuesta de @ mark40 es mejor. – noel

156

Hay un par de maneras de hacer esto:

  1. Puede cambiar el grupo por defecto para todos los archivos creados en un directorio en particular estableciendo el indicador setgid en el directorio (chmod g+s _dir_). Se crearán nuevos archivos en el directorio con el grupo del directorio (establecido usando chgrp <group> <dir>). Esto se aplica a cualquier programa que crea archivos en el directorio.

    Tenga en cuenta que este es heredado automagicamente para los nuevos subdirectorios (a partir de Linux 3.10), sin embargo, si los subdirectorios ya estaban presentes, este cambio no se aplicará a ellos (usar la bandera -R para eso).

  2. Si el indicador de setgid no está establecido, el grupo predeterminado se establecerá en la identificación de grupo actual del proceso de creación. Aunque esto se puede establecer mediante el comando newgrp , crea un nuevo shell que es difícil de usar dentro de un script shell . Si desea ejecutar un comando en particular (o un conjunto de comandos) con el grupo cambiado, use el comando sg <group> <command>.

    sg no es un comando estándar POSIX pero está disponible en Linux.

+5

Solo una pequeña nota. Si intenta ejecutar 'chmod g + s _dir_' en un directorio que tiene el grupo y, y está ejecutando el comando bajo usuario x, y el usuario x no es miembro del grupo y no funcionará. Tendrás que ejecutarlo como root. – LEDfan

Cuestiones relacionadas