91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統下怎么以其他用戶身份運行程序

發布時間:2021-08-04 09:51:46 來源:億速云 閱讀:1184 作者:chen 欄目:系統運維

這篇文章主要講解了“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用戶下使用。

可用選項:

1. -l: 讓shell成為登錄shell,用 runuser -l PAM 文件替代默認的

2. -g:指定主要的組

3. -G 追加組

4. -c:命令,要傳到shell的單個命令

5. --session-command=COMMAND:使用-c傳遞單個命令道shell中并且不創建新的會話

6. -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

用root賬戶運行命令

語法是:

su - root -c "command" # OR 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這個文件中被定義。不像susudo驗證用戶是靠用戶自己的密碼而不是那個要切換的用戶密碼。當提供一個審計跟蹤命令和他們的參數時(原文:...whileproviding an audit trail of the commands and their arguments——譯注)sudo允許一個系統管理員給某些用戶(或用戶組)委派以root或其他用戶來運行某些(或全部)命令的權限。這允許無需在用戶之間共享密碼就可以在指定宿主上將指定命令委派給指定用戶。語法如下:

sudo command

參照下面的這些鏈接來獲取更多信息:

1. 在Linux操作系統如何配置和使用sudo工具1

2. sudo項目主頁2

GUI工具注意事項(su和sudo的前端GUI)

gksu 命令是su的前臺,gksudo是sudo的前端。他們的主要用途是用來運行需要root權限但不需要運行一個X terminal emulator和使用直接使用su的圖形化命令。語法如下:

gksu [-u <user>] [options] <command> gksudo [-u <user>] [options] <command>

僅輸入gksu,將會顯示下面這個彈窗:

Linux系統下怎么以其他用戶身份運行程序

圖1:運行中的gksu

然后,你將會被要求輸入root用戶的密碼:

Linux系統下怎么以其他用戶身份運行程序

圖2:Gnome gksu對目標用戶的驗證框

你也可以直接運行下面代碼:

gksu -u root 'ls /root'

或,以oracle用戶運行命令:

gksu -u oracle 'ulimit -aHS'

或作為root登錄:

gksu -u root -l
總結:runuser VS su VS sudo

Linux系統下怎么以其他用戶身份運行程序

請查看man幫助頁面來獲取更多關于susudogksu,和gksudo命令的相關信息。

感謝各位的閱讀,以上就是“Linux系統下怎么以其他用戶身份運行程序”的內容了,經過本文的學習后,相信大家對Linux系統下怎么以其他用戶身份運行程序這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金堂县| 高尔夫| 凯里市| 晋江市| 永德县| 新野县| 龙游县| 漳平市| 原平市| 巴塘县| 肥城市| 台南县| 绵阳市| 和田市| 遂平县| 鄂托克前旗| 故城县| 璧山县| 卢龙县| 常山县| 新巴尔虎左旗| 弥渡县| 山阴县| 宿迁市| 钦州市| 麻城市| 中牟县| 临泉县| 郑州市| 吴江市| 隆林| 定襄县| 陕西省| 玛曲县| 剑川县| 黑水县| 永嘉县| 西吉县| 禹州市| 米脂县| 泰和县|