Verifiqué más de medio siglo de experiencia en Unix y ni mis colegas ni yo establecimos una contraseña para un grupo ( sg
y gpasswd
). ¿Cuál sería un caso de uso típico para una contraseña de grupo o prácticamente solo existe por razones históricas?
Respuesta1
Yo tampoco he visto nunca que se utilice esta función, ni siquiera una vez. La mayoría de las SA ni siquiera saben que existe esta instalación. Al mirar la página de manual gpasswd
había esta nota:
Notas sobre contraseñas de grupo
Group passwords are an inherent security problem since more than one person is permitted to know the password. However, groups are a useful tool for permitting co-operation between different users.
Por que existen
Creo que fue una idea natural al imitar el modelo de usuario que tiene contraseñas, que también tenía sentido duplicar ese modelo de caso de uso en grupos. Pero en la práctica no sirven para nada.
La idea con una contraseña de grupo es que si necesita obtener acceso a un grupo en particular (uno del que no figura como miembro), puede hacerlo usando el newgrp
comando y se le solicitará una contraseña para obtener acceso. a estos grupos alternativos.
El gran problema con ellos es que solo hay una contraseña única para cada grupo, lo que obliga a las personas a compartir esta única contraseña, cuando varias personas requieren acceso a este grupo en particular.
Grupos
La mayoría de los entornos con los que me he encontrado generalmente colocan a las personas en grupos secundarios y luego les dan a estos grupos acceso a los archivos en el sistema de archivos, y esto ha satisfecho prácticamente todo el uso que debe ocurrir.
sudo
Con la llegada de sudo
permisos adicionales, se podrían otorgar permisos adicionales a los grupos según sea necesario, lo que socavaría aún más cualquier caso de uso que las contraseñas de grupo pudieran haber proporcionado. Si necesitaba permitir a los usuarios más permisos, era mucho más fácil crear roles sudo
y luego simplemente permitir el nombre de usuario o el grupo en el que estaban, permisos para elevar sus permisos para que pudieran realizar una tarea en particular.
ACL
Finalmente, la capacidad de crear Listas de control de acceso (ACL) realmente brindó la última pizca de flexibilidad que el modelo de permisos Usuario/Grupo/Otros no podía proporcionar por sí solo, relegando a la oscuridad cualquier posible necesidad de contraseñas de grupo.
Respuesta2
Aquí hay un uso práctico para las contraseñas de grupo, que implementé yo mismo en nuestro servidor de trabajo, ya que los registros indicaron que mi cuenta estaba siendo forzada bruta (o podría haber sido un ataque de diccionario).
Utilicé ssh-keygen
y puttygen
respectivamente para generar pares de claves para usar desde mi estación de trabajo y computadora de casa. La clave que uso desde casa requiere una contraseña. Agregué ambas claves públicas .ssh/authorized_keys
, creé un grupo marionette
con una contraseña y sin miembros. Como root solía visudo
agregar las siguientes líneas.
Cmnd_Alias SUDOING = /bin/bash, /usr/bin/sudo -i
%marionette ALL=NOPASSWD:SUDOING
He desactivado la contraseña de mi cuenta, nadie puede iniciar sesión de esa manera. Ahora inicio sesión solo con mis claves y al ingresar al grupo protegido con contraseña newgrp marionette
me permite convertirme en root usando sudo -i
.
Sin la NOPASSWD:
opción requerirá sucuenta de usuariocontraseña. Si está deshabilitado y este grupo no lo tiene NOPASSWD
, no podrás hacerlo sudo -i
. También requerirá sucuenta de usuariocontraseña si su lista de comandos no tiene /bin/bash
o cualquier shell que su raíz esté usando de forma predeterminada.
Si bien esto alarga algunos pasos el camino hacia sudoing, agrega una buena capa de seguridad. Si elige que todas sus cuentas sean así, cree una cuenta local con una contraseña y privilegios sudo, pero niéguele la entrada ssh /etc/ssh/sshd_config
agregando algo como:
DenyUsers root caan
DenyGroups root daleks
Esto es necesario para el acceso local en caso de que reinstale y olvide hacer una copia de seguridad de sus claves de acceso.
Respuesta3
Tampoco he visto nunca un caso de uso para esa contraseña. Y eso son unos 20 años de experiencia *nix.
El único caso de uso que se me ocurre es configurarlo en "!" - bloqueado, por lo que nadie, que no sea miembro de ese grupo, puede cambiar a él con el newgrp
comando.
Si analizo /etc/group en SLES o /etc/gshadow en sistemas basados en RedHat, este parece ser el caso de uso "típico". SLES ni siquiera se molestó en crear un mecanismo oculto para esa contraseña.
Respuesta4
Permítanme sugerir un caso de uso.
Primero déjame decirte que estamos tan acostumbrados al término "usuario" que ni siquiera pensamos en él. Pero "usuario" no es realmente unusuario. Por ejemplo, en casa tenemos tres computadoras: la computadora portátil de mi esposa, mi computadora portátil y una computadora de escritorio común. Cuando uso la computadora portátil de mi esposa, inicio sesión con su cuenta de usuario. Cuando usa mi computadora portátil, inicia sesión con mi cuenta de usuario. Si alguien necesita el escritorio, utiliza la cuenta común. Vemos aquí que lo que el sistema informático llama "usuario" no es realmente unusuariopero unflujo de trabajo- un conjunto de actividades.
Aquí está la pregunta: ¿Por qué no puedo tener más de una actividad, una por cada trabajo diferente que tengo? Puedo. En la computadora de mi trabajo he creado (experimentalmente) muchos usuarios diferentes para poder concentrarme en la tarea actual. Puse a todos estos usuarios en el mismo grupo para poder acceder a mis archivos sin importar qué usuario esté usando actualmente.
Entonces, ¿dónde encaja gpasswd en esto?
El comportamiento predeterminado de Ubuntu es crear un grupo especial para cada usuario.
¿Qué pasa si decidimos pensar en estos grupos primarios comousuariosy pensar en los usuarios del sistema comoflujos de trabajo?
Entonces estos nuevos usuarios necesitarían una contraseña para iniciar sesión, ¿verdad? Aquí está el lugar de gpasswd. Todavía necesito descubrir cómo iniciar sesión en el grupo (hasta este punto, lo que sé es que puedes cambiar de grupo con gpasswd si ya has iniciado sesión).