1. 程式人生 > >Linux基礎命令五:賬號與使用者組

Linux基礎命令五:賬號與使用者組

1.UID與GID

UID與GID 的意義

UID:使用者ID。在/etc/passwd中定義
GID:使用者組ID。在/etc/group中定義

不要隨意修改UID與GID對應檔案中的內容,即/etc/passwd和/etc/group

1.建立一個新使用者
[[email protected] ~]# useradd xixi
[[email protected] ~]# ll -d /home/xixi
drwx------ 2 xixi xixi 4096 Nov 10 18:46 /home/xixi
[[email protected] ~]# id xixi
uid=500(xixi) gid=500(xixi) groups=500(xixi)
2.將xixi的UID修改為200看會發生什麼
[
[email protected]
~]# vim /etc/passwd 按i進入編輯模式,將下面這行修改 xixi:x:200:500::/home/xixi:/bin/bash #將這一行的第一個500改為200 修改完成後,按esc退出編輯模式,輸入:wq儲存退出 [[email protected] ~]# ll -d /home/xixi drwx------ 2 500 xixi 4096 Nov 10 18:46 /home/xixi ##此時,所屬使用者變成了500。是由於我們修改UID,導致500找不到對應賬戶,所以顯示數字 3.將UID改回500,否則有些程式將無法執行 [[email protected]
~]# vim /etc/passwd xixi:x:500:500::/home/xixi:/bin/bash [[email protected] ~]# ll -d /home/xixi drwx------ 2 xixi xixi 4096 Nov 10 18:46 /home/xixi

Linux對UID的限制

ID範圍 該ID使用者特性
0(系統管理員) 系統管理員。若想要其他使用者具有root的許可權,將這個賬號的UID改為0就可以了
1~499(系統賬號) 留給系統使用的ID。除了0以外的其他數字許可權上並沒有什麼不同,留前500只是習慣。系統賬號又分為兩種:1~99由distributions自行建立的;100 ~ 499若是使用者有系統賬號需求時,可以使用的
500~65535(可登入賬號) 給一般使用者使用,目前Linux核心(2.6.x)已經支援到2^32-1了

2./etc/passwd的檔案結構

  • 每一行代表一個賬號,有幾行則就有幾個賬戶。不要隨意刪除這些系統自帶的賬戶,因為裡面有很多賬號是系統正常執行必須要的。例如:bin,daemon,bin,nobody等
  • 檢視一下這個檔案的內容
    [[email protected] ~]# head -n 3 /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
  • 關於這一行每個欄位的意義 root:x :0:0:root:/root:/bin/bash
    root:     賬號。用來對應UID,如:root對應的UID為0。
    x:        密碼。這個檔案是所有程式都能讀取,為安全起見,將這個欄位的密碼資料放在了/etc/shadow中了,此處顯示x
    0:        UID。使用者ID,與/etc/passwd有關
    0:        GID。使用者組ID,與/etc/group有關。這個檔案結構與/etc/passwd差不多
    root:     使用者資訊說明列,沒有什麼重要用途,用來解釋賬號的意義。在提供finger功能時,這個欄位可以提供資訊
    /root:    這個使用者的主資料夾。其他使用者的家目錄預設為/home/使用者名稱
    /bin/bash:shell指令碼
    :          為分隔符

3. /etc/shadow的檔案結構

/etc/shadow的許可權設定。僅root可讀取,不要改動這個檔案的許可權

-rw------或-r-------

/etc/passwd的許可權設定

-rw-r--r-

檢視一下檔案的內容

[[email protected] ~]# head -n 3 /etc/shadow
root:$6$xz2hEpYX$hhta4lNdy6yPo5E8c/NIiNhlBv8zmP10YyibZXSQcau1JVV7z5HKjZvC//oREcYimNewA/1eWFIUN2q2BS4221:17842:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::

關於bin:*:15980:0:99999:7:::每一個欄位的意義

bin:      賬號。必須與/etc/passwd相同
*:       密碼。這個欄位內的資料才是真正的密碼,而且經過編碼加密。
15980:   最近改變密碼的日期。Linux計算日期是以1970年1月1日進行累加的,1971年1月1日為366
          若想知道某天的累積日期,可使用這個命令進行計算:ehco $ (($(date --date="2018/11/12" +%s)/86400+1
0:       密碼不可被更改的天數。為0表示隨時可以更改,若為3,則三天不能更改密碼
999999:  密碼需要重新更改的天數。為999999(273年)代表沒有更改的強制要求
7:       密碼需要更改期限前的警告天數
第七個欄位:密碼過期後的賬號寬限時間(密碼失效)
第八個欄位:賬號失效日期,在 規定時間後,將無法再使用該賬號
第九個欄位:保留