1. 程式人生 > >跟用戶、用戶組相關的4個文件

跟用戶、用戶組相關的4個文件

網絡 linux

  • 4個文件跟用戶、組密切相關:

(本文以centos7為實驗版本)

存放用戶信息的文件:

/etc/passwd    ##存放用戶名稱、shell等信息
/etc/shadow    ##存放用戶密碼等信息

存放用戶組信息的文件:

/etc/group  ##存放組名等信息
/etc/gshadow  ##存放組密碼等信息

下面我們一一介紹這四個文件


  • /etc/passwd

此文件下有什麽,我們通過其中兩條內容來說明

[[email protected] ~]#cat /etc/passwd
root:x:0:0:root:/root:/bin/bash  ##root用戶
bin:x:1:1:bin:/bin:/sbin/nologin  ##系統用戶
user2:x:2005:2005::/home/user2:/bin/bash  ##普通用戶

每一行表示一個用戶;

每一行有7個字段,以:隔開;

從左至右每個字段含義:

1、用戶名

2、密碼(passwd文件已經不存放密碼,x只是個符號而已)

3、UID(用戶ID,root的UID是0,系統用戶UID是1,普通用戶UID是2005)

4、GID(用戶所屬主組ID)

5、描述信息

6、用戶家目錄

7、用戶shell程序類型

下面針對每個字段(除了2字段)我們分別做個實驗說明,以user2用戶為例:


修改用戶名

[[email protected] ~]#usermod -l user22  user2  ##參數-l,是修改用戶名字
[[email protected]
/* */ ~]#getent passwd user22 ##getent命令是獲取指定文本內容,本例中就是僅獲取文件passwd中的user22信息 user22:x:2005:2005::/home/user2:/bin/bash ##用戶名變了,但是其他信息沒變


修改用戶ID

[[email protected] ~]#usermod -u 2006 user22  ##-u指定UID,原來是2005現在改成2006
[[email protected] ~]#getent passwd user22
user22:x:2006:2005::/home/user2:/bin/bash


修改組ID

[[email protected] ~]#groupmod -g 2006 user2  ##user2是組名,前面只是修改了用戶名,並未修改組名
[[email protected] ~]#getent passwd user22
user22:x:2006:2006::/home/user2:/bin/bash   ##GID變成2006


修改描述信息

[[email protected] ~]#chfn user22  ##chfn是修改描述信息專用命令
Changing finger information for user22.
Name []: user22
Office []: china 
Office Phone []: 10080
Home Phone []: 10010
Finger information changed.
[[email protected] ~]#getent passwd user22
user22:x:2006:2006:user22,china,10080,10010:/home/user2:/bin/bash   ##按照chfn對應的格式填寫描述信息


修改用戶家目錄,默認家目錄在/home下

[[email protected] app]#usermod -d /app/user22 -m user22
[[email protected] app]#getent passwd user22
user22:x:2006:2006:user22,china,10086,10010:/app/user22:/bin/bash  ##用戶家目錄變成了/app/user22

修改用戶shell程序類型,默認是bash

[[email protected] app]#
[[email protected] app]#chsh -s /bin/csh user22
Changing shell for user22.
Shell changed.
[[email protected] app]#getent passwd user22
user22:x:2006:2006:user22,china,10086,10010:/app/user22:/bin/csh  ## 將bash改成了csh

以上是關於/etc/passwd的分析

  • /etc/shadow

此文件也是一行一個用戶,我們舉例分析

[[email protected] app]#cat /etc/shadow
aaa:$6$ORtBaa7L$gdkboYX2A5vx6.F.8OPc5kDjPtHFqDQIL2mtix06k15t9C1.ZdoFrIHXP0tlLfMBzPhohL1LM.6uKgxEzA1OO/:17369:0:99999:7:::

9個字段,每個字段以:分開;

各個字段含義如下:

1、用戶名

2、加密密碼($6表示使用sha512加密)

3、最近一次更改口令的時間,以1970年1月1號為起始時間,單位是天

4、密碼最短有效期

5、密碼最長有效期

6、密碼過期前幾天提醒用戶

7、密碼過期後幾天會被鎖定,無法登陸

8、從1970年1月1日算起,多少天用戶的賬戶會被鎖定,無法使用

9、保留


  • /etc/group

此文件是存放組信息,一行一個組

[[email protected] app]#cat /etc/group
aaa:x:2007:

4個字段,用:隔開;

1、組名

2、組密碼(x只是標記而已,真正密碼存在gshadow文件裏)

3、組ID(GID)

4、此組包含的用戶(此組是這些用戶的輔助組)

為user22添加輔助組aaa

[[email protected] app]#usermod -G aaa user22  ##-G是列出賬戶的輔助組
[[email protected] app]#getent group aaa
aaa:x:2007:user22
[[email protected] app]#id user22  ##查看user22所屬的組,其中user2是主組,aaa是其輔助組
uid=2006(user22) gid=2006(user2) groups=2006(user2),2007(aaa)


  • /etc/gshadow

此文件存放用戶組的密碼信息,每行一個用戶組

[[email protected] app]#getent gshadow
aaa:!::user22

4個字段,每個字段以:分開;

各字段含義如下:

1、組ID

2、組密碼(!表示此組被鎖定,組內成員可以不需要密碼直接進入,其他人則不被允許)

3、管理員列表,可以管理組密碼和成員,可設置多個管理員並以逗號隔開

4、以此組為輔助組的成員列表,也是以逗號隔開(這些成員默認是與group中的成員一致)


在centos6中,普通用戶的UID和GID默認是從500-60000

在centos7中,普通用戶的UID和GID默認是從1000-60000

具體信息可參考以下命令:

cat /etc/login.defs

至此4個文件大致整理完了,有不足的地方請多多指教!

本文出自 “a_pan” 博客,請務必保留此出處http://panpangao.blog.51cto.com/10624093/1950016

跟用戶、用戶組相關的4個文件