這兩個檔案可以說是linux系統中最重要的檔案之一。如果沒有這兩個檔案或者這兩個檔案出問題,則你是無法正常登入linux系統的。
/etc/passwd由』:』分割成7個字段,每個欄位的具體含義是:
1)使用者名稱(如第一行中的root就是使用者名稱),代表使用者賬號的字串。使用者名稱字元可以是大小寫字母、數字、減號(不能出現在首位)、點以及下劃線,其他字元不合法。雖然使用者名稱中可以出現點,但不建議使用,尤其是首位為點時,另外減號也不建議使用,因為容易造成混淆。
2)存放的就是該賬號的口令,為什麼是』x』呢?早期的unix系統口令確實是存放在這裡,但基於安全因素,後來就將其存放到/etc/shadow中了,在這裡只用乙個』x』代替。
3)這個數字代表使用者標識號,也叫做uid。系統識別使用者身份就是通過這個數字來的,0就是root,也就是說你可以修改test使用者的uid為0,那麼系統會認為root和test為同乙個賬戶。通常uid的取值範圍是0~65535,0是超級使用者(root)的標識號,1~499由系統保留,作為管理賬號,普通使用者的標識號從500開始,如果我們自定義建立乙個普通使用者,你會看到該賬戶的標識號是大於或等於500的。
4)表示組標識號,也叫做gid。這個字段對應著/etc/group 中的一條記錄,其實/etc/group和/etc/passwd基本上類似。
5)注釋說明,該欄位沒有實際意義,通常記錄該使用者的一些屬性,例如姓名、**、位址等等。不過,當你使用finger的功能時就會顯示這些資訊的(稍後做介紹)。
6)使用者的家目錄,當使用者登入時就處在這個目錄下。root的家目錄是/root,普通使用者的家目錄則為/home/username,這個欄位是可以自定義的,比如你建立乙個普通使用者test1,要想讓test1的家目錄在/data目錄下,只要修改/etc/passwd檔案中test1那行中的該字段為/data即可。
7)shell,使用者登入後要啟動乙個程序,用來將使用者下達的指令傳給核心,這就是shell。linux的shell有很多種sh, csh, ksh, tcsh, bash等,而redhat/centos的shell就是bash。檢視/etc/passwd檔案,該字段中除了/bin/bash外還有/sbin/nologin比較多,它表示不允許該賬號登入。如果你想建立乙個賬號不讓他登入,那麼就可以把該字段改成/sbin/nologin,預設是/bin/bash。
再來看看/etc/shadow這個檔案,和/etc/passwd類似,用」:」分割成9個字段。
1)使用者名稱,跟/etc/passwd對應。
2)使用者密碼,這個才是該賬號的真正的密碼,不過這個密碼已經加密過了,但是有些黑客還是能夠解密的。所以為了安全,該檔案屬性設定為600,只允許root讀寫。
3)上次更改密碼的日期,這個數字是這樣計算得來的,距離2023年1月1日到上次更改密碼的日期,例如上次更改密碼的日期為2023年1月1日,則這個值就是365*(2012-1970)+1=15331。
4)要過多少天才可以更改密碼,預設是0,即不限制。
5)密碼多少天後到期。即在多少天內必須更改密碼,例如這裡設定成30,則30天內必須更改一次密碼,否則將不能登入系統,預設是99999,可以理解為永遠不需要改。
6)密碼到期前的警告期限,若這個值設定成7,則表示當7天後密碼過期時,系統就發出警告告訴使用者,提醒使用者他的密碼將在7天後到期。
7)賬號失效期限。你可以這樣理解,如果設定這個值為3,則表示:密碼已經到期,然而使用者並沒有在到期前修改密碼,那麼再過3天,則這個賬號就失效了,即鎖定了。
8)賬號的生命週期,跟第三段一樣,是按距離2023年1月1日多少天算的。它表示的含義是,賬號在這個日期前可以使用,到期後賬號作廢。
9)作為保留用的,沒有什麼意義。
a. 新增乙個組 groupadd [-g gid] groupname
不加-g 則按照系統預設的gid建立組,跟使用者一樣,gid也是從500開始的
-g選項可以自定義gid
b. 刪除組 gropudel groupname
沒有特殊選項。
c. 增加使用者 useradd [-u uid] [-g gid] [-d home] [-m] [-s]
-u 自定義uid
-g 使其屬於已經存在的某個gid
-d 自定義使用者的家目錄
-m 不建立家目錄
-s 自定義shell
你會發現,建立test11時,加上了-m選項後,在/etc/passwd檔案中test11那行的第六字段依然有/home/test11,可是ls檢視該目錄時,會提示該目錄不存在。
-m選項的作用就是不建立使用者的家目錄。
-d. 刪除使用者 userdel [-r] username
-r 選項的作用是刪除使用者時,連同使用者的家目錄一起刪除。
前面內容中提到了findger,即在/etc/passwd檔案中的第5個字段中所顯示的資訊,那麼如何去設定這個資訊呢?
就是chfn這個命令了。修改完後,就會在/etc/passwd檔案中的test的那一行第五個欄位中看到相關資訊了,預設是空的。
等建立完賬戶後,預設是沒有設定密碼的,雖然沒有密碼,但該賬戶同樣登入不了系統。只有設定好密碼後方可登入系統。
passwd 後面不跟使用者名稱則是更改當前使用者的密碼,當前使用者為root,所以此時修改的是root的密碼,後面跟test則修改的是test的密碼。
linux系統中,有時候普通使用者有些事情是不能做的,除非是root使用者才能做到。這時就需要臨時切換到root身份來做事了。
用xiaoyao賬號登入linux系統,然後使用su - 就可以切換成root身份,前提是知道root的密碼。
你可以使用echo $logname來檢視當前登入的使用者名稱
su 的語法為: su [-] username
後面可以跟」-」也可以不跟,普通使用者su不加username時就是切換到root使用者,當然root使用者同樣可以su到普通使用者。
加」-「後會連同使用者的環境變數一起切換過來。su xiaoyao 後雖然切換到了xiaoyao使用者,但是當前目錄還是切換前的/root目錄,然後當用su - xiaoyao時切換使用者後則到了xiaoyao的家目錄/home/xiaoyao。當用root切換普通使用者時,是不需要輸入密碼的。這也體現了root使用者至高無上的權利。
用su是可以切換使用者身份,如果每個普通使用者都能切換到root身份,如果某個使用者不小心洩漏了root的密碼,那豈不是系統非常的不安全?沒有錯,為了改進這個問題,產生了sudo這個命令。使用sudo執行乙個root才能執行的命令是可以辦到的,但是需要輸入密碼,這個密碼並不是root的密碼而是使用者自己的密碼。預設只有root使用者能使用sudo命令,普通使用者想要使用sudo,是需要root預先設定的,即,使用visudo命令去編輯相關的配置檔案/etc/sudoers。如果沒有visudo這個命令,請使用」 yum install -y sudo」安裝。
預設root能夠sudo是因為這個檔案中有一行」 root all=(all) all」 在該行下面加入」 xiaoyao all=(all) all」就可以讓xiaoyao使用者擁有了sudo的權利。如果每增加一使用者就設定一行,這樣太麻煩了。所以你可以這樣設定,把這一行前面的」#」去掉,讓這一行生效。
2020 3 6Linux系統使用者與使用者組管理
認識 etc passwd和 etc shadow etc passwd檔案中 head前面的符號 稱為管道符,作用是把前面的命令的輸出再輸入給後面的命令。etc passwd由 分割成7個字段,如 root x 0 0 root root bin bash裡分別表示 使用者 密碼 uid gid ...
Linux學習總結(十六)系統使用者及使用者組管理
先來認識兩個檔案 我們列印出首尾三行,來了解下 每行由 分割為7段,每段含義為 第一段 使用者名稱,比如root 使用者,普通使用者test,lv,test1 第二段 早期存放賬戶登入密碼,由於安全因素,現在存放到 etc shadow中了,現在用x代替 第三段 uid,使用者表示號,系統通過該數字...
Linux 之 使用者 使用者組以及許可權
由於linux是乙個多人多任務的系統,因此經常會出現同一臺機器同時有多個人進行操作,為了考慮每個人的隱私權以及每個人喜好的工作環境,所以檔案的許可權歸屬就至關重要。為了保障系統的安全性和檔案的私隱性,乙個檔案針對不同許可權的賬戶有著不同的許可權,如下圖 如圖所示,檔案許可權是由乙個字串所表示,其所代...