自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux系統(tǒng)下,如何以其他用戶身份運行程序

系統(tǒng) Linux 系統(tǒng)運維
本教程給出了Linux系統(tǒng)下,如何使用runuser命令、su命令和sudo命令以其他用戶身份來運行程序,以及這三個命令的運行效率比較。

[[143090]]

#1:runuser命令

runuser命令使用一個替代的用戶或者組ID運行一個Shell。這個命令僅在root用戶時有用。

僅以會話PAM鉤子運行,并且沒有密碼提示。如果用一個非root用戶,并且該用戶沒有權(quán)限設(shè)置user ID,這個命令將會因為程序沒有setuid而失敗。因runuser不會運行認(rèn)證和賬戶PAM鉤子,它比su更底層。

語法:

  1. runuser -l userNameHere -c 'command' 
  2. runuser -l userNameHere -c '/path/to/command arg1 arg2' 

舉例來說,作為一個root用戶,你也許想檢查下oracle用戶下的shell資源限制,輸入:

  1. # runuser -l oracle -c 'ulimit -SHa' 

或者監(jiān)察下nginx或lighttpd web服務(wù)器限制:

  1. # runuser -l nginx -c 'ulimit -SHa' 

  1. # runuser -l lighttpd -c 'ulimit -SHa' 

 有時,root用戶由于權(quán)限(安全)問題不能瀏覽NFS掛載的共享:

  1. # ls -l /nfs/wwwroot/cyberciti.biz/http 

或者

  1. # cd /nfs/wwwroot/cyberciti.biz/http 

可能的輸出:

  1. -bash: cd: /nfs/wwwroot/cyberciti.biz/http/: Permission denied 

盡管如此,apache用戶被允許瀏覽或訪問掛載在/nfs/wwwroot/cyberciti.biz/http/下基于nfs的系統(tǒng):

  1. # runuser -l apache -c 'ls -l /nfs/wwwroot/cyberciti.biz/http/' 

或者

  1. # runuser -l apache -c 'cd /nfs/wwwroot/cyberciti.biz/http/; vi index.php' 

使用runuser命令,無需使用密碼,并且,只能在root用戶下使用。

可用選項:

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

2. -g:指定主要的組

3. -G 追加組

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

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

6. -m: 不重置環(huán)境變量。

#2:su命令

su命令允許你成為一個超級用戶或者替代用戶(substitute user),欺騙用戶(spoof user),設(shè)置用戶(set user)或者切換用戶(switch user)。它允許一個Linxu用戶切換當(dāng)前用戶到那些你知道密碼的目標(biāo)用戶,切換包括與之關(guān)聯(lián)的運行中的控制臺(console)或者Shell,它的語法如下:

  1. su - 
  2. su - username 

切換到root用戶

su命令會詢問目標(biāo)用戶的密碼,在你的shell命令行中輸入 su - 來切換到root用戶(你必須知道root用戶的密碼):

  1. vivek@wks01:~$ su - 

或者

  1. vivek@wks01:~$ su - root 

輸出示例:

  1. Password
  2. root@wks01:/root# logout 
  3. vivek@wks01:~$ 

如果輸入了正確的root密碼,會話的所有權(quán)(這里應(yīng)該指當(dāng)前控制臺的上下文——譯注)將改為root賬戶。輸入logout可以退出一個root登錄的shell,輸入 whoami或者id命令來驗證當(dāng)前會話的所有者:

  1. whoami 

用root賬戶運行命令

語法是:

  1. su - root -c "command" 
  2. OR 
  3. su - -c "command arg1" 

查看/root目錄下的內(nèi)容,這些原本是普通用戶無法訪問的,運行:

  1. su - root -c "ls -l /root" 

需要注意的是,Linix和一些Unix-like系統(tǒng)有一個wheel用戶組,并且只允許這個組內(nèi)的用戶使用su切換到root。

使用su命令來讓其他用戶運行命令

下面這個命令是切換到oracle的賬戶,并且顯示限制清單:

  1. $ su - oracle -c 'ulimit -aHS' 

同樣, 如果提供了正確的oracle密碼,會話所有權(quán)將會變成oracle賬戶。su命令的日志保存在系統(tǒng)日志中,一般是在/var/log/auth.log(Debian/Ubuntu)或者/var/log/secure(RHEL/CentOS)。

#p#

#3:sudo命令

sudo以另外的用戶來執(zhí)行一個命令,但是它跟著一組關(guān)于那些用戶可以以那些其他用戶執(zhí)行那些命令的規(guī)則(有點繞口——譯注)。這個規(guī)則在/etc/sudoers這個文件中被定義。不像su,sudo驗證用戶是靠用戶自己的密碼而不是那個要切換的用戶密碼。當(dāng)提供一個審計跟蹤命令和他們的參數(shù)時(原文:...whileproviding an audit trail of the commands and their arguments——譯注)sudo允許一個系統(tǒng)管理員給某些用戶(或用戶組)委派以root或其他用戶來運行某些(或全部)命令的權(quán)限。這允許無需在用戶之間共享密碼就可以在指定宿主上將指定命令委派給指定用戶。語法如下:

  1. sudo command 

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

1. 在Linux操作系統(tǒng)如何配置和使用sudo工具1

2. sudo項目主頁2

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

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

  1. gksu [-u <user>] [options] <command> 
  2. gksudo [-u <user>] [options] <command> 

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

linux gksu: run command as root user using gnome gui

圖1:運行中的gksu

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

gnome gksu command

圖2:Gnome gksu對目標(biāo)用戶的驗證框

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

  1. gksu -u root 'ls /root' 

或,以oracle用戶運行命令:

  1. gksu -u oracle 'ulimit -aHS' 

或作為root登錄:

  1. gksu -u root -l 

總結(jié):runuser VS su VS sudo

請查看man幫助頁面來獲取更多關(guān)于su,sudo,gksu,和gksudo命令的相關(guān)信息。

說明:

本文是nixCraft一篇文章的翻譯,非常感謝nixCraft提供如此棒的教程,原文可以通過參考的原文連接查看,在翻譯中省略了頭尾一些非相關(guān)信息,同時由于翻譯時間有限,是通過邊看邊譯的形式完成此篇博文,錯誤肯定非常多,還請大家多多指正。

參考:

 1.  在Linux操作系統(tǒng)下如何配置和使用sudo(英文頁面

 2.  sudo項目主頁(英文頁面

 3. 本篇博客原文(英文頁面

責(zé)任編輯:火鳳凰 來源: Mitchell Chu博客
相關(guān)推薦

2020-03-24 12:40:57

Linux命令行通信

2020-09-09 07:48:42

Linux 命令行通信

2021-04-07 11:08:15

Sudo命令Linux

2021-03-12 10:01:33

Sudo命令Linux

2015-07-31 11:19:09

Windows 10帶寬更新

2018-04-20 09:58:10

Linux命令sudo

2021-05-24 11:10:47

漏洞隱私移動安全

2011-08-09 14:01:25

DB Link數(shù)據(jù)庫

2011-08-17 15:39:16

Windows7管理員身份運行程序

2018-12-21 19:30:28

Windows 10Windows管理員身份

2015-07-17 16:21:42

Linux端口

2011-09-19 19:21:54

linux

2018-10-26 16:20:27

PodmanrootLinux

2021-02-17 09:16:58

PodmanLinuxDocker

2020-02-26 09:42:15

主存程序存儲器

2011-03-22 15:47:46

2010-06-22 16:09:42

Autoconf教程

2021-12-23 22:48:17

Windows 11Windows微軟

2009-03-21 16:32:00

虛擬化VmwareWindows

2023-02-18 14:32:02

LinuxSSH用戶
點贊
收藏

51CTO技術(shù)棧公眾號