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段:保留字段,暂时没意义。
[root@test2 ~]# ls /etc/shadow
shadow shadow-
shadow-:系统自动备份文件
组密码文件:/etc/gshadow
[root@node1 ~]# cat /etc/gshadow | head
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
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-,红帽7版本开始,普通用从1000开始
例如:#useradd -u 200 -M -G root -r -s /sbin/nologin haha
创建用户时不指定家目录:
·删除用户:userdel [选项] 用户名
选项:-r,删除家目录
[root@myblog ~]#userdel -r haha
·修改用户属性:usermod [选项] 用户名
选项:
-c 填写用户账户的备注信息
-d -m 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的UID
用户家目录文件模版:/etc/skel/
5、密码管理命令passwd
语法:passwd [选项] [用户名]
-l:锁定用户,禁止其登录
-u:解除锁定,允许用户登录
--stdin:允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username
-d:使该用户可用空密码登录系统
-e:强制用户在下次登录时修改密码
-n:密码最短使用期限
-S:显示用户的密码是否被锁定,以及密码所采用的加密算法名称
6、密码生产命令:mkpasswd
需要安装expect软件包:
yum install -y expect
用法举例:
mkpasswd -l 10 -s 3 -d 3
-l:长度
-s:特殊字符的个数
-d:数字的个数
7、su与sudo
su:
切换用户:su [-] 用户名
切换到root用户:su -
sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或UID值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
sudo:
安装sudo可以使用visudo命令配置sudo
#yum install sudo -y
运行visdo命令
# visudo
96 ##
97 ## Allow root to run any commands anywhere
98 root ALL=(ALL) ALL
99 user1 ALL=(ALL) ALL
谁可以使用 *允许使用的主机***=**(以谁的身份) 可执行命令的列表
此文件保存在/etc/sudoers
别名使用:用户别名、命令别名等。例如
User_Alias USER_SU=user1,uset2
Cmnd_Alias SU=/usr/bin/su
User_Alias ALL=(ALL) NOPASSWD: SU
NOPASSWD:免密切换
sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。
8、不允许root远程登录
修改/etc/ssh/sshd_config配置文件
#vim /etc/ssh/sshd_config
找到#PermitRootLogin yes
修改为PermitRootLogin no
保存退出。然后重启sshd服务:
#systemctl restart sshd