Chinaunix首页 | 论坛 | 博客
  • 博客访问: 139136
  • 博文数量: 70
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 770
  • 用 户 组: 普通用户
  • 注册时间: 2017-11-04 11:19
文章分类

全部博文(70)

文章存档

2018年(69)

2016年(1)

我的朋友

分类: LINUX

2018-06-10 21:30:19

3.1 用户配置文件和密码配置文件
Linux用户和用户组
/etc/passwd        //用户的密码文件。每创建一个用户,就会在这个文件中增加一行内容。
对于或者文件的结构:
xiao:x:1000:1000::/home/xiao:/bin/bash        //每个用户一行
然后每个字段用冒号“:”分隔,一共七段
用户名 : 密码 :uid :gid :用户的注释信息 :用户家目录 :用户的shell
第二段密码:早期是存储密码的,后面发现并不安全,现在只是密码的占位符
用户的注释信息 :不重要,不需要关注
用户的shell :用户的交互终端,可以和机器交互的窗口

/etc/shadow        //专门用来控制用户密码的,与/etc/passwd相对应
xiao:!!:17684:0:99999:7:::
与passwd文件一样,使用冒号“:”分隔,共9段
用户名 :用户密码 :密码最近修改时间 :限制密码修改时间 :强制修改密码 :警告 :账号的失效期限 :账号生命周期 :保留字段
用户密码:加密显示,无法反推,即从加密状态推算到原始密码
密码最近修改时间 :距离1970年1月1日到修改密码的天数
限制密码修改时间 :多少天内,禁止修改密码。默认为0
强制修改密码 :密码有效期,即多少天内必须修改密码
警告:密码到期前的警告期限。比如设置为7,那么当七天后密码要过期时,系统就会发出警告,提醒用户他的密码将在7天后到期。
账号的失效期限:密码已经到期了,然而用户并没有修改密码,那么在这里的期限后账号将被锁定。
账号生命周期:距离1970年1月1日有多少天,账号在这个日期前可以使用,到期后密码就会被锁定。
保留字段:目前并没有被使用。


3.2 用户组管理
/etc/group        //跟/etc/passwd有略微区别
当创建用户时,会创建一个跟用户同名的组,那么在这个配置文件中就会出现一行内容。
那么跟用户对应的,组也有一个密码文件:/etc/gshadow,用来存储组密码的文件。
[root@localhost ~]# ls /etc/shadow
shadow   shadow-  
[root@localhost ~]# ls /etc/gshadow
gshadow   gshadow-  
[root@localhost ~]# ls /etc/passwd
passwd   passwd-  
[root@localhost ~]# ls /etc/group
group   group-
标红的文件,都是系统自动生成的备份文件。如果主文件shadow 等其他几个文件不小心被删除了,那么可以通过拷贝这几个文件进行还原。不过,内容有可能有缺失:可能新创建的用户没来得及同步。

[root@localhost ~]# groupadd grp1            //创建组,并且查看配置文件的变化
[root@localhost ~]# tail -1 /etc/group
grp1:x:1001:

[root@localhost ~]# groupadd -g 1005 grp2    //指定gid的方式创建组账号。并且,在centos7中,手动创建的组,gid最好在1000+,因为前一千位是留给系统组使用的。centos6中,是大于500即可。跟用户的uid是类似的。
[root@localhost ~]# tail -3 /etc/group
slocate:x:21:
grp1:x:1001:
grp2:x:1005:

[root@localhost ~]# groupdel grp1        //删除组
[root@localhost ~]# tail -3 /etc/group
xiao:x:1000:
slocate:x:21:
grp2:x:1005:

[root@localhost ~]# groupdel xiao        //不能删除有用户存在的组!必须先将用户移出该组后,再进行删除操作。
groupdel:不能移除用户“xiao”的主组
[root@localhost ~]# LANG=en
[root@localhost ~]# groupdel xiao
groupdel: cannot remove the primary group of user 'xiao'

3.3 用户管理
[root@localhost ~]# useradd user2
[root@localhost ~]# tail -2 /etc/passwd        //普通用户创建,uid是从1000开始分配的,并且是挨个往后增加。
xiao:x:1000:1000::/home/xiao:/bin/bash
user2:x:1001:1001::/home/user2:/bin/bash

[root@localhost ~]# useradd -u 1006 -g grp2 user4    //创建一个uid=1006,用户组为grp2的用户user4。gid=1005,是grp2组的gid
[root@localhost ~]# tail -3 /etc/passwd
user2:x:1001:1001::/home/user2:/bin/bash
user3:x:1004:1004::/home/user3:/bin/bash
user4:x:1006:1005::/home/user4:/bin/bash

[root@localhost ~]# useradd -u 1007 -g grp2 -s /sbin/nologin -d /home/test haha
//uid=1007,gid=1005,shell环境是/sbin/nologin,家目录是/home/test。
[root@localhost ~]# tail -1 /etc/passwd
haha:x:1007:1005::/home/test:/sbin/nologin

[root@localhost ~]# useradd -M user5        //创建用户时,不去创建它的家目录。有家目录,只是没有创建
[root@localhost ~]# tail -1 /etc/passwd
user5:x:1008:1008::/home/user5:/bin/bash
[root@localhost ~]# ls /home/
test  user2  user3  user4  xiao

并且,我们再次查看下passwd文件中用户到uid变化
[root@localhost ~]# tail -5 /etc/passwd
user2:x:1001:1001::/home/user2:/bin/bash
user3:x:1004:1004::/home/user3:/bin/bash
user4:x:1006:1005::/home/user4:/bin/bash
haha:x:1007:1005::/home/test:/sbin/nologin
user5:x:1008:1008::/home/user5:/bin/bash        //创建用户user5时,并没有指定uid,但是uid是顺着上一个用户的uid号往下顺延!组也是一样的!

[root@localhost ~]# tail -4 /etc/group
user2:x:1001:
user3:x:1004:
user5:x:1008:
grp3:x:1009:
[root@localhost ~]# tail -2 /etc/passwd
haha:x:1007:1005::/home/test:/sbin/nologin
user5:x:1008:1008::/home/user5:/bin/bash
[root@localhost ~]# useradd test1
[root@localhost ~]# tail -2 /etc/passwd
user5:x:1008:1008::/home/user5:/bin/bash
test1:x:1009:1010::/home/test1:/bin/bash
一般来说,创建一个新用户,会有一个同名的组,并且,gid跟uid会保持一致。而这里有一个情况,当gid因为手动创建的组占用,那么创建用户生成的同名组的id号也会顺延。
验证:
[root@localhost ~]# useradd -u 1012 zhangsan1
[root@localhost ~]# tail -2 /etc/passwd
zhangsan:x:1010:1011::/home/zhangsan:/bin/bash
zhangsan1:x:1012:1012::/home/zhangsan1:/bin/bash

添加用户使用useradd,还可以使用adduser也是可以的。

删除组使用groupdel,删除用户:userdel
那么思考,删除用户时,都会进行哪些操作:
1)会删除文件/etc/passwd中对应的行内容
[root@localhost ~]# tail -2 /etc/passwd
zhangsan:x:1010:1011::/home/zhangsan:/bin/bash
zhangsan1:x:1012:1012::/home/zhangsan1:/bin/bash
[root@localhost ~]# userdel zhangsan1
[root@localhost ~]# tail -2 /etc/passwd
test1:x:1009:1010::/home/test1:/bin/bash
zhangsan:x:1010:1011::/home/zhangsan:/bin/bash
2)没有特别操作,不会删除该用户的家目录。用户家目录中的文件默认保留,留给管理员
[root@localhost ~]# ls /home/
test  test1  user2  user3  user4  xiao  zhangsan  zhangsan1
那么想要一起删除用户的家目录:
[root@localhost ~]# userdel -r zhangsan        //使用“-r”选项,则会一起删除用户的家目录。
[root@localhost ~]# ls /home/
test  test1  user2  user3  user4  xiao  zhangsan1

阅读(2315) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~