我有不同的用戶在/home
。每個用戶都有一個start.sh
腳本和一個start.conf
用於配置。 start.sh
中鏈接到/bin/nameoftheuser
,使打字更容易(這增加了更復雜的問題)。限制bash腳本到它的主人
我想將腳本限制在與之協同工作的用戶。我現在做的是這樣的:
cd
if [ -f start.conf ]; then
. start.conf
else
echo "start.conf not found"
exit 2
fi
if [ $(whoami) != $SCRIPTUSER ]; then
echo "You are logged in with $(whoami). Only $SCRIPTUSER is allowed to use this script"
exit 2
fi
$SCRIPTUSER
在start.conf
定義。但是當我用錯誤的用戶登錄並且想要使用start.sh
時,錯誤的配置文件被包含在內,因此代碼的第二部分沒有發現錯誤。
在結束時,每個用戶應限制其start.sh
腳本excluselive他們和其他人不應該是能夠通過事故
一個想法可能是$0
車主比較當前叫它用戶。但是當/bin/nameoftheuser
中存在符號鏈接時,符號鏈接歸根。
包括配置文件和讀取哪些用戶可以使用它並比較$(whoami)
它也不滿足。這是因爲不同的用戶可以調用它幷包含他們自己的start.conf
的主人這一切似乎小費解。這個設計應該解決哪個問題? – tripleee
'sudo chmod 700/home/*' – Cyrus
如果'start.conf'是'chmod 600',那麼你描述的錯誤應該是不可能的。您可能需要添加一個檢查以讀取此文件。 ......或者,賽勒斯剛纔說的。 – tripleee