簡體   English   中英

如何在Ubuntu 12.04上使用特定用戶在啟動時運行bash腳本(穩定)

[英]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是不可以的,用戶可以在其中分配適當的權限。

這可能不是最佳答案,但這是我決定完成此任務的方式:

與此帖子完全一樣:

如何以沒有密碼的其他用戶身份運行腳本

我確實使用rc.local在啟動時啟動了進程。 它似乎運行得很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM