日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux如何运行用户程序,Linux系统下,如何以其他用户身份运行程序

發(fā)布時(shí)間:2025/3/20 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux如何运行用户程序,Linux系统下,如何以其他用户身份运行程序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

#1:runuser命令

runuser命令使用一個(gè)替代的用戶(hù)或者組ID運(yùn)行一個(gè)Shell。這個(gè)命令僅在root用戶(hù)時(shí)有用。

僅以會(huì)話(huà)PAM鉤子運(yùn)行,并且沒(méi)有密碼提示。如果用一個(gè)非root用戶(hù),并且該用戶(hù)沒(méi)有權(quán)限設(shè)置user ID,這個(gè)命令將會(huì)因?yàn)槌绦驔](méi)有setuid而失敗。因runuser不會(huì)運(yùn)行認(rèn)證和賬戶(hù)PAM鉤子,它比su更底層。

語(yǔ)法:

runuser?-l?userNameHere?-c'command'

runuser?-l?userNameHere?-c?'/path/to/command?arg1?arg2'

舉例來(lái)說(shuō),作為一個(gè)root用戶(hù),你也許想檢查下oracle用戶(hù)下的shell資源限制,輸入:

#?runuser?-l?oracle?-c'ulimit?-SHa'

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

#?runuser?-l?nginx?-c'ulimit?-SHa'

#?runuser?-l?lighttpd?-c'ulimit?-SHa'

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

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

或者

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

可能的輸出:

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

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

#?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命令,無(wú)需使用密碼,并且,只能在root用戶(hù)下使用。

可用選項(xiàng):

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

2. -g:指定主要的組

3. -G 追加組

4. -c:命令,要傳到shell的單個(gè)命令

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

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

#2:su命令

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

su?-

su?-?username

切換到root用戶(hù)

su命令會(huì)詢(xún)問(wèn)目標(biāo)用戶(hù)的密碼,在你的shell命令行中輸入?su -?來(lái)切換到root用戶(hù)(你必須知道root用戶(hù)的密碼):

vivek@wks01:~$?su?-

或者

vivek@wks01:~$?su?-?root

輸出示例:

Password:

root@wks01:/root#?logout

vivek@wks01:~$

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

whoami

用root賬戶(hù)運(yùn)行命令

語(yǔ)法是:

su?-?root?-c"command"

#?OR

su?-?-c?"command?arg1"

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

su?-?root?-c"ls?-l?/root"

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

使用su命令來(lái)讓其他用戶(hù)運(yùn)行命令

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

$?su?-?oracle?-c'ulimit?-aHS'

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

#3:sudo命令

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

sudo 其實(shí)還是挺方便的

在學(xué)習(xí)Linux操作系統(tǒng)中我們經(jīng)常遇到一些問(wèn)題,怎樣才能解決這些Linux操作系統(tǒng)問(wèn)題,比如說(shuō)讓普通用戶(hù)安全執(zhí)行管理員程序。本文為你介紹。

在多人共用一臺(tái)電腦或管理局域網(wǎng)時(shí),常常會(huì)遇到這種情況:普通用戶(hù)必須執(zhí)行某個(gè)命令,比如關(guān)機(jī)。但普通用戶(hù)卻不具備足夠的權(quán)限,而出于隱私和安全的考慮我們又不希望把root密碼告訴別人。

有兩種方法可以解決這一問(wèn)題。

第一種方法是設(shè)置命令文件的suid,可以使普通用戶(hù)以此文件的擁有者的身份運(yùn)行該程序,具體命令為 chmod u+s file ,file為你想讓別人執(zhí)行的文件。還可以設(shè)置guid,讓用戶(hù)以文件所屬組的身份運(yùn)行程序,命令為 chmod g+s file。

第二種方法是使用sudo程序,它可以使某個(gè)用戶(hù)以特定的身份去運(yùn)行程序,當(dāng)然也能以root身份去運(yùn)行,它相比第一種方法更安全也便于維護(hù)。在RedHat發(fā)行版的光盤(pán)里就有這個(gè)工具。使用方法為,在終端中輸入visudo編輯sudoers文件,在空白處添加以下四行:

Host_Alias MYHOST=localhost

User_Alias MYUSER=A的用戶(hù)名,B的用戶(hù)名

Cmnd_Alias MYFILE=A和B要運(yùn)行的程序路徑

MYUSER MYHOST=NOPASSWD:MYFILE

注意大小寫(xiě),以后要增加新的程序或用戶(hù)時(shí),直接更改前三行即可。如果要讓某個(gè)不知道root密碼的用戶(hù)具有全部權(quán)限,除了運(yùn)行某些危險(xiǎn)程序(如格式化),只需增加:

Cmnd_Alias DANGER=危險(xiǎn)程序的路徑

C的用戶(hù)名 ALL=(ALL) NOPASSWD:ALL,!DANGER

設(shè)置完成后,和vi一樣保存退出,編輯器會(huì)自動(dòng)檢查你的語(yǔ)法是否正確,如果出錯(cuò)按 e 可以回去修改。然后該用戶(hù)即可以“sudo+空格+某命令”的格式運(yùn)行具體命令了。

總結(jié)

以上是生活随笔為你收集整理的linux如何运行用户程序,Linux系统下,如何以其他用户身份运行程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。