#1:runuser命令
runuser命令使用一個替代的用戶或者組ID運行一個Shell。這個命令僅在root用戶時有用。
僅以會話PAM鉤子運行,并且沒有密碼提示。如果用一個非root用戶,并且該用戶沒有權限設置user ID,這個命令將會因為程序沒有setuid而失敗。因runuser不會運行認證和賬戶PAM鉤子,它比su更底層。
語法:
代碼如下:
runuser -l userNameHere -c 'command'
runuser -l userNameHere -c '/path/to/command arg1 arg2'
舉例來說,作為一個root用戶,你也許想檢查下oracle用戶下的shell資源限制,輸入:
代碼如下:
# runuser -l oracle -c 'ulimit -SHa'
或者監察下nginx或lighttpd web服務器限制:
代碼如下:
# runuser -l nginx -c 'ulimit -SHa'
或
代碼如下:
# runuser -l lighttpd -c 'ulimit -SHa'
有時,root用戶由于權限(安全)問題不能瀏覽NFS掛載的共享:
代碼如下:
# ls -l /nfs/wwwroot/cyberciti.biz/http
或
代碼如下:
# cd /nfs/wwwroot/cyberciti.biz/http
可能的輸出:
代碼如下:
-bash: cd: /nfs/wwwroot/cyberciti.biz/http/: Permission denied
盡管如此,apache用戶被允許瀏覽或訪問掛載在/nfs/wwwroot/cyberciti.biz/http/下基于nfs的系統:
代碼如下:
# runuser -l apache -c 'ls -l /nfs/wwwroot/cyberciti.biz/http/'
或
代碼如下:
# runuser -l apache -c 'cd /nfs/wwwroot/cyberciti.biz/http/; vi index.php'
使用runuser命令,無需使用密碼,并且,只能在root用戶下使用。
可用選項:
-l: 讓shell成為登錄shell,用 runuser -l PAM 文件替代默認的
-g:指定主要的組
-G 追加組
-c:命令,要傳到shell的單個命令
--session-command=COMMAND:使用-c傳遞單個命令道shell中并且不創建新的會話
-m: 不重置環境變量。
#2:su命令
su命令允許你成為一個超級用戶或者替代用戶(substitute user),欺騙用戶(spoof user),設置用戶(set user)或者切換用戶(switch user)。它允許一個Linxu用戶切換當前用戶到那些你知道密碼的目標用戶,切換包括與之關聯的運行中的控制臺(console)或者Shell,它的語法如下:
代碼如下:
su -
su - username
切換到root用戶
su命令會詢問目標用戶的密碼,在你的shell命令行中輸入 su - 來切換到root用戶(你必須知道root用戶的密碼):
代碼如下:
vivek@wks01:~$ su -
或
代碼如下:
vivek@wks01:~$ su - root
輸出示例:
Password:
代碼如下:
root@wks01:/root# logout
vivek@wks01:~$
如果輸入了正確的root密碼,會話的所有權(這里應該指當前控制臺的上下文——譯注)將改為root賬戶。輸入logout可以退出一個root登錄的shell,輸入 whoami或者id命令來驗證當前會話的所有者:
whoami
或
id
用root賬戶運行命令
語法是:
代碼如下:
su - root -c "command"
或
代碼如下:
su - -c "command arg1"
查看/root目錄下的內容,這些原本是普通用戶無法訪問的,運行:
代碼如下:
su - root -c "ls -l /root"
需要注意的是,Linix和一些Unix-like系統有一個wheel用戶組,并且只允許這個組內的用戶使用su切換到root。
使用su命令來讓其他用戶運行命令
下面這個命令是切換到oracle的賬戶,并且顯示限制清單:
代碼如下:
$ su - oracle -c 'ulimit -aHS'
同樣, 如果提供了正確的oracle密碼,會話所有權將會變成oracle賬戶。su命令的日志保存在系統日志中,一般是在/var/log/auth.log(Debian/Ubuntu)或者/var/log/secure(RHEL/CentOS)。
#3: sudo命令
sudo以另外的用戶來執行一個命令,但是它跟著一組關于那些用戶可以以那些其他用戶執行那些命令的規則(有點繞口——譯注)。這個規則在/etc/sudoers這個文件中被定義。不像su,sudo驗證用戶是靠用戶自己的密碼而不是那個要切換的用戶密碼。當提供一個審計跟蹤命令和他們的參數時(原文:...whileproviding an audit trail of the commands and their arguments——譯注)sudo允許一個系統管理員給某些用戶(或用戶組)委派以root或其他用戶來運行某些(或全部)命令的權限。這允許無需在用戶之間共享密碼就可以在指定宿主上將指定命令委派給指定用戶。語法如下:
代碼如下:
sudo command
GUI工具注意事項(su和sudo的前端GUI)
gksu 命令是su的前臺,gksudo 是sudo的前端。他們的主要用途是用來運行需要root權限但不需要運行一個X terminal emulator和使用直接使用su的圖形化命令。語法如下:
代碼如下:
gksu [-u <user>] [options] <command>
gksudo [-u <user>] [options] <command>
僅輸入gksu,將會顯示下面這個彈窗:
然后,你將會被要求輸入root用戶的密碼:
你也可以直接運行下面代碼:
代碼如下:
gksu -u root 'ls /root'
或,以oracle用戶運行命令:
代碼如下:
gksu -u oracle 'ulimit -aHS'
或作為root登錄:
代碼如下:
gksu -u root -l
總結:runuser VS su VS sudo
感謝各位的閱讀,以上就是“Linux系統中的切換用戶命令總結”的內容了,經過本文的學習后,相信大家對Linux系統中的切換用戶命令總結這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是本站,小編將為大家推送更多相關知識點的文章,歡迎關注!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
623052開頭的農行卡是哪里?僅憑銀行卡號開頭數字無法確定是哪里的農行卡,用戶可以撥打農行客服熱線,轉人工服務,提供卡號查詢開戶行詳細地址。中國農業銀行總公司坐落于建國門內大街69號,也是中國大型國有制銀行之一,在業界十分知名。623052農業銀行卡歸屬地哪里?623052是中國農業銀行的國密卡,并沒有明確的歸屬地,比起普通的借記卡和儲蓄卡,這第三代國密卡具備境外消費的能力,可以在境外進行購物消...
紙黃金開盤時間是什么時候?紙黃金是24小時交易的,但不同時點行情會不同,以下是紙黃金交易時間和活躍狀況:1、早5-14點亞洲市場開盤,其推動力量較小,一般行情震蕩幅度較小。2、午間14-18點為歐洲上午市場。3、傍晚18-20點為歐洲的中午休息和美洲市場的清晨,行情波動變大。4、20--24點為歐洲市場的下午盤和美洲市場的上午盤,行情波動較大。5、24點后到清晨,為美國的下午盤,一般此時已經走出了...
#標題創作挑戰#宋是山東省濱州市博興縣人,這也是他的出生地。宋,時代青年團團員,歌手、演員。出道后發行了《狼性青春》、《致青春》、《校報》等音樂作品,受到粉絲喜歡。曾參演《念念》《第二人生》等劇,錄制《王牌對王牌》《萌探》等綜藝節目。宋出生于山東濱州博興縣。他從小跟著爺爺生活,后來隨父母去了廣州。宋宣亞小時候參加錄制的《真的!很好玩”節目,這是一個兒童教育競賽節目。他在節目中的表現也很出色。接下來...