阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux中设置’sudo’的10个小技巧

32次阅读
没有评论

共计 2331 个字符,预计需要花费 6 分钟才能阅读完成。

导读 在 Linux 和其他类 Unix 操作系统中,只有 root 用户可以运行所有命令并在系统上执行某些关键操作,如安装和更新,删除包,创建用户和组,修改重要的系统配置文件等。 然而,承担 root 用户角色的系统管理员可以允许其他正常系统用户在 sudo 命令和几个配置的帮助下运行某些命令以及执行包括上述的一些重要系统操作。或者,系统管理员可以共享 root 用户密码(这不是推荐的方法),以便正常系统用户可以通过 su 命令访问 root 用户帐户。

Linux 中设置’sudo’的 10 个小技巧

sudo 允许用户以 root 用户身份(或另一个用户)执行安全策略指定的命令:它读取并解析 /etc sudoers,查找调用的用户及其权限,然后提示调用用户输入密码(通常是用户的密码,但也可以是目标用户的密码,也可以使用 NOPASSWD 取消密码验证),之后,sudo 创建一个子进程,在其中调用 setuid()切换到目标用户 next,它执行一个 shell 或在上面的子进程中作为参数给出的命令。
以下是十个 /etc/sudoers 文件配置,以使用 Defaults 条目修改 sudo 命令的行为。

sudo cat /etc/sudoers | less
1. 设置安全路径

这是用于每个使用 sudo 运行的命令的路径,它有两个重要性:
在系统管理员不信任 sudo 用户具有安全的 PATH 环境变量时使用
要分离“根路径”和“用户路径”,只有由 exempt_group 定义的用户不受此设置的影响。
要设置它,请添加行:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
2. 在 TTY 用户登录会话上启用 sudo

要启用从真实 tty 调用 sudo,而不是通过 cron 或 cgi-bin 脚本等方法调用,请添加以下行:

Defaults requiretty
3. 运行 Sudo 命令使用 pty

有些时候,攻击者可以使用 sudo 运行恶意程序(例如病毒或恶意软件),这将再次分叉保留在用户的终端设备上的后台进程,即使在主程序已经完成执行时。

为了避免这种情况,您可以将 sudo 配置为仅使用 use_pty 参数从 psuedo-pty 运​​行其他命令,无论 I / O 日志是否已打开,如下所示:

Defaults use_pty1
4. 创建 Sudo 日志文件

默认情况下,sudo 日志通过 syslog(3)。但是,要指定自定义日志文件,请使用 logfile 参数,如:

Defaults logfile="/var/log/sudo.log"

要在自定义日志文件中记录主机名和四位数年份,请分别使用 log_host 和 log_year 参数,如下所示:

Defaults log_host, log_year, logfile="/var/log/sudo.log"
5. 记录 Sudo 命令输入 / 输出

log_input 和 log_output 参数允许 sudo 在伪 tty 中运行命令,并记录所有用户输入和所有输出发送到屏幕。

默认 I / O 日志目录为 /var/log/sudo-io,如果有会话序列号,则存储在此目录中。您可以通过 iolog_dir 参数指定自定义目录。

Defaults log_input, log_output1

支持一些转义序列,例如%{seq},其扩展为单调递增的基础 36 序列号,例如 000001,其中每两个数字用于形成新的目录,例如。00/00/01,如下例所示:

[root@linuxprobe ~]# cd /var/log/sudo-io/
[root@linuxprobe sudo-io]# ll
total 8
drwx------ 3 root root 4096 Jan 12 18:58 00
-rw------- 1 root root 7 Jan 12 19:08 seq
[root@linuxprobe sudo-io]# cd 00/00/06/
[root@linuxprobe 06]# ls
log stderr stdin stdout timing ttyin ttyout
[root@linuxprobe 06]# cat log
1484219333:root:root::/dev/pts/0
/root
/bin/bash
6. 讲解​​Sudo 用户

要讲授 sudo 用户关于系统上的密码使用,请使用如下所示的 lecture 参数。

它有 3 个可能的值:

always – 总是讲一个用户。

once – 只在用户第一次执行 sudo 命令时使用(当没有指定值时使用)

never – 从不讲授用户。

Defaults lecture="always"

此外,您可以使用 lecture_file 参数设置自定义讲义文件,在文件中键入相应的消息:

Defaults lecture_file="/path/to/file"
7. 输入错误的 sudo 密码时显示自定义消息

当用户输入错误的密码时,命令行上将显示特定的消息。默认消息是“sorry,try again”,您可以使用 badpass_message 参数修改消息,如下所示:
Defaults badpass_message=”Password is wrong, please try again,thank you!”

8. 增加 sudo 密码尝试限制

参数 passwd_tries 用于指定用户尝试输入密码的次数。默认值为 3:

Defaults passwd_tries=5
9. 让 Sudo 输入错误的密码时输入提示
Defaults insults
10. 了解更多 Sudo 配置

http://blog.csdn.net/wh211212/article/details/52923673

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计2331字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中