在Linux系統中,程序一般都是在系統用戶下運行的。當然也其他用戶也可以運行程序,只不過要通過以些設置來讓程序在其他用戶中執行。本文就來介紹一下Linux以其他用戶身份來執行程序的方法。
一、 runuser命令:
概述:runuser命令使用一個替代的用戶或者組ID運行一個Shell。這個命令僅在root用戶時有用。
僅以會話PAM鉤子運行,並且沒有密碼提示。如果用一個非root用戶,並且該用戶沒有權限設置user ID,這個命令將會因為程序沒有setuid而失敗。因runuser不會運行認證和賬戶PAM鉤子,它比su更底層。
語法如下圖:
使用注意事項:使用runuser命令,無需使用密碼,並且,只能在root用戶下使用。
二、su命令
1. 概述:su命令允許你成為一個超級用戶或者替代用戶(substitute user),欺騙用戶(spoof user),設置用戶(set user)或者切換用戶(switch user)。它允許一個Linxu用戶切換當前用戶到那些你知道密碼的目標用戶,切換包括與之關聯的運行中的控制台(console)或者Shell
它的語法如下圖所示:
2. 切換到root用戶:su命令會詢問目標用戶的密碼,在你的shell命令行中輸入 su - 來切換到root用戶(你必須知道root用戶的密碼)
如果輸入了正確的root密碼,會話的所有權(這裡應該指當前控制台的上下文——譯注)將改為root賬戶。輸入logout可以退出一個root登錄的shell,輸入 whoami或者id命令來驗證當前會話的所有者。
三、 sudo命令
1. 概述:udo以另外的用戶來執行一個命令,但是它跟著一組關於那些用戶可以以那些其他用戶執行那些命令的規則(有點繞口——譯注)。這個規則在/etc/sudoers這個文件中被定義。不像su,sudo驗證用戶是靠用戶自己的密碼而不是那個要切換的用戶密碼。當提供一個審計跟蹤命令和他們的參數時,sudo允許一個系統管理員給某些用戶(或用戶組)委派以root或其他用戶來運行某些(或全部)命令的權限。這允許無需在用戶之間共享密碼就可以在指定宿主上將指定命令委派給指定用戶。
語法如下圖所示:
四、 nat123使用linux版linux服務器:
支持端口映射和動態域名解析,web管理。自家服務器發布網站,做網站服務可以使用nat123軟件解決80端口被屏蔽問題、公網IP不固定問題、無公網IP不能發布網站問題。
GUI工具注意事項(su和sudo的前端GUI):
gksu 命令是su的前台,gksudo是sudo的前端。他們的主要用途是用來運行需要root權限但不需要運行一個X terminal emulator和使用直接使用su的圖形化命令。
語法如下:
以上就是Linux怎麼在其他用戶下執行程序的介紹了,在Linux系統中有專門的命令幫助我們在其他用戶下執行程序,當然也可以使用工具來實現這個目標。