Linux 服務的執行身份

想請問一下
因蔽公司的前人(已離職)在 Linux 環境幫客戶寫了一支程式
該程式是以 服務 的方式運作
一直以來都是用 root 的身份執行

但客戶近期要求權限控管

舉例 使用 ps aux 後可以看到各個服務或程式在背景運作的明細
像是 httpd 執行身份就會是 apache
而我們的程式不能用 root

我有嘗試將那程式的目錄及相關檔案的 owner 都改成別的 例如 abc (已有新增一個 abc 帳號)
但似乎沒用,還是顯示為 root
是我有少改了什麼或是這方法根本是錯的呢?

OS 是:RHEL 6.8

謝謝
2017-05-02 13:32 發佈
因為執行時的身份就是 root 啊....
服務的意思是? 放 init.d/rc.d/systemd 之類的設定, 開機自己跑嗎? (這個沒指定都是用 root 沒跑錯)
還是放 inetd 的設定, 連上時被執行? (這個也是沒指定應該就是 root)

上面兩種... 都可以在執行時指定用那個 user 執行, 就不會是 root 了. 這是不改程式的方法, 只要啟動的指令改一改就可以.

如果一定要用改程式的方式處理... 就程式執行後用 setuid/setgid 去切換身份後再 daemonize 就可以 (google 一下應該有很多 sample)


twu2 wrote:
因為執行時的身份就...(恕刪)


我有看了一下程式的啟動內容
他是在 /etc/init.d 底下放一個檔案
然後使用 chkconfig --add xxx
chkconfig xxx on

這種方式讓程式在開機時自動執行

我有嘗試過把 /etc/init.d/ 底下的 xxx owner 改成另一個帳號
但好像也沒用...

請問用這種方式的話可以指定身份嗎?

Stranger2105 wrote:
我有看了一下程式的...(恕刪)

參考這個來修改那個檔案內容吧 (不是改檔案所有人).
http://stackoverflow.com/questions/17956151/how-to-run-a-command-as-a-specific-user-in-an-init-script
如果將abc檔案加入 sudoers裡呢?
visudo 一下,將執行檔加入abc這個帳號,看能不能執行

twu2 wrote:
參考這個來修改那個檔...(恕刪)


謝謝 twu2 大
這一兩天在想辦法參考這說明去修改裡面的程式
其中一個比較單純的程式看起來應該是成功了
另外兩個比較複雜的,因為牽扯到其他東西還在努力中

PS:一開始忘了說 這是一套程式,拆分成三個小的來組合
看似成功的是比較單純僅有純監控用的部分


盧魚三吃 wrote:
如果將abc檔案加入...(恕刪)


謝謝 盧魚三吃 大
這個方法記得之前有試過
加入 sudoers 後,允許的帳號在命令前得加上 sudo 開頭
且執行後印象中還是用 root 的身份去做的
所以放棄
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?