新聞中心
在Linux系統(tǒng)中,進(jìn)程權(quán)限是非常重要的一方面。進(jìn)程權(quán)限決定了進(jìn)程可以執(zhí)行的操作以及可以訪問的資源。當(dāng)你想要查看某個進(jìn)程的權(quán)限時,該怎么做呢?本篇文章將會介紹方法并提供詳細(xì)的步驟。

為開平等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及開平網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、開平網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
在Linux中,有很多命令可以用來查看進(jìn)程權(quán)限。其中最常用的是ps命令和lsof命令。
我們先來看看ps命令可以如何查看進(jìn)程權(quán)限。
ps命令是一個用于查看進(jìn)程信息的命令。其中,ps -ef命令可以顯示系統(tǒng)中所有進(jìn)程的詳細(xì)信息,包括進(jìn)程ID、進(jìn)程名稱、占用CPU的百分比以及進(jìn)程的所有者等等。如果你想查看某個特定進(jìn)程的權(quán)限,可以使用如下命令:
“`
ps -p [進(jìn)程ID] -o pid,user,group,comm,umask
“`
這個命令將會打印出進(jìn)程的PID、所屬用戶、所屬組、命令名稱以及進(jìn)程的umask權(quán)限掩碼。umask是一個三位八進(jìn)制數(shù),它用來限制文件的權(quán)限。其中,之一位表示Owner權(quán)限,第二位表示Group權(quán)限,第三位表示Other權(quán)限。它們分別對應(yīng)數(shù)值4、2、1。例如,如果umask為022,表示Owner具有讀寫權(quán)限,Group和Other只有讀權(quán)限。
除了使用ps命令,我們還可以使用lsof命令查看進(jìn)程權(quán)限。lsof命令可以顯示當(dāng)前系統(tǒng)中打開的所有文件,因此可以用來查詢一個進(jìn)程打開了哪些文件,從而了解該進(jìn)程使用了哪些資源。你可以使用如下命令:
“`
lsof -p [進(jìn)程ID]
“`
這個命令將會列出該進(jìn)程打開的所有文件以及對應(yīng)的文件描述符。文件描述符是一個整數(shù),用于標(biāo)識一個文件或者網(wǎng)絡(luò)連接。在Linux系統(tǒng)中,每個進(jìn)程都會有一個文件描述符表,用于記錄該進(jìn)程打開的所有文件和網(wǎng)絡(luò)連接的信息。
使用lsof命令可以查看該進(jìn)程打開的文件的權(quán)限以及所有者等信息。例如,你可以看到該進(jìn)程打開的文件的文件名、文件大小、文件類型、文件權(quán)限以及文件所有者等信息。
除了可以查看某個進(jìn)程的權(quán)限,你還可以查看系統(tǒng)中所有進(jìn)程的權(quán)限。你可以使用如下命令:
“`
ps -ef | awk ‘{if ($3 == 0) print $1,$2,$3,$8}’
“`
這個命令將會列出所有權(quán)限為root的進(jìn)程,其中,$3 == 0表示進(jìn)程的父進(jìn)程是init進(jìn)程,也就是進(jìn)程權(quán)限為root。該命令的輸出結(jié)果包括進(jìn)程的Owner、PID、PPID以及進(jìn)程名稱。
在Linux系統(tǒng)中,進(jìn)程權(quán)限是非常重要的。該權(quán)限決定了進(jìn)程可以執(zhí)行的操作以及可以訪問的資源。你可以使用ps命令和lsof命令來查看進(jìn)程的權(quán)限。ps命令可以顯示系統(tǒng)中所有進(jìn)程的詳細(xì)信息,而lsof命令可以顯示當(dāng)前系統(tǒng)中打開的所有文件,因此可以用來查詢一個進(jìn)程打開了哪些文件,從而了解該進(jìn)程使用了哪些資源。使用這些命令,你可以輕松地查詢進(jìn)程的權(quán)限以及其他相關(guān)信息。
相關(guān)問題拓展閱讀:
- linux中的 代表什么權(quán)限
linux中的 代表什么權(quán)限
Linux的用戶在登錄(login)之后,就帶有一個用戶身份(user ID, UID)和一個組身份(group ID, GID)。差物在Linux文件管理背景知識中,我們又看到,每個文件又有九位的權(quán)限說明,用來指明該文件允許哪些用戶執(zhí)行哪些操作(讀、寫或者執(zhí)行)。
(參考Linux文件管理背景知識)
一般來說,Linux的用戶信息保存在/etc/passwd中,組信息保存在/etc/group中,文件的每一行代表一個用戶/組。早期的Linux將密碼以名碼的形式保存在/etc/passwd中,而現(xiàn)在則多以暗碼(也就是加密之后的形式)的形式保存在/etc/shadow中。將密碼存儲在/etc/shadow中提高了密碼的安全性,因為/etc/passwd允許所有人查看,而/etc/shadow只允許root用戶查看。
進(jìn)程權(quán)限
但是,在Linux中,用戶的指令是在進(jìn)程的范圍內(nèi)進(jìn)行的。當(dāng)我們向?qū)δ硞€文件進(jìn)行操作的時候,我們需要在進(jìn)程中運(yùn)行一個程序,在進(jìn)程中對文件打開,并進(jìn)行讀、寫或者執(zhí)行的操作。因此,我們需要將用戶的權(quán)限傳遞給進(jìn)程,以便進(jìn)程真正去執(zhí)虛尺液行操作。例如我們有一個文件a.txt, 文件中為一個字符串:
Hello world!
我以用戶Vamei的身份登錄,并在shell中運(yùn)行如下命令:
$cat a.txt
整個運(yùn)行過程以及文件讀取如下:
我們可以看到,整個過程中我們會有兩個進(jìn)程,一個是shell本身(2256),一個是shell復(fù)制自身,再運(yùn)行/bin/cat (9913)。圖中的fork, exec, PID可參看Linux進(jìn)程基礎(chǔ)。第二個進(jìn)程總共對文件系統(tǒng)進(jìn)行了兩次操作,一次是執(zhí)行(x)文件/bin/cat,另外一次是讀取(r)文件a.txt。使用$ls -l 查看這兩個文件的權(quán)限:
$ls -l /bin/cat
-rwxr-xr-x 1 root rootApr/bin/cat
$ls -l a.txt
-rw-rw-r– 1 Vamei Vamei 14 Oct 7 09:14 a.txt
從上面可以看到(參考Linux文件管理背景知識),/bin/cat讓所有用戶都享有執(zhí)行的權(quán)利,而Vamei作為a.txt的擁有者,對a.txt享有讀取的權(quán)利。
讓我們進(jìn)入更多的細(xì)節(jié) (The devil is in the details)。在進(jìn)行這兩次操作的時候,盡管用戶Vamei擁有相應(yīng)的權(quán)限,但我們發(fā)現(xiàn),真正做工作的是進(jìn)程9913。我們要讓這個進(jìn)程得到相應(yīng)的權(quán)限。實(shí)際上,每個進(jìn)程會維護(hù)有如下6個ID:
真實(shí)身份: real UID,real GID
有效身份: effective UID, effective GID
存儲身份:saved UID, saved GID
其中,真實(shí)身份是我們登錄使用的身份,有效身份是當(dāng)該進(jìn)程真正去操作文件時所檢查的身份,存儲身份較為特殊,我們等一下再深入。當(dāng)進(jìn)程fork的時候,真實(shí)身份和有效身份都會復(fù)制給子進(jìn)程。大部分情況下,真實(shí)身份和有效身份都相同。當(dāng)Linux完成開機(jī)啟動之后,init進(jìn)程會執(zhí)行一個login的子進(jìn)程。我們將用戶名和密碼傳遞給login子進(jìn)程。login在查詢了/etc/passwd和困大/etc/shadow,并確定了其合法性之后,運(yùn)行(利用exec)一個shell進(jìn)程,shell進(jìn)程真實(shí)身份被設(shè)置成為該用戶的身份。由于此后fork此shell進(jìn)程的子進(jìn)程都會繼承真實(shí)身份,所以該真實(shí)身份會持續(xù)下去,直到我們登出并以其他身份再次登錄(當(dāng)我們使用su成為root的時候,實(shí)際上就是以root身份再次登錄,此后真實(shí)身份成為root)。
最小權(quán)限原則
每個進(jìn)程為什么不簡單地只維護(hù)真實(shí)身份,卻選擇費(fèi)盡麻煩地去維護(hù)有效身份和存儲身份呢?這牽涉到Linux的“最小特權(quán)”(least priviledge)的原則。Linux通常希望進(jìn)程只擁有足夠完成其工作的特權(quán),而不希望賦予更多的特權(quán)給它。從設(shè)計上來說,最簡單的是賦予每個進(jìn)程以super user的特權(quán),這樣進(jìn)程就可以想做什么做什么。然而,這對于系統(tǒng)來說是一個巨大的安全漏洞,特別是在多用戶環(huán)境下,如果每個用戶都享有無限制的特權(quán),就很容易破壞其他用戶的文件或者系統(tǒng)本身?!白钚√貦?quán)”就是收縮進(jìn)程所享有的特權(quán),以防進(jìn)程濫用特權(quán)。
然而,進(jìn)程的不同階段可能需要不同的特權(quán)。比如一個進(jìn)程最開始的有效身份是真實(shí)身份,但運(yùn)行到中間的時候,需要以其他的用戶身份讀入某些配置文件,然后再進(jìn)行其他的操作。為了防止其他的用戶身份被濫用,我們需要在操作之前,讓進(jìn)程的有效身份變更回來成為真實(shí)身份。這樣,進(jìn)程需要在兩個身份之間變化。
存儲身份就是真實(shí)身份之外的另一個身份。當(dāng)我們將一個程序文件執(zhí)行成為進(jìn)程的時候,該程序文件的擁有者(owner)和擁有組(owner group)可以被,存儲成為進(jìn)程的存儲身份。在隨后進(jìn)程的運(yùn)行過程中,進(jìn)程就將可以選擇將真實(shí)身份或者存儲身份復(fù)制到有效身份,以擁有真實(shí)身份或者存儲身份的權(quán)限。并不是所有的程序文件在執(zhí)行的過程都設(shè)置存儲身份的。需要這么做的程序文件會在其九位(bit)權(quán)限的執(zhí)行位的x改為s。這時,這一位(bit)叫做set UID bit或者set GID bit。
$ls -l /usr/bin/uuidd
-rwsr-sr-x 1 libuuid libuuidMar/usr/in/uuidd
當(dāng)我以root(UID), root(GID)的真實(shí)身份運(yùn)行這個程序的時候,由于擁有者(owner)有s位的設(shè)定,所以saved UID被設(shè)置成為libuuid,saved GID被設(shè)置成為libuuid。這樣,uuidd的進(jìn)程就可以在兩個身份之間切換。
我們通常使用chmod來修改set-UID bit和set-GID bit:
$chmod 4700 file
我們看到,這里的chmod后面不再只是三位的數(shù)字。最前面一位用于處理set-UID bit/set-GID bit,它可以被設(shè)置成為4/2/1以及或者上面數(shù)字的和。4表示為set UID bit, 2表示為set GID bit,1表示為sticky bit (暫時不介紹)。必須要先有x位的基礎(chǔ)上,才能設(shè)置s位。
linux 進(jìn)程權(quán)限怎么看的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux 進(jìn)程權(quán)限怎么看,如何查看Linux進(jìn)程權(quán)限?,linux中的 代表什么權(quán)限的信息別忘了在本站進(jìn)行查找喔。
成都網(wǎng)站設(shè)計制作選創(chuàng)新互聯(lián),專業(yè)網(wǎng)站建設(shè)公司。
成都創(chuàng)新互聯(lián)10余年專注成都高端網(wǎng)站建設(shè)定制開發(fā)服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)站設(shè)計服務(wù);成都創(chuàng)新互聯(lián)服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),小程序開發(fā),營銷網(wǎng)站建設(shè),網(wǎng)站改版,服務(wù)器托管租用等互聯(lián)網(wǎng)服務(wù)。
分享名稱:如何查看Linux進(jìn)程權(quán)限? (linux 進(jìn)程權(quán)限怎么看)
網(wǎng)頁網(wǎng)址:http://m.5511xx.com/article/cdihihe.html


咨詢
建站咨詢
