一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

Linux用戶(hù)與“最小權限”原則

時(shí)間:2024-10-02 00:00:28 Linux認證 我要投稿
  • 相關(guān)推薦

Linux用戶(hù)與“最小權限”原則

  Linux的用戶(hù)在登錄(login)之后,就帶有一個(gè)用戶(hù)身份(user ID, UID)和一個(gè)組身份(group ID, GID)。在Linux文件管理背景知識中,我們又看到,每個(gè)文件又有九位的權限說(shuō)明,用來(lái)指明該文件允許哪些用戶(hù)執行哪些操作(讀、寫(xiě)或者執行)。Linux用戶(hù)與“最小權限”原則關(guān)系如何呢?下面跟yjbys小編一起來(lái)學(xué)習一下吧!

  一般來(lái)說(shuō),Linux的用戶(hù)信息保存在/etc/passwd中,組信息保存在/etc/group中,文件的每一行代表一個(gè)用戶(hù)/組。早期的Linux將密碼以名碼的形式保存在/etc/passwd中,而現在則多以暗碼(也就是加密之后的形式)的形式保存在/etc/shadow中。將密碼存儲在/etc/shadow中提高了密碼的安全性,因為/etc/passwd允許所有人查看,而/etc/shadow只允許root用戶(hù)查看。

  進(jìn)程權限

  但是,在Linux中,用戶(hù)的指令是在進(jìn)程的范圍內進(jìn)行的。當我們向對某個(gè)文件進(jìn)行操作的時(shí)候,我們需要在進(jìn)程中運行一個(gè)程序,在進(jìn)程中對文件打開(kāi),并進(jìn)行讀、寫(xiě)或者執行的操作。因此,我們需要將用戶(hù)的權限傳遞給進(jìn)程,以便進(jìn)程真正去執行操作。例如我們有一個(gè)文件a.txt, 文件中為一個(gè)字符串:

  Hello world!

  我以用戶(hù)Vamei的身份登錄,并在shell中運行如下命令:

  $cat a.txt

  整個(gè)運行過(guò)程以及文件讀取如下:

  我們可以看到,整個(gè)過(guò)程中我們會(huì )有兩個(gè)進(jìn)程,一個(gè)是shell本身(2256),一個(gè)是shell復制自身,再運行/bin/cat (9913)。圖中的fork, exec, PID可參看Linux進(jìn)程基礎。第二個(gè)進(jìn)程總共對文件系統進(jìn)行了兩次操作,一次是執行(x)文件/bin/cat,另外一次是讀取(r)文件a.txt。使用$ls -l 查看這兩個(gè)文件的權限:

  $ls -l /bin/cat

  -rwxr-xr-x 1 root root 46764 Apr 1 2012 /bin/cat

  $ls -l a.txt

  -rw-rw-r-- 1 Vamei Vamei 14 Oct 7 09:14 a.txt

  從上面可以看到(參考Linux文件管理背景知識),/bin/cat讓所有用戶(hù)都享有執行的權利,而Vamei作為a.txt的擁有者,對a.txt享有讀取的權利。

  讓我們進(jìn)入更多的細節 (The devil is in the details)。在進(jìn)行這兩次操作的時(shí)候,盡管用戶(hù)Vamei擁有相應的權限,但我們發(fā)現,真正做工作的是進(jìn)程9913。我們要讓這個(gè)進(jìn)程得到相應的權限。實(shí)際上,每個(gè)進(jìn)程會(huì )維護有如下6個(gè)ID:

  真實(shí)身份: real UID, real GID

  有效身份: effective UID, effective GID

  存儲身份:saved UID, saved GID

  其中,真實(shí)身份是我們登錄使用的身份,有效身份是當該進(jìn)程真正去操作文件時(shí)所檢查的身份,存儲身份較為特殊,我們等一下再深入。當進(jìn)程fork的時(shí)候,真實(shí)身份和有效身份都會(huì )復制給子進(jìn)程。大部分情況下,真實(shí)身份和有效身份都相同。當Linux完成開(kāi)機啟動(dòng)之后,init進(jìn)程會(huì )執行一個(gè)login的子進(jìn)程。我們將用戶(hù)名和密碼傳遞給login子進(jìn)程。login在查詢(xún)了/etc/passwd和/etc/shadow,并確定了其合法性之后,運行(利用exec)一個(gè)shell進(jìn)程,shell進(jìn)程真實(shí)身份被設置成為該用戶(hù)的身份。由于此后fork此shell進(jìn)程的子進(jìn)程都會(huì )繼承真實(shí)身份,所以該真實(shí)身份會(huì )持續下去,直到我們登出并以其他身份再次登錄(當我們使用su成為root的時(shí)候,實(shí)際上就是以root身份再次登錄,此后真實(shí)身份成為root)。

  最小權限原則

  每個(gè)進(jìn)程為什么不簡(jiǎn)單地只維護真實(shí)身份,卻選擇費盡麻煩地去維護有效身份和存儲身份呢?這牽涉到Linux的“最小特權”(least priviledge)的原則。Linux通常希望進(jìn)程只擁有足夠完成其工作的特權,而不希望賦予更多的特權給它。從設計上來(lái)說(shuō),最簡(jiǎn)單的是賦予每個(gè)進(jìn)程以super user的特權,這樣進(jìn)程就可以想做什么做什么。然而,這對于系統來(lái)說(shuō)是一個(gè)巨大的安全漏洞,特別是在多用戶(hù)環(huán)境下,如果每個(gè)用戶(hù)都享有無(wú)限制的特權,就很容易破壞其他用戶(hù)的文件或者系統本身。“最小特權”就是收縮進(jìn)程所享有的特權,以防進(jìn)程濫用特權。

  然而,進(jìn)程的不同階段可能需要不同的特權。比如一個(gè)進(jìn)程最開(kāi)始的有效身份是真實(shí)身份,但運行到中間的時(shí)候,需要以其他的用戶(hù)身份讀入某些配置文件,然后再進(jìn)行其他的操作。為了防止其他的用戶(hù)身份被濫用,我們需要在操作之前,讓進(jìn)程的有效身份變更回來(lái)成為真實(shí)身份。這樣,進(jìn)程需要在兩個(gè)身份之間變化。

  存儲身份就是真實(shí)身份之外的另一個(gè)身份。當我們將一個(gè)程序文件執行成為進(jìn)程的時(shí)候,該程序文件的擁有者(owner)和擁有組(owner group)可以被,存儲成為進(jìn)程的存儲身份。在隨后進(jìn)程的運行過(guò)程中,進(jìn)程就將可以選擇將真實(shí)身份或者存儲身份復制到有效身份,以擁有真實(shí)身份或者存儲身份的權限。并不是所有的程序文件在執行的過(guò)程都設置存儲身份的。需要這么做的程序文件會(huì )在其九位(bit)權限的執行位的x改為s。這時(shí),這一位(bit)叫做set UID bit或者set GID bit。

  $ls -l /usr/bin/uuidd

  -rwsr-sr-x 1 libuuid libuuid 17976 Mar 30 2012 /usr/sbin/uuidd

  當我以root(UID), root(GID)的真實(shí)身份運行這個(gè)程序的時(shí)候,由于擁有者(owner)有s位的設定,所以saved UID被設置成為libuuid,saved GID被設置成為libuuid。這樣,uuidd的進(jìn)程就可以在兩個(gè)身份之間切換。

  我們通常使用chmod來(lái)修改set-UID bit和set-GID bit:

  $chmod 4700 file

  我們看到,這里的chmod后面不再只是三位的數字。最前面一位用于處理set-UID bit/set-GID bit,它可以被設置成為4/2/1以及或者上面數字的和。4表示為set UID bit, 2表示為set GID bit,1表示為sticky bit (暫時(shí)不介紹)。必須要先有x位的基礎上,才能設置s位。

  作為一個(gè)Linux用戶(hù)來(lái)說(shuō),我們并不需要特別關(guān)心上面的機制。但是,當我們去編寫(xiě)一個(gè)Linux應用程序的時(shí)候,就要注意在程序中實(shí)現以上切換(有必要的前提下),以便讓我們的程序符合"最小權限"的原則,不給系統留下可能的安全隱患。

【Linux用戶(hù)與“最小權限”原則】相關(guān)文章:

Linux文件權限詳解06-27

Linux權限管理基本方法10-24

Linux權限管理基本知識大全09-03

linux如何給文件或目錄添加apache權限11-03

金蝶KIS軟件用戶(hù)管理及權限授權09-23

Linux用戶(hù)/文件系統管理詳解05-10

2016年Linux認證基礎知識:php做權限管理09-20

unix增加用戶(hù)和切換用戶(hù)04-12

RBAC打造通用Web權限08-19

如何開(kāi)通淘寶直播權限07-28

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看