韓媒:北京首爾將建“細塵熱線” 改善空氣質量|首爾|空氣質量|北京_新浪新聞

8月10日當前最新消息 Linux係統中的切換用戶命令寶典

李石勳2025-07-05 07:11:32 3松岗街新疆塔城和布克赛尔蒙古自治县
摘要今天小編跟大家講解下有關科技常識:Linux係統中的切換用戶命令寶典,相信小夥伴們對這個話題應該也很關注吧,小編也收集到了有關科技常識...

8月10日當前最新消息 Linux係統中的切換用戶命令寶典

今天小編跟大家講解下有關科技常識:Linux係統中的切換用戶命令寶典,相信小夥伴們對這個話題應該也很關注吧,小編也收集到了有關科技常識:Linux係統中的切換用戶命令寶典的相關資料,希望小夥伴會喜歡也能夠幫助大家。

#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用戶的密碼):

複製代碼代碼如下:[email⠰rotected]:~$ su -或複製代碼代碼如下:[email⠰rotected]:~$ su - root輸出示例:

Password:複製代碼代碼如下:[email⠰rotected]:/root# [email⠰rotected]:~$如果輸入了正確的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

來源:愛蒂網

本文到此結束,希望對大家有所幫助呢。

虛度年華網 Copyright © 2020 Powered by 虛度年華網   sitemap谷歌留痕

联系QQ: QQ号 邮箱地址:472@qq.com