使用脚本更改用户shell?

时间:2017-06-13 13:40:58

标签: linux git bash shell

是否有正确的方法可以使用脚本更改用户的shell变量,具体取决于他们使用的shell?如

GITSHELL=/bin/bash
if [ GITSHELL = $SHELL ]
then 
chsh git -s /usr/bin/git-shell
else
chsh git -s /bin/bash

显然这有一些问题。我不知道怎么说这个,所以我可以 答:以root身份运行它仍然会在某处使用su或者在某处使用su来调用用户git的shell而不是root用户 B:将它作为git和su -c root运行,以便在初始化之后更改git的shell?

我的目标是让我可以运行一个脚本,以便在我需要该用户暂时具备创建文件夹和运行git init --bare的能力时,将用户git的shell更改为bash。然后我会再次运行脚本,以便出于安全原因将shell更改回git-bash。 这是可能的,还是应该以不同的方式进行?

1 个答案:

答案 0 :(得分:1)

让用户通过环境变量进行控制。只需像这样编写脚本:

: ${GITSHELL:=/usr/bin/git-shell}

git -s "$GITSHELL"

现在,除非明确覆盖,否则您的脚本将使用/usr/bin/git-shell

$ ./script.sh                     # use /usr/bin/git-shell
$ GITSHELL=/bin/bash ./script.sh  # use /bin/bash