O chsh realmente altera a linha referente a um usuário em / etc / passwd, embora um usuário possa alterar apenas sua própria 'linha' em / etc / passwd. Portanto, se você quiser alterar o shell para outro usuário, precisará da senha dele.
Se você realmente deseja fazê-lo (dadas as preocupações do post de Lorenzo e possíveis preocupações de segurança), veja como se pode fazer isso:
#visudo
Isso requer privilégios de root.
Digamos que você esteja executando atualmente como "alice" e deseje alterar o shell "bob's" sem senha;
Adicione ao arquivo:
Cmnd_Alias SHELL = /usr/bin/chsh
Runas_Alias SH = Bob
alice ALL = (SH) NOPASSWD: SHELL
Isso garante que 'alice' possa ser executado em todos os hosts como usuários do grupo SH sem uma senha do grupo de comandos no SHELL.
Provavelmente um pouco longe de fazer dessa maneira, mas é possível.
Certifique-se de ler "man sudoers" antes de alterar o arquivo sudores com 'visudo', especialmente as mensagens relacionadas à segurança!