一.创建新用户
1.创建新的普通用户
adduser [用户名]
2.修改密码
passwd [用户名]
PS:linux生成强密码的方案之一(字符长度可以指定)
openssl rand -base64 14
生成样例如下
二、sudo简介
在Linux系统中, 普通用户的权限很低, 比如shutdown关机, 或者yum install安装软件等很多命令都需要root用户权限来运行. 普通用户想要执行这些命令, 要么使用su命令切换为root用户, 而使用su命令需要输入root密码, 当服务器很多人共同管理, 所有管理员都需要知道root密码, 是很不安全的; 要么使用sudo命令临时获取root权限, 而执行sudo命令只需要用户自己的密码, 甚至可以免密码, 而且只有通过配置的特殊用户才具有sudo特权, 只要权限分配合理, 安全性会更有保障.
普通用户是否具有sudo特权, 由sudoers配置文件来指定, 可通过"man sudo"来确认配置文件位于"/etc/sudoers"。
1.sudo执⾏命令的流程
将当前⽤户切换到超级⽤户下,或切换到指定的⽤户下,
然后以超级⽤户或其指定切换到的⽤户⾝份执⾏命令,执⾏完成后,直接退回到当前⽤户。
具体⼯作过程如下:
当⽤户执⾏sudo时,系统会主动寻找/etc/sudoers⽂件,判断该⽤户是否有执⾏sudo的权限
-->确认⽤户具有可执⾏sudo的权限后,让⽤户输⼊⽤户⾃⼰的密码确认
-->若密码输⼊成功,则开始执⾏sudo后续的命令
2.不需要输⼊密码的情况
1.root执⾏sudo时不需要输⼊密码(eudoers⽂件中有配置root ALL=(ALL) ALL这样⼀条规则)
2.欲切换的⾝份与执⾏者的⾝份相同,不需要输⼊密码
3./etc/sudoers⽂件设置为允许⽤户在不输⼊该⽤户的密码的情况下使⽤所有命令
如设置允许wheel⽤户组中的⽤户在不输⼊该⽤户的密码的情况下使⽤所有命令
( %wheel ALL=(ALL) NOPASSWD: ALL)
三、visudo命令介绍
授权需要用到visudo命令,如下是该命令的简介
1.命令概述
visudo可以安全地编辑 sudoers 文件
- 需要超级用户权限;
- 默认编辑/etc/sudoers文件;
- sudoers文件的默认权限是440,即默认无法修改;
- visudo可以在不更改sudoers文件权限的情况下,直接修改sudoers文件;
2.命令格式
visudo [-chqsV] [-f sudoers] [-x output_file]
3.常用选项
选项: -c, --check 纯检查模式 -f, --file=sudoers 指定 sudoers 文件的位置 -h, --help 显示帮助信息并退出 -q, --quiet 较简略(安静)的语法错误信息 -s, --strict 严格语法检查 -V, --version 显示版本信息并退出 -x, --export=输出文件 以 JSON 格式将 sudoers 写入输出文件
4.参考示例
4.1 编辑/etc/sudoers文件
[root@itcast ~]# visudo
visudo: /etc/sudoers.tmp 未更改
4.2 编辑/etc/sudoers文件,并检查语法等错误
[root@itcast ~]# visudo -c
/etc/sudoers:解析正确
4.3 编辑/etc/sudoers文件,但不打印语法等错误
[root@itcast ~]# visudo -q
visudo: /etc/sudoers.tmp 未更改
4.4 显示版本信息并退出
[root@itcast ~]# visudo -V
visudo 版本 1.8.19p2
visudo 语法版本 45
四、使用visudo修改sudoers给新用户授权
在sudoers文件中找到如下位置,大概位于98行上下,其所代表的含义分别是:
用户帐号,也就是我们想要配置的让哪个系统帐号可以使用sudo命令
允许用户从哪些地方连接到这台主机,linux作为服务器,管理员是有可能从别的主机远程连接过来的
允许切换的身份,
允许执行的命令
照葫芦画瓢,在下面增加一行
[用户名] ALL=(ALL) ALL(如需新用户使用sudo时不用输密码,把最后一个ALL改为NOPASSWD: ALL即可)
Ps: vim编辑器,按【i】键进入编辑模式(左下角出现-- INSERT --标识),内容编辑完成后,按【Esc】键退出编辑模式(标识消失),
最后输入【:wq】保存并退出vim编辑器。
最后,记录一下可能用到的其他命令
#查看系统中有哪些用户
cut -d : -f 1 /etc/passwd
#查看可以登录系统的用户
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
#查看登录用户
who
#查看登录用户(比who命令显示的信息更详细)
w
#查看用户登录历史记录
last [用户名...]
#root强制踢出普通用户
pkill -kill -t tty
* tty 所踢用户的TTY,用who命令查看