一.用户配置文件和密码配置:
/etc/passwd:管理用户密码的文件
[root@ligenkelong ~]#
[root@ligenkelong ~]# ls -ld /etc/passwd
-rw-r--r--. 1 root root 883 3月 20 10:47 /etc/passwd #默认只有root用户才可以更改
[root@ligenkelong ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash 每一列分别对应 用户名:密码(基于安全,用x代表):uid(0是超级用户):gid:注释说明(没有实际意义):用户的家目录:用户的终端解释器shell
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
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
aaa:x:1000:1000::/home/aaa:/bin/bash
- /etc/shadow
:用户的密码管理文件
[root@ligenkelong ~]# head -n 4 /etc/shadow
root:$6$Lwkzf1AH$Vm6fFW8LKBIOSilykXIeyW..myp1szAgyTAd4ZjFERjThJgKqkE81DqEd.8J3j1yNgaO8eb6HQllF2GB4WRa6/:17970:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
每个字段说明:
第一个是用户名
第二个是经过加密的密码
第三个是上次更改密码的日期,它是以1970年一月一日为基准
第四个是多少时间内才可以再次更改密码,0表示不受限制
第五个是密码多少天后到期,默认99999,表示没有规定
第六个是密码到期前多少天给出警告,默认7,表示密码到期的前7天提醒用户
第七个是账号的使用周期,到期后账号作废,同样以1970一月一日为基准
第八个是保留用的,没什么意思。
- /etc/group:
用户组的配置文件
[root@ligenkelong ~]# head -n 4 /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
文件说明:
第一列表示用户组
第二列表示用户组密码,通常不需要设置,这个设置是给“用户组管理员”使用的。同样的这个密码也用x表示,密码移到了/etc/gshadow
第三列表示gid,和/etc/passwd的第四个字段相对应
第四列表示用户组支持的用户名称
注意:用户组分为初始用户组和附属组,初始用户组是用户一登入就会自动获得。拥有附属组的权限
[root@ligenkelong ~]# groups #查看当前账户的有效用户组
root
[root@ligenkelong ~]# newgrp root #newgrp 可以切换
- /etc/gshadow:
[root@ligenkelong ~]# head -n 4 /etc/gshadow
root:::
bin:::
daemon:::
sys:::
每个字段分别表示 用户名:密码列:用户组管理员的账号:gid
二.用户和用户组管理:
- 增加用户的命令:useradd
-u:表示自定义uid
-g:使新增用户加入到某个已经存在的组
-s:确定用户的终端shell。特别注意/sbin/nologin表示用户不能登入
-G:表示使用一个或多个附属组
-d:表示指定用户的家目录
-M:表示不能建立家目录
-e:账户到期时间,格式为YYYY-MM-DD
-N:表示不创建和用户名同名的组
[root@ligenkelong ~]# useradd -d /home/bb -s /bin/bash -u 1001 bbb
[root@ligenkelong ~]# tail -n 1 /etc/passwd
bbb:x:1001:1001::/home/bb:/bin/bash
- 建立用户组groupadd和删除groupdel:
-g:指定gid组,没有则默认
[root@ligenkelong ~]# groupdel bbb
- 修改用户的属性usermod:
-u:修改用户uid
-s:修改用户终端shell
-g:修改用户gid
-G:修改用户扩展组
-d -m可连用:修改用户家目录,并自动把旧的数据转移过去
-L:锁定用户禁止其登入
-U:解锁用户允许其登入
[root@ligenkelong ~]# usermod -u 1002 bbb
[root@ligenkelong ~]# usermod -g 1002 bbb
- 用户密码管理passwd:
-l:锁定用户,禁止其登入
-u:解除锁定,允许用户登入
–stdin:允许通过标准输入修改用户密码
-d:使用户可用空密码登入系统
-e:强制用户在下次登入时修改密码
-S:显示用户密码是否被锁定
[root@ligenkelong ~]# groupdel bbb
[root@ligenkelong ~]# useradd bbb
[root@ligenkelong ~]# echo "bbb" --stdin bbb
bbb --stdin bbb
[root@ligenkelong ~]# echo "bbb" |passwd --stdin bbb
更改用户 bbb 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@ligenkelong ~]# tail -n 1 /etc/shadow
bbb:!!$6$lMJzj/Oe$KbsyUG2wr36GwWgD2uL4rdSujW2z1bCm6aZlkzZt4sFIxfPRPNzQeLnBuin7PqL2ftaTfzm0W87ug7N1dAENZ0:17977:0:99999:7:::
生成密码工具----mkpasswd
[root@ligenkelong ~]# yum install -y expect
[root@ligenkelong ~]# mkpasswd -l 12
heczdxKSz33;
[root@ligenkelong ~]# mkpasswd -l 12 -s 0 #-s表示特殊字符
6hKqeMjsr0rk
三.su和sudo命令:
- su
su - 用户名 切换到用户的变量环境
su 用户名 当前目录没有变化
sudo:
执行一个只有root用户才能够执行的命令,需要输入用户自己的密码,普通用户想要使用sudo,是需要root预先设定的。
[root@ligenkelong ~]# visudo
aaa ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
[root@ligenkelong ~]# su - aaa
上一次登录:五 3月 22 12:56:57 CST 2019pts/1 上
[aaa@ligenkelong ~]$ sudo ls /root
[sudo] aaa 的密码:
2 2.txt 33.txt 5.txt anaconda-ks.cfg
Cmnd_alias AAA_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat #命令别名
aaa ALL=(ALL) AAA_CMD
四.限制用户远程登入
[root@ligenkelong ~]# vi /etc/ssh/ssh_config
#PermitRootLogin yes #更改为 PermitRootLogin no
User_Alias LIGEN = bbb #visudo 用户别名设置
课堂笔记:
usermod -L /etc/shadow 有一个!号
passwd -l /etc/shadow有两个!号
- visudo详解:
root ALL=(ALL) ALL
第一个是可以用sudo的用户
左边的是主机host 主要是ip地址、IP段、主机名
右边一般映射到所有,包含root
最后一个对应的是命令
/etc/sudoers ------> 配置sudo
别名类型:
Host_Alias 定义主机别名
User_Alias 用户别名
Runas_Alias 目的用户
Cmnd_Alias 命令别名