Linux sudo 命令的秘密:10 个提高效率和安全性的技巧

WBOY
发布: 2024-02-11 18:09:23
转载
843 人浏览过

sudo 是 Linux 系统中一个非常强大和常用的命令,它可以让普通用户以超级用户(root)的身份执行特定的命令或程序。这样可以避免用户直接登录 root 账户,从而提高系统的安全性和稳定性。但是,你知道 sudo 命令还有很多隐藏的功能和技巧吗?本文将为你介绍 Linux 中设置 sudo 的 10 个小技巧,让你更好地利用 sudo 命令来完成各种任务。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

以上是Linux sudo 命令的秘密:10 个提高效率和安全性的技巧的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:lxlinux.net
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板