chsh en realidad cambia la línea perteneciente a un usuario en / etc / passwd, aunque un usuario solo puede cambiar su propia 'línea' en / etc / passwd. Por lo tanto, si desea cambiar el shell para otro usuario, necesita su contraseña.
Si realmente quieres hacerlo (dadas las preocupaciones en la publicación de Lorenzo y las posibles preocupaciones de seguridad), así es como se puede hacer esto:
#visudo
Esto requiere privilegios de root.
Digamos que actualmente se está ejecutando como "alice" y quiere cambiar el shell de "bob" sin contraseña;
Añadir al archivo:
Cmnd_Alias SHELL = /usr/bin/chsh
Runas_Alias SH = Bob
alice ALL = (SH) NOPASSWD: SHELL
Esto asegura que 'alice' pueda ejecutarse en todos los hosts como usuarios en el grupo SH sin una contraseña del grupo de comandos en SHELL.
Probablemente sea un poco descabellado hacerlo de esta manera, pero es posible.
Asegúrese de leer "sudoers man" antes de cambiar el archivo sudores con 'visudo', ¡especialmente los mensajes relacionados con la seguridad!