使用者、組以及相關檔案說明

來源:互聯網
上載者:User

標籤:uid gid /etc/passwd /etc/shadow /etc/group /etc/gshadow

使用者分類:

管理員:root使用者,UID為0

系統使用者:UID範圍1-499

一般使用者:UID範圍:500-60000


組分類:

基本組或私人組:建立使用者時,如果沒有為其指定所屬的組,則系統預設會建立一個與使用者名稱同名的組。

附屬組:預設組以外的其他組。


當一個使用者執行程式的時候,系統會判斷目前使用者有沒有許可權執行這個程式,如果沒有許可權執行,則啟動不了該程式。如果有許可權執行,則執行後該程式會產生一個或多個進程,該進程的許可權就是執行該程式的使用者的許可權,因此進程的屬主和屬組就是該使用者的屬主和屬組。當該進程訪問一個對象的時候,會判斷該進程的屬主與屬組是否與要訪問的對象的屬主和屬組一樣,如果屬主一樣,則具有要訪問對象的屬主的許可權,如果屬組相同,則具有要訪問對象的屬組的許可權,如果都相同,則同時具有該許可權,如果都不相同,則具有Others的許可權。


樣本:

程式:/bin/ls

程式的許可權:-rwxr-xr-x 1 root root 117024 Apr 17  2012 /bin/ls

使用者:tom 

組:tom

對象:drw-r--r-- 1 root root      0 Jun 30 21:59 a123


當使用者tom想執行/bin/ls這個程式時,系統會判斷tom是否有許可權執行/bin/ls,而ls這個程式的屬主和屬組都是root,而tom使用者的屬主和屬組都是tom,因此當tom執行ls時,就會具有others的許可權,而ls這個程式的others的許可權是rx,因此tom可以執行ls,執行後會產生一個進程,該ls進程的屬主和屬組就是tom,當tom使用ls訪問對象a123時,要和對象的屬組和屬主進行比較,因此對於a123來說,只能查看ls列出a123目錄裡面的檔案,不能使用ls -l列出該目錄下的檔案或目錄的詳細資料。


1. /etc/passwd檔案格式說明:

格式:

account:password:UID:GID:GECOS:directory:shell

各個欄位的說明:

account:使用者的名稱。

password:使用者的加密密碼,可以是*或x。如果是x,則是一個預留位置,真正的密碼位於/etc/shadow這個影子檔案中。

UID:使用者的UID

GID:使用者的基本組的GID。附屬組的資訊存放在/etc/group裡面。

GECOS:使用者的注釋資訊,如使用者的全名,使用者的家庭住址等等。

directory:使用者的家目錄。

shell:使用者在登入系統的時候所啟動並執行shell。如果為空白,則為/bin/sh即/bin/bash。如果設定為不存在的shell,則使用者無法通過login登入系統。當設定為/sbin/nologin時,使用者也無法登入系統,因此系統使用者的預設shell都是/sbin/nologin。


查看系統中的合法shell:

cat /etc/shells或者是chsh -l

樣本:

[[email protected] ~]# cat /etc/shells /bin/sh/bin/bash/sbin/nologin/bin/tcsh/bin/csh[[email protected] ~]# chsh -l/bin/sh/bin/bash/sbin/nologin/bin/tcsh/bin/csh[[email protected] ~]#


2. /etc/shadow檔案說明

shadow檔案存放是系統中的賬戶的密碼資訊以及賬戶的老化資訊。該檔案採用冒號(:)作為分隔字元,分為9個欄位,格式如下:

login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field

樣本:

[[email protected] tmp]# grep ‘frame‘ /etc/shadowframe:$6$raWrlosK$jwlpWIiYAfMLOreKEXsMwvbwieNsG.vGl72KYf.stzQCQwMDayhtCTl/B.Apjn/UlyLBTZcbvmjNOL1vhqMTd0:16247:0:99999:7:::[[email protected] tmp]#

login name:登入名稱,存在於系統中的有效使用者名稱。在上述樣本中,登入名稱為frame。

encrypted password:在加密密碼裡面,分為如下的幾個部分,

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/38/1B/wKiom1OzTyiifNlgAABznXyku_s276.jpg" title="a.jpg" alt="wKiom1OzTyiifNlgAABznXyku_s276.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/38/1B/wKiom1OzT42iC7OxAAB4G0H93nI742.jpg" title="a.jpg" alt="wKiom1OzT42iC7OxAAB4G0H93nI742.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/38/1B/wKioL1OzT5KQLnQUAACLhQ2u-5k081.jpg" title="a.jpg" alt="wKioL1OzT5KQLnQUAACLhQ2u-5k081.jpg" />

該部分的格式如下:

$id$salt$encrypted
              ID  | Method              ---------------------------------------------------------              1   | MD5              2a  | Blowfish (not in mainline glibc; added in some                  | Linux distributions)              5   | SHA-256 (since glibc 2.7)              6   | SHA-512 (since glibc 2.7)
encrypted的長度:       MD5     | 22 characters       SHA-256 | 43 characters       SHA-512 | 86 characters

第一部分:表示的是採用的加密方式。如果$後是1,則表示的是使用MD5方式加密的,如果是2,則表示

的是使用的Blowfish密碼編譯演算法,如果是5,則表示的使用的SHA256密碼編譯演算法,如果是6,則使用的是

SHA512密碼編譯演算法

加密方法:對稱式加密和非對稱式加密。

    對稱式加密:加密和解密使用相同的密碼。

    非對稱式加密:也稱為公開金鑰加密。在非對稱式加密中,每個密碼都是成對出現的,一個為私密金鑰(private key或者是secret key),一個為公開金鑰(public key),公開金鑰加密,私密金鑰解密。

    單向加密:也成為散列加密。可以由資料取得密文,反之不能以密文取得資料。提取資料特徵碼,每一個資料的特徵碼都是唯一的,可以用於資料校正,校正資料是否遭到破壞。計算一個檔案的特徵碼,可以用md5sum。

樣本:

[[email protected] tmp]# md5sum issue bbee69205bff2d11233b02a8f80ba4fd  issue[[email protected] tmp]# echo a >> issue [[email protected] tmp]# md5sum issue f80ac7948edb06fa27b1a0ddbe09d3af  issue[[email protected] tmp]# 說明:當往issue檔案中增加一個字元a時,重新計算其特徵碼時,所產生的結果差別很大,這個也就是單向加密的一個特徵,稱為雪崩效應。初始結果的微小改變可以引起結果的巨大差異。

常用的單向密碼編譯演算法有:MD5和SHA1。

MD5(Message Digest)為128位的定長輸出。

SHA1(Secure Hash Algorithm)為160位的定長輸出。

SHA256和SHA512:則表示為256和512位的密碼編譯演算法。

第二部分:稱為salt,為8位元組的字串,為隨機產生的。在計算密碼的時候,是把這部分也加進去計算的。如果salt和密碼都一樣,則加密出來的結果才一樣,如果僅僅是密碼一樣,而salt不一樣,則加密出來的結果也不一樣。

當使用者登入系統的時候,先將salt加進去,然後使用相同的演算法,對使用者輸入的密碼進行加密,然後和第三部分進行比較,判斷是否相同,相同則密碼一樣,否則不一樣。

第三部分:就是使用者的密碼。

在encrypted password中,如果是*,則表示該使用者不允許登入,如果是!則表示該使用者沒有密碼,NP也表示沒有密碼,即No Password,如果不想讓一個使用者登入系統,可以在該欄位的前面加上!!即可,!!表示的是該使用者被鎖定,LK也可以表示賬戶被鎖定(LocK)

date of last password change:上一次密碼修改的時間距離1970年1月1日的天數。如果該欄位為空白,則表示關閉密碼老化的特性。如果為0,則表示使用者下一次登入系統時,必須要修改密碼。

minimum password age:兩次修改密碼的最小時間間隔,密碼最短使用到期日。如果是0或空,則意味著可以隨時修改密碼。

maximum password age:密碼最長使用到期日。意味著該時間到期後,使用者必須要修改自己的密碼。使用者下次登入的時候,會詢問使用者是否要修改密碼。

password warning period:提前多少天警告使用者口令將到期。如果為0,則密碼即將到期時,不會提示使用者修改密碼。

password inactivity period:密碼到期後多少天,使用者依然可以使用該密碼登入,但是登入後系統會強制使用者修改密碼。如果該時間到期後使用者沒有修改密碼,則該密碼將失效。

account expiration date:賬戶到期時間,也是距離1970年1月1日起的天數。賬戶到期和密碼到期是不一樣的,賬戶到期意味著使用者不能使用該賬戶登入,密碼到期則意味著使用者不能使用該密碼登入。如果是空,則意味著該賬戶永遠不會到期.

reserved field:保留供將來使用。


3. /etc/group

格式:

group_name:passwd:GID:user_list

group_name:組名

passwd:組密碼

GID:組的GID

user_list:使用者列表,用逗號隔開。


樣本:

daemon:x:2:bin,daemon


4. /etc/gshadow

格式:

group name:encrypted password:administrators:members

group name:組名

encrypted passwd:加密後的組密碼

administrators:組管理員

members:群組成員列表,多個群組成員之間用逗號分隔。

樣本:

mail:::mail,postfix


本文出自 “HeZhang” 部落格,請務必保留此出處http://hezhang.blog.51cto.com/1347601/1433335

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.