用户与组
超级用户 | root | UID=0 |
普通用户 | 1系统用户 | centos6UID:1-499 ; centos7UID:1-999 |
2本地用户 | centos6UID:500+ ; centos7UID:1000+ | |
虚拟用户 | 伪用户 | 一般不会用来的登录系统,主要用于维持某个服务的正常运行 |
UID:每个用户的身份标识,类似于人的身份证号码
用户和组的关系
- 一对一
- 一对多
- 多对一
- 多对多
配置文件
/etc/passwd | 用户配置文件.记录每个用户的基本信息,并且对所有用户可读,每一行记录对应一个用户,每行记录通过冒号分隔 |
/etc/group | 用户组文件.用户组的所有信息存放地,组名不能重复 |
/etc/shadow | 用户对应的密码信息,因为passwd文件对所有用户都是可读的,为安全起见,把密码从passwd中分离出来放入这个单独的文件,该文件只有可读权限,从而保证密码安全性 |
/etc/passwd
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
...
每个字段解释
用户名;密码占位符;UID;GID;用户描述;用户主目录;登录后使用的shell
/etc/group
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
...
字段解释
组名:x:GID:(当前组中的用户)
/etc/shadow
[root@localhost ~]# cat /etc/shadow
root:$6$8DLTLutUGU6/s0BC$O/oTIS6Jo5pBHOfouJRC8ph.x/KDZh2HDibV6Py.VCD7rNxsVz8nEi7rK3UFrZrE1fVw5MFLTZeoqDS48D.QM0::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
...
参数解释:
用户名;
被加密后的密码;
最近更改密码的日期,从19700101开始计算,69年UNIN出现的,1970/1/1/开始计算;
密码不能更改的天数,0表示随时可以更改;
密码过期时间,多少天后必须更改;
密码需要更改的前七天发出警告;
宽限天数,密码过了几天后还能更改密码;
账号过期时间;
保留;
密码加密.分为三个部分
第一部分表示使用哪种哈希算法
$1表示MD5,$6表示SHA-512 $5表示SHA-256
第二部分用于加密哈希的salt
第三部分是已加密的哈希
用户管理命令
添加用户
useradd -u "UID" -g "初始组" -G "附加组" -s "登录的shell" 用户
1添加harry用户
[root@localhost ~]# useradd harry
[root@localhost ~]# tail -1 /etc/passwd
harry:x:1000:1000::/home/harry:/bin/bash
[root@localhost ~]# id harry
uid=1000(harry) gid=1000(harry) groups=1000(harry)
2创建harry1用户,指定UID为1100
[root@localhost ~]# useradd -u 1100 harry1
[root@localhost ~]# id harry1
uid=1100(harry1) gid=1100(harry1) groups=1100(harry1)
3创建harry2用户,指定家目录
[root@localhost ~]# useradd -d /opt/harry2 harry2
[root@localhost ~]# ls /opt/
harry2
[root@localhost ~]# id harry2
uid=1101(harry2) gid=1101(harry2) groups=1101(harry2)
4创建harry3用户,不创建家目录
[root@localhost ~]# useradd -M harry3
[root@localhost ~]# ls /home/
harry harry1
[root@localhost ~]# id harry3
uid=1102(harry3) gid=1102(harry3) groups=1102(harry3)
5创建harry4用户,指定主组harry
[ root@localhost ~]# useradd -g harry harry4
[root@localhost ~]# id harry4
uid=1103(harry4) gid=1000(harry) groups=1000(harry)
6创建harry5用户,指定附属组harry,harry1
[root@localhost ~]# useradd -G harry,harry1 harry5
[root@localhost ~]# id harry5
uid=1104(harry5) gid=1104(harry5) groups=1104(harry5),1000(harry),1100(harry1)
[root@localhost ~]#
创建用户的另一命令adduser,两者没有任何区别.是useradd的软链接
[root@localhost ~]# which adduser
/usr/sbin/adduser
[root@localhost ~]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Jun 1 02:55 /usr/sbin/adduser -> useradd
添加密码
1 passwd harry1
[root@localhost ~]# passwd harry1
Changing password for user harry1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
2 echo 123456 | passwd --stdin harry1
[root@localhost ~]# echo 123456 | passwd --stdin harry2
Changing password for user harry2.
passwd: all authentication tokens updated successfully.
删除用户
userdel -r harry5
[root@localhost ~]# userdel -r harry5
[root@localhost ~]# userdel -r harry4
[root@localhost ~]# userdel -r harry3
选项-r 删除的时候,会同时删除用户的家目录和/var/mail下的目录
扩展1,模板文件被删除之后显示不正常的问题
[root@localhost ~]# rm -rf /home/harry1/.bash*
[root@localhost ~]# su - harry1
Last login: Sat Jun 1 04:53:22 CST 2019 on pts/1
-bash-4.2$
-bash-4.2$ exit
logout
[root@localhost ~]# cp /etc/skel/.bash* /home/harry1/
[root@localhost ~]# chown harry1:harry1 /home/harry1/.bash*
[root@localhost ~]# su - harry1
Last login: Sat Jun 1 04:54:15 CST 2019 on pts/1
[harry1@localhost ~]$ exit
logout
[root@localhost ~]#
扩展2,忘记root密码,怎样找回呢
1开机在选择内核的界面处,按"e"
2修改ro为 rw init=/sysroot/bin/sh
3按ctrl+x保存:进入紧急模式