[英]how to run a bash script at startup with a specific user on Ubuntu 12.04 (stable)
作為Linux環境的新手,並且沒有可查詢的本地資源,我想問一問在Ubuntu 12.04系統上以特定用戶身份啟動時啟動進程的首選方法是什么。 進行這種設置的原因是,該機器將在工業環境中托管輸入/輸出控制器(IOC)。 如果機器出現故障或重新啟動,則此過程必須每次都自動啟動。
我的互聯網搜索提供了兩個此類區域來執行此任務:
/etc/rc.local
/etc/init.d/
我要求每種方法的特定優點和缺點。 我要補充一點,這些機器中的一些是客戶端,有些是服務器,但是所有這些都需要運行IOC,最好以相同的方式運行。
在以上認為最合適的方法中,必須以我的指定用戶身份運行bash shell腳本。 據我了解,所有啟動過程均由root擁有。 所以我懷疑這是否是最佳實踐:
sudo -u <user> start_ioc.sh
如果是這種情況,那么我認為需要在以下位置創建文件:
/etc/sudoers.d/
使用:
sudo visudo -f <filename>
您可以在此文件中的適當位置為用戶分配權限和路徑。 我的大部分搜索都將其顯示為正確的格式:
<user or group> <host or IP>=(<user or group to run as>)NOPASSWD:<list of comma separated applications>
root ALL=(user)NOPASSWD:/usr/bin/start_ioc.sh
因此,對於最終的附加信息,此方法的最終原因(可能還存在邏輯缺陷)是IOC進程需要訪問網絡連接服務器(NAS)。 我相信允許root訪問NAS是不可以的,用戶可以在其中分配適當的權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.