用户配置文件和密码配置文件
查看前三行/etc/passwd文件(用户配置文件),每创建一个用户都会在这个文件的最末尾增加一行
[root@apenglinux-001 ~]# head -3 /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
/etc/passwd用户配置文件的结构
用户名;密码占位符;uid;gid;用户注释信息;用户家目录;用户登陆shell
/etc/shadow用户密码配置文件
[root@apenglinux-001 ~]# head -3 /etc/shadow root:$6$UQWG6Mpk7MzOQPvP$MnDpXbJfQwme3NPE0Kt4W/mFvpsYPy1N1oNgGMtOPIXOXjL7oPuXtfy.6dxPrk6OyAf2b/LBPhJiBCCT1eYSJ/::0:99999:7::: bin:*:17110:0:99999:7::: daemon:*:17110:0:99999:7:::
用户名;用户密码;上次更改密码的时间(距离1970年1月1日相隔的天数);要过多少天才可以更改密码(默认为0不受限制);密码多少天后到期;密码到期前的警告天数;密码宽限天数;帐号失效时间;保留字段
注:设置一样的密码,通过加密后,得到的 /etc/shadow中的密码是不一样的
用户组管理
[root@apenglinux-001 ~]# head -3 /etc/group root:x:0: bin:x:1: daemon:x:2:
/etc/group字段含义
组名;密码;组ID;组成员
/etc/gshadow
[root@apenglinux-001 ~]# head -3 /etc/gshadow root::: bin::: daemon:::
组名;密码;组管理者;组内用户列表
/etc/passwd-;/etc/shadow-;/etc/group-;/etc/gshadow-;这四个文件是对应的备份文件
useradd命令
-c: 加上备注文字,备注文字保存在passwd的备注栏中 -d: 指定用户登入时的主目录,替换系统默认值/home/用户名 -D: 变更预设值 -e: 指定帐号的失效日期,默认表示永久有效 -f: 指定密码过期后多少天关闭帐号。如果为0则表示帐号立即被停用;如果为-1则帐号一直可用。默认为-1 -g: 指定用户所属的基本组(这个组必须存在) -G: 指定用户所属的附加组 -m: 自动建立用户的登入目录 -M: 不要自动建立用户的登入目录 -n: 取消建立以用户名称为名的群组 -r: 建立系统帐号 -s: 指定用户登入后使用的shell -u: 指定用户ID号
userdel命令
-f: 强制删除用户,即使用户当前已登录 -r: 删除用户的同时,删除与用户相关的所有文件
groupadd命令
-g: 指定新建组的ID -r: 创建系统组 -k: 覆盖配置文件/etc/login.defs -o: 允许添加组ID号不唯一的组
groupdel命令
groupdel 组名 注:您不能移除现有用户的主组。在移除此组之前,必须先移除此用户 您需要手动检查所有文件系统,以确保没有遗留的属于此组的文件
usermod命令
-c: 修改用户帐号的备注信息 -d: 修改用户登入时的目录 -e: 修改帐号的失效日期 -f: 修改在密码过期后多少天即关闭帐号 -g: 修改用户所属的基本组 -G: 修改用户的附加组 -l: 修改用户帐号名称 -L: 锁定用户帐号 -s: 修改用户登入后所使用的shell -u: 修改用户ID -U: 解除密码锁定
passwd命令
-k: 保留即将过过期的用户在期满后仍能使用 -d: 删除用户密码 -l: 锁定用户 -u: 解除锁定 -f: 强制操作 -x: 两次密码修正的最大天数 -n: 两次密码修正的最小天数 -w: 在距多少天提醒用户修改密码 -i: 在密码过期后多少天,用户被禁掉 -S: 查询用户的密码状态 --stdin: 从标准输入中读取密码
注:空密码不能登陆到Linux服务器的。/etc/shadow中的第二个字段带有"*"或"!"或"!!"或"",说明这个密码是有问题的,是不能登入系统的
[root@apenglinux-001 ~]# echo "xiaoming"|passwd --stdin xiaoming [root@apenglinux-001 ~]# echo -e "123\n123"|passwd xiaoming
以上两条命令都可以实现修改用户的密码
mkpasswd命令
[root@apenglinux-001 ~]# yum install expect -y [root@apenglinux-001 ~]# mkpasswd e5dyHB@w2 [root@apenglinux-001 ~]# mkpasswd -l 18 -s 3 &w8vx?kbeQjxXnp}u8
-l: 指定长度 -s: 指定特殊符号的个数
su命令
作用: 用于切换用户;su - username; -:彻底切换到用户目录
[root@apenglinux-001 ~]# su - zhangsan -c "touch zhangsan.txt" #以用户zhangsan的身份创建zhangsan.txt,但没有切换到zhangsan环境下
例: 如果管理员没有给普遍用户lisi创建家目录,切换到lisi,看看有什么情况
[root@apenglinux-001 ~]# su - lisi -bash-4.2$ [root@apenglinux-001 ~]# cp /etc/skel/.bash* /home/lisi/ [root@apenglinux-001 ~]# chown -R lisi:lisi /home/lisi/ [root@apenglinux-001 ~]# su - lisi [lisi@apenglinux-001 ~]$
sudo
作用: 可以让普通用户临时执行命令,以指定用户的身份云执行
[root@apenglinux-001 ~]# visudo
在这行下输入以下命令
lisi ALL=(ALL) /usr/bin/ls,/usr/bin/mv,/usr/bin/cat [root@apenglinux-001 ~]# su - lisi [lisi@apenglinux-001 ~]$ sudo -l
[lisi@apenglinux-001 ~]$ ls /root/ ls: 无法打开目录/root/: 权限不够 [lisi@apenglinux-001 ~]$ sudo ls /root/ anaconda-ks.cfg
总结: visudo
[root@apenglinux-001 ~]# visudo #在配置文件中写如下内容 wangwu ALL=(ALL) NOPASSWD: /usr/bin/ls,/usr/bin/mv,/usr/bin/cat Cmnd_Alias APLENG = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat #可以用命令别名 lisi ALL=(ALL) APLENG Host_Alias APENGLINUX = 192.168.221.10 #主机别名 wangwu APENGLINUX=(root) NOPASSWD: APLENG User_Alias JIM = wangwu, lisi #用户别名 JIM APENGLINUX=(root) NOPASSWD: APLENG %wheel ALL=(ALL) ALL #可以将用户加入到wheel组中再进行设置
限制root用户远程登陆
如: root用户不能远程登陆了,只允许登陆普通用户,普通用户su - root,这必须要求普通用户知道root用户的密码;普通用只能这样sudo su - root;这样就必须将su命令写入到lvisudo配置文件中;限制root用户不能远程登陆
[root@apenglinux-001 ~]# visudo JIM APENGLINUX=(root) NOPASSWD: /usr/bin/su [root@apenglinux-001 ~]# su - lisi [lisi@apenglinux-001 ~]$ sudo su - root 上一次登录:二 1月 30 17:49:49 CST 2018pts/0 上 [root@apenglinux-001 ~]# [root@apenglinux-001 ~]# vi /etc/ssh/sshd_config PermitRootLogin no [root@apenglinux-001 ~]# systemctl restart sshd.service
用root远程登陆
发现root不能远程登陆了