用戶與用戶組相關的配置文件與命令總結

Linux 中用戶與用戶組相關的配置文件與命令總結


用戶與用戶組

Linux是一種多用戶(Multi-Users)、多任務(Multi-tasks)的操作系統。為了保護每一位用戶的個人數據,系統需要將每一位用戶的數據進行隔離存放。而用戶名就是計算機系統為了區分每一位用戶的標識符,這個標識符對我們人類來說就是 用戶名(USERNAME)。為了便于實現權限的分配與管理,我們將多個用戶劃分到一個容器之中,盛放這些用戶的容器我們稱之為用戶組(GROUP).

用戶分為:管理員用戶(默認為root)、系統用戶、登錄用戶。 
用戶組分為:管理員組、系統用戶組、登錄用戶組。


UID、GID

由于計算機只能識別二進制的0和1em21.gif,計算機并不能對用戶名與用戶組名稱進行直接的區分,因此在計算機系統中每個用戶與用戶組都有其單獨的數字ID進行標識。

    標識用戶的ID號我們稱之為UID(UserID) 
    標識用戶組的ID號我們稱之為GID(GroupID)

CentOS系統默認使用16位二進制數字來標識UID和GID=0-65536(默認使用前60000) 
CentOS6和7中不同ID范圍:

用戶類型 CentOS 6中UID CentOS 7中UID CentOS 6 GID CentOS 7 GID
管理員用戶 0 0 0 0
系統用戶 1-499 1-999 1-499 1-999
登錄用戶 500-60000 1000-60000 500-60000 1000-60000

名稱解析與解析庫(passwd、group、shadow、gshadow)

系統對用戶名、用戶組名與UID、GID一一對應進行轉換的過程稱之為名稱解析。而存放這些信息的文件稱之為解析庫,包含用戶信息庫/etc/passwd、用戶密碼信息/etc/shadow、組的信息庫/etc/group、組的密碼信息/etc/gshadow。下面我們來一一講解四個文件的內容。

用戶信息庫/etc/passwd

使用whatis passwd 命令查看關于passwd的幫助文件。

使用cat /etc/passwd命令查看passwd文件內容

1.root@centos7 ~]# cat /etc/passwd
2.root:x:0:0:root:/root:/bin/bash
3.bin:x:1:1:bin:/bin:/sbin/nologin
4.daemon:x:2:2:daemon:/sbin:/sbin/nologin
5.adm:x:3:4:adm:/var/adm:/sbin/nologin
6.lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
7.sync:x:5:0:sync:/sbin:/bin/sync
8.shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
9.…………中間省略
10.wang:x:1000:1000:wangzhenzhong:/home/wang32:/bin/bash

這一大堆東西到底是什么呢?enter image description here為了能看懂我們使用whatis passwd命令來找下passwd的幫助文件。

1.[root@centos7 ~]# whatis passwd
2.passwd (1)           - update user's authentication tokens
3.sslpasswd (1ssl)     - compute password hashes
4.passwd (5)           - password file

使用man 5 passwd 命令查看 password file 的幫助信息,可以看到passwd的文件每一行代表了一個用戶名,每一行是由冒號分割的7個字段組成的。

1.Each line of the file describes a single user, and contains seven colon-separated fields:
2.
3.    name:password:UID:GID:GECOS:directory:shell
4.
5.……實在太多了顯示不了下面會一一解釋每個字符段的意義。

參考上面man命令給出的格式我們來看下psswd中的信息。

1.wang:x:1000:1000:wangzhenzhong:/home/wang32:/bin/bash

從左到右依次是

name: 用戶名
password 加密的密碼或者是占位符X(實際存儲位置/etc/shadow)pwconv命令切換
UID 用戶ID
GID 用戶所屬的主組ID
GECOS 用戶的注釋信息
directory 用戶的家目錄
shell 用戶的默認shell類型

用戶密碼信息/etc/shadow

同樣的步驟先看看文件中有什么,使用cat /etc/shadow

1.[root@centos7 ~]# cat /etc/shadow
2.root:\$\6\$4x9rjLZ2$pGwL/pzn47qOnArRppfN0k..0r.VjHiYXhLgI/Oe3pNTqJU72HGNKIX3f9/P17a/tS07WzvCjGknJFG0veIhJ1:17096:0:99999:7:::
3.bin:*:16659:0:99999:7:::
4.…………中間省略
5.postfix:!!:17095::::::
6.ntp:!!:17095::::::
7.tcpdump:!!:17095::::::
8.wang:$
6$mGDN3cm6$xgfX5vJuPKHsNfuWY8zKGNI9QFbwEcziuhf.a/hgAPaBLdbIkjlnKdEpVSMJDIJ9amuaDt12WmFdg6qQKeyjh0:17097:0:99999:7:::

同樣看不懂,同樣使用使用whatis shadow命令查找幫助文件。

1.[root@centos7 ~]# whatis shadow
2.shadow (3)           - encrypted password file routines
3.shadow (5)           - shadowed password file

使用man5 shadow命令查看shadow的文件格式。

1.DESCRIPTION
2.       shadow is a file which contains the password information for the system's accounts and optional aging information.
3.
4.       This file must not be readable by regular users if password security is to be maintained.
5.
6.       Each line of this file contains 9 fields, separated by colons (“:”), in the following order:
7.        login name
8.        encrypted password
9.        date of last password change
10.        minimum password age
11.        maximum password age
12.        password warning period
13.        password inactivity period
14.        account expiration date
15.        reserved field

我們得知shadow文件中包含了系統賬戶的密碼信息,且改文件不可被普通用戶讀取,文件的每一行包含9個字段,每個字段之間以‘:’分割。我們參考cat /etc/shadow命令獲取的結果來一一解釋每個字段的意義。

1.wang:$6$mGDN3cm6$xgfX5vJuPKHsNfuWY8zKGNI9QFbwEcziuhf.a/hgAPaBLdbIkjlnKdEpVSMJDIJ9amuaDt12WmFdg6qQKeyjh0:17097:0:99999:7:::

由左向右依次是:

login name 登錄用戶名
encrypted password 加密以后的密碼,第一個$后的數字代表加密方式,前面有!表示用戶處于鎖定狀態無法登陸
date of last password change 最后一次更改密碼的日期,顯示為自1970年1月1日到最后一次修改密碼的天數
minimum password age 密碼的最小使用期限,為0或空字符時表示無最小使用期限
maximum password age 密碼打使用期限,到期后要修改密碼,為空時表示密碼永久有效
password warning period 密碼到最大使用期限之前多久開始提醒修改密碼,為0或空字符時為不提醒。
password inactivity period 密碼到期后至賬戶名被鎖定的期限,為0或者空字符時表示不鎖定。
account expiration date 登錄賬戶的有效期,為空字段表示永久不會過期。
reserved field 保留字符以備將來使用

組的信息庫/etc/group

使用cat /ext/group 查看group的文件內容

1.[root@centos7 ~]# cat /etc/group
2.root:x:0:
3.bin:x:1:
4.daemon:x:2:
5.…………省略
6.stapdev:x:158:
7.screen:x:84:
8.distro:x:5000:
9.peguin:x:5001:
10.wang:x:1000:

使用whatis group 查找group文檔的man幫助信息。

1.[root@centos7 ~]# whatis group
2.group (5)            - user group file

由于group只有一個man幫助文檔直接只是用man group命令查看文檔格式。 
group文件中存儲的是用戶組的信息,每一行有四個字段組成以”:”分割;

1.NAME
2.       group - user group file
3.
4.DESCRIPTION
5.       The  /etc/group  file  is a text file that defines the groups on the system.  There is one entry per line, with the
6.       following format:
7.
8.group_name:password:GID:user_list

對比上面cat /etc/gropu 的結果我們來一一介紹每個字段的意思:

1.distro:x:5000:
2.peguin:x:5001:
3.wang:x:1000:
group_name 組名
password 加密的密碼或者是占位符X(實際存儲位置/etc/gshadow)
GID 組ID
user_list 以此組為附加組的用戶列表

組的密碼信息/etc/gshadow

還是先使用cat /etc/gshadow命令來查看gshadow文件的內容

1.[root@station25 ~]# cat /etc/gshadow
2.root:::
3.bin:::
4.daemon:::
5.sys:::
6.adm:::
7.………………繼續省略
8.distro:!::
9.peguin:!::
10.wang:!::

直接使用man gshadow命令查看幫助,得知gshadow是組密碼信息文件,每一行代表一個組,一行由4個字段組成每個字段用”:”分割。至于這次為什么不用whais group查看在使用man group查看幫助,然后貼出代碼的原因根本就不是我不小心刪除了又不想重新復制。enter image description here

group_name 組名
encrypted password 加密后的密碼此處是!或者是,用戶將無法使用密碼加入該組(本組用戶不受影響)
administrators 組管理員,有權利修改密碼和添加刪除組成員
members 組成員列表

用戶管理命令

useradd命令:創建用戶(adduser:/usr/sbin/adduser -> useradd)

useradd [options] LOGIN 
-u,–udi UDI:指定UID;UDI的最大最小范圍定義在/etc/login.defs; 
-g,–gid:指定基本組ID,此組要事先存在; 
-c,–coment COMMENT:指明注釋信息; 
-G,–[group1],[group2]…:指定用戶的附屬組; 
-d,–home HOME_DIR:指定用戶的家目錄;(復制/et/skel此目錄并重命名實現); 
-s,–shell:可用的所有shell列表存儲在/etc/shells文件中; 
-r,–system:創建系統用戶; 
-M:不創建用戶家目錄; 
-f,-inactive:-1密碼過期也不鎖定用戶; 
-N:不創建用戶的私有組做主組,使用users組做主組; 
顯示或更改默認設置: 
useradd -D 
useradd –D -s SHELL 
useradd –D –b BASE_DIR 
useradd –D –g GROUP 
修改的的結果保存與/etc/default/ussadd


usermod命令:修改用戶屬性

usermod [選項] login 
-u,–uid UID:修改用戶的ID 
-g,–gid GROUP:修改用戶所屬的基本組; 
-G,–groups:修改用戶的附加組,原來的附加組會被覆蓋; 
-a,–append:與-G共同使用,為用戶追加新的附加組 
-c,–coment COMMENT:修改注釋信息; 
-d,–home HOME_DIR:修改用戶的家目錄,用戶原有文件不會被轉移至新位置。 
-m,–move-home:只能與-d選項一同使用,用于將原來的家目錄移動為新家目錄; 
-l,–login NEW_LOGIN:修改用戶名; 
-s,–shell:修改用戶的默認SHELL 
-L,–lock:鎖定用戶密碼禁止用戶登錄,在用戶密碼串前增加! 
-u,–unlock:解鎖用戶的密碼;


userdel命令:刪除用戶

userdel [option] login 
-r:刪除用戶時移除用戶的家目錄;


su命令:switch user

登錄式切換:會通過重新讀取用戶的配置文件來重新初始化; 
su – USERNAME 
su -l USERNAME 
非登錄式切換:不會讀取目標用戶的配置文件進行初始化; 
su USERNAME 
-c ‘COMMAND’:不切換用戶僅以指定用戶的身份運行指定命令;


passwd命令:

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [–stdin] 
[username] 
1、passwd:修改自己的密碼; 
2、passwd USERNAME:修改指定用戶的密碼;(管理員有此權限) 
-l -u:鎖定和解鎖用戶; 
-d:刪除用戶密碼; 
-e date:過期期限,日期; 
-i days:非活動期限,天數; 
-n days:密碼最短使用期限; 
-x days:密碼的最長使用期限; 
-w days:警告期限; 
–stdin:從標準輸入獲取密碼,無需重復設置; 
echo “PASSWORD”|passwd –stdin USERNAME

用戶組管理命令

groupadd:創建組

命令格式:groupadd [option] group_name 
-g:GID 指定GID;默認是上一組的GID+1; 
-r:創建系統組;


groupmod命令:修改組

groupmod [option] group_name 
-g GID:修改GID 
-n new_name:修改組名


groupdel命令:刪除組

groupdel [option] group_name


gpasswd命令:更改組密碼

gpasswd [option] group 
-a USERNAME:向組中添加用戶; 
-d USERNAME:從組中移除用; 
-A USERNAME,USERNAME…:設置組管理員;


newgrp命令:臨時切換用戶的基本組 
newgrp [-] [group] 
-:會模擬用戶重新登錄以實現重新初始化工作環境; 
exit退出


chage命令:修改用戶密碼信息

-d, –lastday 
顯示最后一次修改密碼的日期;=0強制修改密碼; 
-E, –expiredate 
賬戶有效期;-1為永久 
-I, –inactive 
密碼到期后到鎖定賬號的間隔日期; 
-l, –list 
顯示US的密碼信息列表; 
-m, –mindays 
密碼最少有效期; 
-M, –maxdays 
密碼最大有效期; 
-W, –warndays 
在密碼過期前,收到提醒的天數;


id命令:顯示用戶的真實和有效ID

id [option] [login] 
-u:顯示UID 
-g:顯示基本組ID 
-G:顯示用戶所屬的所有組的ID 
-n:顯示名稱而非ID


原創文章,作者:M21-13-王振中,如若轉載,請注明出處:http://www.www58058.com/53750

(0)
M21-13-王振中M21-13-王振中
上一篇 2016-10-23
下一篇 2016-10-23

相關推薦

  • 馬哥教育網絡班21期+第14周課程練習

    iptables關鍵點 表:filter(過濾,防火墻);nat(網絡地址轉換);mangle(拆解報文,做出修改,封裝報文);raw(關閉nat表啟用的鏈接追蹤機制);上述是根據功能來區分的,寫規則要明白要實現的功能 鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 數據流向:流入PREROUTING–…

    Linux干貨 2016-08-26
  • N25第三周作業

    .列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登陸多次,則只顯示一次即可。 此題主要考察命令who,cut,sort以及管道的基本用法:who:列出當前已登陸的用戶名,登陸設備名,時間以及ip地址。 cut:    顧名思義就是截取之意, -d 指定要截取信息的分隔符,此處是以空格為分隔符,-f指定要截取的字段,此…

    Linux干貨 2016-12-20
  • Linux內核編譯過程詳解

    前言 Linux內核是Linux操作系統的核心,也是整個Linux功能體現的核心,就如同發動機在汽車中的重要性。內核主要功能包括進程管理、內存管理、文件管理、設備管理、網絡管理等。Linux內核是單內核設計,但卻采用了微內核的模塊化設計,支持內核線程以及動態裝載內核模塊的能力。 Linux作為一個自由軟件,在廣大愛好者的支持下,內核版本不斷更新。新的內核修訂…

    Linux干貨 2015-04-01
  • 馬哥教育網絡班22期第一周課程練習3-未聞花名

    man命令后面可以加一個數字參數,表示具體的范圍定位: 數字"1"表示用戶命令 數字"2"表示系統調用 數字"3"表示C語言庫函數 數字"4"表示設備或特殊文件 數字"5"表示文件格式和規則 數字"6"表示游戲及其他 數字"7&q…

    Linux干貨 2016-08-15
  • Linux的用戶,組及文件權限管理

    Linux用戶與組的創建,刪除,屬性修改,文件權限管理

    Linux干貨 2018-02-24
  • 文件權限

    小技巧 除root用戶外其他用戶將不能登錄 touch /etc/nologin 或touch /run/nologin echo “system is maintaining”>> /etc/nologin 文件屬性 文件的權限主要針對三類對象進行定義: owner: 屬主, u 修改文件的屬主: chown [OPTION]… […

    Linux干貨 2016-08-08
欧美性久久久久