认识/etc/passwd 和/etc/shadow
5.1.1 /etc/passwd 解说:
- 1):用户名
- 2):账号的口令
- 3)一个数字,这个数字代表用户标识号,也成为uid
ps:uid的取值范围是0~65535;0是root用户的标识号,普通用户的的标识号是大于或等于1000 - 4)数字,表示组标识号,也称为gid
- 5)注释说明,通常记录用户的一些属性
- 6)用户的家目录
ps:普通用户的家目录是/home/username,root用户的在/root - 7)用户的shell
ps:/sbin/nologin表示不允许该账号登录,默认是/bin/bash
5.1.2 /etc/shadow 解说:
- 1)用户名
- 2)用户密码,是该账户的真正密码
- 3)上次更改密码的日期
- 4)要过多少天才可以更改密码,默认是0,不受限制
- 5)多少天后到期,即多少天内必须更改密码
- 6)密码到期前的警告期限
- 7)账号失效期限
- 8)账号的生命周期
- 9)作为保留使用,无特殊意义
5.2 用户和用户组管理
5.2.1 新增组的命令groupadd:格式为groupadd [-g GID] groupname
5.2.2 删除组的命令groupdel:格式为:groupdel [-g GID] groupname
5.2.3 增加用户的命令useradd:格式为:useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]
- -u:自定义UID
- -g:使新增用户属于已经存在的某个组,后面跟组id,也可跟组名
- -d:自定义用户的家目录
- -M:不建立家目录
- -s:自定义shell
5.2.4 删除账户的命令userdel:格式为userdel [-r] username
ps:-r的作用是:当删除用户时,一并删除用户的家目录
ps:如果不加-r选项直接删除用户,会保留其家目录
5.2.5 使用命令chfn更改用户的finger
5.3 用户密码管理
5.3.1 命令passwd:创建密码时尽量设置的复杂一些
-
长度大于10个字符
-
密码中包含大小写字母、数字以及一些特殊符号等
-
不规则性
-
密码中不要带自己的名字、电话、生日以及公司名字
***ps:***:设置命令使用命令passwd,格式为:passwd [username],若不加用户名字,则是为自己设定密码
当修改指定账户的名字时,命令如下:
注意:只有root用户可以修改其他账号的密码,普通用户只能修改自己的
5.3.2 命令mkpasswd:用于生成密码,安装的Linux默认没有这个命令,需要安装expect软件包
如想要生成指定长度的密码,命令如下:
也可指定密码中有几个特殊字符或数字,命令如下:
***ps:***-s指定特殊字符个数,-d指定数字的个数
5.4 用户身份切换
ps:普通用户和超级用户的shell提示符号的区别是root账户是#,普通用户是$
5.4.1 命令 su
ps: 格式为:su [-] username;普通用户su命令不加username时,就是切换到root用户
ps:如果不加-,当前目录并没有变化;如果加了就会为root的家目录
5.4.2 命令 sudo:使用超级用户来执行命令,一般是指root用户
sudo命令: 查看当前用户可以用sudo执行的命令都有哪些
ps:本人实验虚拟机是没有安装sudo,所以要先安装:yum install -y sudo;安装完成后编辑配置文件:vi /etc/sudoers.
第一段是指定哪个用户有超级用户的特权,第二段左边的ALL指的是所有主机;右边的ALL指的是获取哪个用户的身份
ps:批量增加用户:把# %wheel ALL=(ALL)ALL前面的#去掉,这样wheel这个组的用户都拥有sudo的权利,接下来只需要把所有用户加入到wheel这个组
5.4.3 不允许root远程登陆Linux
/etc/ssh/sshd_config为sshd服务的配置文件,默认允许root通过ssh远程登陆;要想不允许远程登录,具体方法为:修改配置文件/etc/ssh/sshd_config,在文件中查找#PermitRootLogin yes并修改为PermitRootLogin no,保存重启即可
ps:此方法只适用于通过ssh远程登陆Linux的情况