且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

用户配置文件和密码配置文件、用户组管理、用户管理

更新时间:2021-12-30 00:06:04

一、用户配置文件和密码配置文件

/etc/passwd 文件结构

用户配置文件和密码配置文件、用户组管理、用户管理

创建一个用户都会在这个配置文件中增加一行。每一行就代表一个用户的信息。

每行信息被冒号分成了7段。

第一段:用户名(root)

第二段:密码(root密码)

第三段:uid(root为0,普通用户从1000开始)

第四段:gid(root为0,普通用户从1000开始)

第五段:用户信息说明,用来解释账号的意义。

第六段:该用户的家目录。如果要移动家目录可以对这个字段进行修改

第七段:用户的shell。当用户登录系统后就会取得一个shell来与系统的内核通信以进行用户的操作任务。用户默认shell使用的是bash,所以第七段为/bin/bash。如果第七段设置为/sbin/nologin那么即使用户设置了密码也无法登录。


因为文件的权限为644,所以只有root用户才能修改这个配置文件

用户配置文件和密码配置文件、用户组管理、用户管理


/etc/shadow 文件结构

用户配置文件和密码配置文件、用户组管理、用户管理这个文件是专门用来控制用户的密码的

第一段:用户名

第二段:密码。密码是加密的。密码不能被反编译。即使两个密码相同,但是加密的字符串显示的还是不一样的。这个文件默认权限是600或400,只有root才可以读写。

第三段 :最近更改密码的日期。单位为天,是以1970年1月1日作为1而累加的日期。

   echo $(($(date --date="2009/09/04"+%s)/86400+1)) 可以计算出某个日期的累积日数。

   86400为每一天的秒数,%s为1970/01/01以来累积总秒数。

第四段:要过多少天才可以更改密码(相对于第三段,默认为0)

第五段:密码多少天后到期,即密码多少天后必须被更改(相对于第三段)

第六段:密码到期前的警告。提醒用户密码多少天后到期(相对于第五段)

第七段:密码过期后的账号宽限时间(相对于第五段)

第八段:账号失效的日期。账号在这个日期前可以使用。(相对于1970年1月1日)

第九段:保留。



二、用户组管理

创建一个用户的同时,系统就会创建一个和用户名相同名称的组。

/etc/group 文件结构

用户配置文件和密码配置文件、用户组管理、用户管理

这个文件每一行代表一个用户组,用冒号(:)隔开。共分为4段

第一段:用户组名(初始用户组名)

第二段:用户组密码。通常不设置。密码放置在/etc/gshadow文件中。

第三段:gid(组id)。和/etc/passwd文件的第四段对应。该组id为初始用户组id

第四段:此用户组支持的用户名。一个用户可以加入多个用户组,那某个用户想加入此用户组时,将该账号添加到这个字段即可。

groupadd 新增组

[root@localhost ~]# groupadd grp1 #新增一个组名为grp1的用户组

[root@localhost ~]# tail -n1 /etc/group #查看组配置文件

grp1:x:1002:  #新增组grp1成功

[root@localhost ~]# groupadd -g1005 grp2 #新增一个组名为grp2的用户组,并指定组编号为1005。组id需从1000后开始。

[root@localhost ~]# tail -n3 /etc/group #查看组配置文件

huang2:x:1001:

grp1:x:1002:

grp2:x:1005: #新增组grp2成功,并指定组号为1005


groupdel 删除组

[root@localhost ~]# groupdel grp2 #删除grp2组

[root@localhost ~]# groupdel huang2 #删除huang2组

groupdel:不能移除用户“huang2”的主组


groupdel 只能删除一个空组。只要组中有任何一个用户都无法删除这个组。


groups 可查看该用户属于哪些组。第一个结果为用户的有效组。


newgroup 有效用户组切换

newgroup A #将用户组切换为组A (用户必须属于组A)




三、用户管理

useradd就是增加用户

useradd [-u UID][-g GID][-d HOME][-M][-s]

其中选项含义如下:

-u:表示自定义UID

-g:表示使新增用户属于已经存在的某个组,后面可以跟组id,也可以跟组名

-d:表示自定义用户的家目录

-M:表示不建立家目录

-s:表示自定义shell(/bin/bash 能登录  /sbin/nologin不能登录)

[root@centos-01 ~]# useradd user1  #新增用户user

[root@centos-01 ~]# tail -n 1 /etc/passwd

#查看/etc/passwd 文件

user1:x:1001:1001::/home/user1:/bin/bash

#新增用户user1,uid为1001,gid为1001,家目录/home/user1

允许用户通过bash登录。

默认情况下新建的用户,useradd 后仅跟用户名时,用户uid在上一个用户uid的基础上加1,gid不会自增家目录为/home/用户名,允许用户通过bash登录。

[root@centos-01 ~]# useradd -u1003 -g1002 -d /home/user2 -s /sbin/nologin user2 #新增用户user2,uid为1003,gid为1002,用户家目录为/home/user2,不允许用户通过bash登录。

[root@centos-01 ~]# tail -n 1 /etc/passwd

#查看/etc/passwd 配置文件

user2:x:1003:1002::/home/user2:/bin/bash:/sbin/nologin

#新增用户user2,uid为1003,gid为1002,家目录/home/user2

不允许用户通过bash登录。-g后可跟gid或组名。

[root@centos-01 ~]# ls /home/ #查看home目录

huang  user1  user2  #user2的家目录新建成功

加上-M参数后新建用户时就不创建家目录

[root@centos-01 ~]# useradd -M user5 #新建用户user5

[root@centos-01 ~]# tail -n 1 /etc/passwd

#查看/etc/passwd 配置文件

user5:x:1004:1004::/home/user5:/bin/bash

#user用户的家目录为/home/user5

[root@centos-01 ~]# ls /home/ 查看/home目录

huang  user1  user2 #没有发现user5目录

虽然在/home目录下没有user5目录,但是/home/user5目录仍然是user5用户的家目录。在/home目录下创建user5目录即可。

userdel 删除用户

userdel  用户名

一般情况下 userdel删除用户之后,只是删除了/etc/passwd文件中的记录,但是却没有删除用户的家目录/home/用户名。因为,可能有些用户家目录中含有比较重要的文件需要备份,所以系统在删除用户时没有删除用户的家目录。

其中-r的作用是删除用户时同时删除用户的家目录。

userdel -r user1 #将user1用户删除,并将其家目录/home/user1删除。



本文转自 豆渣锅 51CTO博客,原文链接:http://blog.51cto.com/754599082/1977376