用于更改用户 shell 的 Shell 脚本

用于更改用户 shell 的 Shell 脚本

我正在编写一个脚本,该脚本将被调用来更改用户 shell。基本要求是,一旦用户获得身份验证(例如:通过某些 Web 应用程序),将调用脚本来设置默认 shell。他可以从一系列可用的炮弹中进行选择。有几个问题我不知道如何解决。第一个是 - 如何更改 shell? - 我知道,chsh但运行命令要求用户提供密码,而我不希望这样。一旦用户通过身份验证,我想运行脚本,知道该用户是有效的。我应该使用 root 权限吗?如果是,这对安全有何影响?另外,在实现这样的脚本时我应该考虑哪些安全措施?我从下面的脚本开始,并希望对此进行扩展。评论/答案将不胜感激。

PS:这个问题已经发布了这里,然后意识到这个论坛可能是正确的地方。

  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

相关内容