允许用户使用sudo运行命令但没有命令行参数。在上一篇文章中,我们学习了如何以root身份通过sudo在目录中运行命令。在本指南中,我们将学习如何防止sudo运行的命令在Linux中使用参数。也就是说,我们允许用户使用sudo来运行特权命令,但没有命令行参数。背景知识正如您所知,每个命令都有不同的选项来执行特定的操作。让我们以ls命令为例。ls命令列出文件夹的内容,对吗?这是正确的。ls命令带有一些命令行选项和标志。例如,您可以使用ls命令的-a标志列出文件夹中的所有内容(包括隐藏文件)。在这个简短的指南中,我们将看到如何允许用户通过sudo运行ls命令,但没有命令行选项或标志。我说清楚了吗?接下来让我展示如何做到这一点。防止使用sudo参数以root身份编辑/etc/sudoers文件:[root@Almalinux8CT~]#visudo添加以下行:user1ALL=(root)/usr/bin/ls""DenyCommandArgumentsWithSudo注意ls后的双引号在这里。双引号会屏蔽用户在给定命令(如ls命令)后输入的参数。在上面的命令中,user1可以以root身份运行ls命令,但不能使用ls命令的选项和标志。您可以选择其他命令进行尝试。保存文件并关闭它。现在,以user1身份登录系统,尝试以管理员身份运行ls命令,不添加任何选项:[user1@Almalinux8CT~]$sudo-urootls-a也许你会遇到To以下错误:Sorry,user不允许user1在Almalinux8CT上以root身份执行'/bin/ls-a'。但是您可以在不添加参数的情况下运行ls命令:[user1@Almalinux8CT~]$sudo-urootlsPreventCommandArgumentsWithSudoPreventallusersfromusingcommandarguments上面的示例向您展示了如何防止用户以管理员身份运行带有参数的命令.您要将规则应用于所有用户吗?这很容易!只需在/etc/sudoers文件中添加一行:ALLALL=(root)/usr/bin/ls""现在,系统中的所有用户都可以运行不带参数的ls命令。要恢复默认设置,只需删除最后的双引号,或删除整行。查看帮助手册以了解更多信息。$mansudoers结论在本指南中,我们学习了如何允许用户以管理员身份运行命令,但不添加任何命令参数。这限制了用户滥用某些命令行参数。
