1. 程式人生 > >Root用戶讓其他用戶運行某程序

Root用戶讓其他用戶運行某程序

gin 失敗 環境變量 不足 運行 home sudoer 是我 nologin

這裏以啟動tomcat為例

1、安裝tomcat不介紹了,自己百度

2、測試能否使用,略

3、創建tomcat用戶

useradd tomcat -s /sbin/nologin

創建tomcat,禁止登陸,用戶目錄用來存放日誌

4、啟動

sudo -u tomcat tomcat/bin/startup.sh

這裏報錯:找不到Java_home

思考:配置了全局環境變量JAVA_HOME,都能使用,為啥sudo就失敗?會不會是sudo也有個.bashrc類似的,裏面不存在?

驗證:sudo -E env,一看果然沒有JAVA_HOME

原因:sudo 為了安全使用一套特殊的環境變量,參見/etc/sudoers 裏面有個Defaults /bin/bash:/sbin/bash

修改:加入jdk的目錄,如圖

技術分享圖片

最後再試下:sudo -u tomcat tomcat/bin/startup.sh

不足之處:

1、http://xxx:8080/manager/進去不會彈出輸入用戶名密碼的框,而http://xxx/manager可以彈出框,原因未知;;;;;或許是我nginx代理了80端口緣故、?但是關閉了也沒用

Root用戶讓其他用戶運行某程序