一、用户配置文件和密码配置文件
/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