Shell Script para alterar o shell do usuário

1

Estou escrevendo um script que seria chamado para alterar o shell do usuário. O requisito básico é que, assim que o usuário for autenticado (por exemplo, por meio de algum aplicativo da Web), o script será chamado para definir o shell padrão. Ele pode escolher entre a variedade de shells disponíveis. Existem várias perguntas que não sei como abordar. O primeiro deles sendo -How Para alterar o shell? - Eu sei sobre chsh mas executar o comando requer que o usuário forneça uma senha, e lá eu não quero isso. Depois que o usuário é autenticado, quero executar o script sabendo que o usuário é válido. Devo usar os privilégios de root? se sim, quais são as implicações de segurança disso? Além disso, quais medidas de segurança devo considerar ao implementar esse script? Eu comecei com o script abaixo e espero expandir isso. Comentários / Respostas serão apreciados.

PS: essa pergunta foi postada aqui , então percebi que esse fórum poderia seja o lugar certo.

  1 #!/bin/bash
  2 
  3 #### Constants ########
  4 TOSHELL=
  5 NUMARGS=$#
  6 USER=$(whoami)
  7 #### Functions ########
  8 
  9 checkArgument(){
 10 
 11     if [ "$NUMARGS" != "1" ]
 12     then
 13         return 1
 14     else
 15         TOSHELL=$1
 16         return 0
 17     fi
 18 
 19 }
 20 
 21 
 22 changeShell(){
 23 
 24     'chsh -s $TOSHELL $USER'    
 25 
 26 }
 27 
 28 main(){
 29 
 30 
 31     if checkArgument
 32     then
 33         changeShell #Also check if changeShell was successful
 34         return 0
 35     else
 36         return 1
 37     fi
 38 
 39 }
 40 main
    
por Neo 20.05.2015 / 16:42

0 respostas