1、/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
此文件内容由7个字段组成,字段之间用:分隔。
第1段:用户名。
第2段:密码,真正的密码保存在/etc/shadow文件中,这里只用x表示
第3段:用户id,即uid
第4段:组id,即gid
第5段:注释
第6段:用户的家目录
第7段:用户的shell类型
2、/etc/shadow文件
root:$6$Z2YnjAv5g5nraavC6ci1K/:17592:0:99999:7:::
由:分隔成9段:
第1段:用户名
第2段:用户的真正密码(加密后的密码)
第3段:从1970年1月1日起至上一次修改密码的日期之间的天数
第4段:过多少天之后才可以更改密码,默认是0,即不受限制
第5段:密码多少天后过期,即多少天内必须更改密码,否则不能登录。默认是99999,即密码永不需要更改。
第6段:密码到期前的警告期限,单位是天。
第7段:账号失效期限,也就是密码到期后再过多少天账号失效。
第8段:账号有效期,即从1970年1月1日起到某个日期内账号有效。
第9段:保留字段,暂时没意义。
3、组管理
·添加组:groupadd[选项] 组名
选项:-g:指定gid
-r:系统组
例如:
[root@myblog ~]#groupadd -g 206 -r haha
[root@myblog ~]#groupadd haha1
·删除组:groupdel 组名
如果组内有用户,必须删除组内的用户才可以删除组。
[root@myblog ~]#groupdel haha
[root@myblog ~]#groupdel haha1
·修改组:chgrp, chgrp命令用来改变文件或目录所属的用户组
4、用户管理
·添加用户:useradd [选项]… 用户名
选项可以有多个,选项内容:
-u:指定uid
-g:指定组,可以是组名,也可以用gid,但必须事先存在
-G:指定附加组,用组名表示,可以有多个,使用逗号分隔
-d:指定用户家目录
-M:不创建家目录
-s:指定shell
-s:指定shell
root用户id:0
普通用户id:1-65535,其中,系统用户1-499,一般用户500-
例如:#useradd -u 200 -M -G root -r -s /sbin/nologin haha
·删除用户:userdel [选项] 用户名
选项:-r:删除家目录
·修改用户属性:usermod [选项] 用户名
选项:
-c 填写用户账户的备注信息
-d -m 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组,与-a同时使用,不适用-a则会覆盖原来的附加组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端,也就是shell
-u 修改用户的UID
5、密码管理命令passwd
passwd [选项] [用户名]
-l:锁定用户,禁止其登录
-u:解除锁定,允许用户登录
–stdin:允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd –stdin Username
-d:使该用户可用空密码登录系统
-e:强制用户在下次登录时修改密码
-n:密码最短使用期限
-S:显示用户的密码是否被锁定,以及密码所采用的加密算法名称
6、密码生产命令:mkpasswd
yum install -y expect
mkpasswd -l 10 -s 3 -d 4
7、su与sudo
切换用户:su [-] 用户名
切换到root用户:su –
sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或UID值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
安装sudo可以使用visudo命令配置sudo
# visudo
96 ##
97 ## Allow root to run any commands anywhere
98 root ALL=(ALL) ALL
99 user1 ALL=(ALL) ALL
谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
此文件保存在/etc/sudoers
8、不允许root远程登录
#vim /etc/ssh/sshd_config
找到#PermitRootLogin yes
修改为PermitRootLogin no
保存退出。然后重启sshd服务:
#systemctl restart sshd