2012-11-04 43 views
0

我正在考慮在系統啓動時以普通用戶身份運行命令。目前,這樣做,我使用的語法如下:每用戶rc.local文件是一個壞主意?

su -c 'command with some arguments' user 

但我想這可能是有益的每用戶rc.local文件中在〜/ .rc.local,將自動獲得在啓動時以用戶身份運行。我想出的代碼是這樣的:

awk -F":" '{ if ($3 >= 1000) print $1, $6 }' /etc/passwd | while read u h 
do 
    [ -x "$h/.rc.local" ] && su -c "cd $h; ./.rc.local" $u 
done 

這將被添加到/etc/rc.local。它搜索每個非系統用戶的主目錄(即uid> = 1000),如果該文件存在並且是可執行文件,則它將cd移到用戶主目錄並以用戶身份執行該腳本。

對我來說,這似乎消除了任何安全風險的來源,因爲它會以用戶身份執行腳本,而不是根,但最近我已經提醒我缺乏安全知識,所以我提出這個問題問題:這是一個壞主意嗎?

現在,我只能在我的家用電腦上運行此功能,而我的家用電腦只有一個非系統用戶。幾年之後,我的女兒在計算機上獲得了自己的帳戶,但除此之外,並不是像完整的陌生人會以任何方式訪問這個帳戶。

那麼,有沒有我可以忽略的潛在安全漏洞?另外,有沒有更優雅的方式來編寫該命令?

回答

0

這與每個用戶crontabs的@reboot能力重疊。

+0

當然。我無法相信我忘了@reboot。謝謝! –

相關問題