用户文件html
/etc/passwd 是linux的用户管理文件,每建立一个用户就会在这个文件中增长一行,每一行就表示一个用户。linux
用户文件中每一行构分为七段,用":"分割。如下是每一段说明:shell
段 | 说明 |
---|---|
第一段 | 用户名,新建一个用户就会产生一行。 |
第二段 | 密码的占位符,密码没有存在这个文件 |
第三段 | 用户uid |
第四段 | gid,用户所属组的id |
第五段 | 对用户的描述信息 |
第六段 | 用户的家目录 |
第七段 | 用户的登陆shell |
id命令:centos
用于查看用户(uid)、用户组id(gid)和附加组gid安全
不加参数就是查看当前用户 ssh
id user 指定用户查看工具
其它参数:-u 只查看uid -g只查看gid -G 只显示附加组gidui
密码配置文件加密
用户密码管理的文件是/etc/shadow ,这个文件内容和passwd文件内容一一对应,它是专门用来管理用户密码的。centos7
这个文件也是每一行表明一个用户,用":"分为了九段。如下是每一段的说明
|第一段|用户名|
|第二段|通过加密的用户密码。详细说明:1.若是为空,则对应用户没有口令,登陆时不须要口令。2.*号表明账号被锁定。3.!!表示这个密码已通过期了。4.$6$开头的,代表是用SHA-512加密。 5.$1$代表是用MD5加密。 6.$2$ 是用Blowfish加密。 7.$5$是用 SHA-256加密|
|第三段|表示最近一次修改密码距离1970年1月1日多少天|
|第四段|表示要过多少天才能更改密码,默认的是零,也就是没有限制|
|第五段|表示密码多少天后会过时,即在多少天内必需要更改密码|
|第六段|密码到期警告,会提醒用户密码在多少天内会过时|
|第七段|表示是帐户的失效期限|
|第八段|表示帐号的生命周期|
|第九段|保留字段,没有意义|
密码生产工具
mkpasswd命令能够随机生成密码,须要安装expect
yum -y install expect
经常使用参数:
-l 指定 长度
-d 指定 数字的个数
-c 指定 小写字符个数
-C 指定大写字符个数
-s 指定特殊字符个数
su命令
su切换用户命令
经常使用参数: - 完全切换,包括家目录、环境变量
- 参数表示完全切换用户,以下图不加-和加-的区别
useradd命令
此命令是用来添加用户
命令格式:useradd 参数 用户名
经常使用参数:
-u : 指定uid。centos7的uid是从1000开始
-g : 指定gid(用户组id),此id必须是存在的
-d :指定用户家目录
示例:
1.添加一个用户
2.添加一个用户并指定uid
3.添加一个用户并指定家目录
userdel命令
userdel命令是删除一个用户
用法:userdel 参数 用户名
不加参数,直接userdel username 会把这个用户删除,但用户的家目录不会删除。
经常使用参数:
-r : 删除用户,并删除用户家目录
usermode命令
usermode用来修改用户属性,使用usermode最少须要一个参数
用法:usermode 参数 用户名
经常使用参数:
-u : 变动用户uid
-g : 改变用户gid
-d : 修改用户家目录
若是修改的目录不存,则会出现问题,这时候须要把原来的目录重命名为新的家目录,或者复制一份系统家目录模板到新的目录下
-s : 修改用户的shell,如:把test01这个用户修改成sbin/nologin这个shell,它就没法登录
-G : 扩展用户组,能够给用户增长多个组
-L : 锁定用户,锁定后root能够su过去,可是普通用户没法直接登陆。
能够查看密码文件,能够看到该用户前面加了!号,说明已经被锁了。
-U :解锁用户。
passwd命令
passwd命令是用来修改用户密码
用法:passwd 用户名
经常使用参数:
-l : 锁定用户,和usermode -L 相似
-u : 解锁用户,和usermode -U 相似
用户组文件
/etc/group是用户组的配置文件
主要分为四段:
第一段:用户组名
第二段:用户组密码,实际保存在/etc/shadow中
第三段:用户组的gid
第四段:用户组成员
新增用户组
groupadd是新增用户组命令
命令格式:grouadd 用户组名
经常使用参数:
-g :指定用户组gid
删除用户组
groupdel是删除用户组
用法:groupdel 用户组名
什么是sudo命令?
sudo命令以他人身份执行命令,默认为root,可在文件/etc/sudoers中配置。
visudo命令:用来配置/etc/sudoers文件,报错时能够自动校验
通常用户权限
配置文件中最重要的一行(下图):表示root在任何地方均可以运行全部的命令
仿照这一行添加一个:
表示wxy这个用户被赋予root权限,能够以root身份执行ls,mv,cat命令
为何要限制?
在平常工做中生产环境中root权限过大,为了安全应该限制root用户登陆。
若是限制?
只容许登陆普通用户,登陆后使用su切换到root用户。
为了root用户密码不泄露,配置sudo文件 使普通用户使用su 到root时不用输入密码。配置以下: 使用visudo命令编辑配置文件,新建一个alias组 须要赋予权限的用户,以下图:
继续配置,这样就可使指定的用户切换root时再也不输入密码
配置不容许root登陆
修改配置文件/etc/ssh/sshd_config,修改内容以下(把注释去掉,并把yes改成no
重启ssh服务
systemctl restart sshd.service
习题
如何把用户锁在本身的家目录
2.创建伪shell
- sudo的高级用法 了解sudo的高级用法,通常不经常使用做为了解 [sudo高级用发](https://www.jianshu.com/p/51338e41abb7)