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
Tags bash users shell shell-script