安全里有個原則,叫最小權限原則
根據這個原則,對於啟動某個應用或者進程,應該賦予其最小權限,根據應用權限要求,創建一個相應權限的用戶,賦予其應用相應的權限,然后使用這個用戶啟用這個應用
如何使用某個用戶啟用某個進程或者應用?
1、使用這個用戶登錄linux系統后的一般操作(除sudo/su等操作外)都是這個用戶權限的操作,包括啟動應用后,該應用具有的權限,也是和這個用戶一致的
2、在其他用戶登錄后,使用su命令:
su - admin -c 'nohup python /home/tdqa/rpc_server/test_rpc.py &'
表示使用admin用戶啟動test_rpc.py,這里需要具有用戶admin的密碼
如果,你擁有sudo權限,可以執行不需要輸入密碼
sudo su - admin -c 'nohup python /home/tdqa/rpc_server/test_rpc.py &'
2、在其他用戶登錄后,使用runuser命令:
如果,你擁有sudo權限,也可以使用runuser命令 sudo runuser -l admin -c 'nohup python /home/tdqa/rpc_server/test_rpc.py &'
3、或者直接 sudo -u admin nohup /usr/local/bin/python test_rpc.py & 但是很奇怪的是起來了2個進程
順帶絮叨下su和sudo的區別:
su切換到某個用戶下,需要目標用戶的密碼,日志里記錄的也是切換之后的用戶操作
sudo是受限的su命令,切換到其他用戶,並不需要密碼,只是執行操作時,臨時操作,日志記錄的也是當前用戶的操作
參考:
1、https://www.cnblogs.com/bodhitree/p/6018369.html