2017-06-13 74 views
0

是否有改變用戶的shell變量,取決於他們使用什麼shell腳本有道?如用腳本更改用戶shell?

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

顯然這裏有一些問題。我不知道怎樣來寫這個,所以我可以 答:root權限運行它,還自稱用戶Git的外殼,而不是根本的在語句中使用蘇某處或 B:運行它的git和蘇-c根變化git的shell之後的初始if?

的目標是有一個劇本,我可以運行更改用戶的git的外殼打壞當我需要該用戶暫時有能力創建文件夾和運行git的init --bare。然後,我會再次運行該腳本來改變背殼與git-的bash出於安全原因。 這是可能的,或者我應該去了解這個以不同的方式?

回答

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