@geekpi
https://linux.cn/article-15106-1.html
This commit is contained in:
Xingyu Wang 2022-10-04 22:41:53 +08:00
parent ff4b7a11b7
commit 29bc079cc2

View File

@ -3,33 +3,28 @@
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "Donkey-Hao"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-15106-1.html"
如何在 Linux 命令行中避免使用 Sudo 参数
如何在 sudo 运行的命令中防止使用参数
======
允许用户运行命令,但不带 `sudo` 命令参数。
在之前的文章,我们学习了如何 **[通过 sudo 以 root 身份运行目录中的命令][1]**。在这篇指南中,我们将明白如何在 Linux 中 **避免使用 Sudo 参数**。即我们允许一个用户运行特权级命令,但是 **不带 sudo 参数**
![](https://img.linux.net.cn/data/attachment/album/202210/04/224059k9jl5kzhlhw5d98j.jpg)
#### 目录
> 允许用户使用 `sudo` 运行命令,但不带命令行参数。
1. 背景介绍
2. 避免使用 sudo 参数
3. 避免所有用户使用 sudo 参数
4. 总结
在之前的文章,我们学习了如何 [通过 sudo 以 root 身份运行目录中的命令][1]。在这篇指南中,我们将学习如何在 Linux 中 **防止 sudo 运行的命令使用参数**。即我们允许一个用户使用 `sudo` 运行特权级命令,但是 **不带命令行参数**
### 背景介绍
你已经知道了,每个命令执行一个特定操作有不同的选项。让我们以 **"ls"** 命令为例。
你已经知道了,每个命令执行一个特定操作有不同的选项。让我们以 `ls` 命令为例。
`ls` 命令会罗列文件夹中的内容,对吗?没错。`ls` 命令附带了一些命令行选项和标志。例如,你可以用 `ls` 命令的 `-a` 标志罗列文件夹中的所有内容(包括隐藏文件)。
在这份简要指南中,我们将明白如何允许用户通过 `sudo` 运行 `ls` 命令,但是不使用命令行选项或者标志。我讲清楚了吗?接下来让我来展示一下如何做到这点。
在这份简要指南中,我们将明白如何允许用户通过 `sudo` 运行 `ls` 命令,但是不使用命令行选项或者标志。我讲清楚了吗?接下来让我来展示一下如何做到这点。
### 避免使用 sudo 参数
### 防止使用 sudo 参数
`root` 用户身份编辑 `/etc/sudoers` 文件:
@ -45,9 +40,9 @@ user1 ALL=(root) /usr/bin/ls ""
![Deny Command Arguments With Sudo][2]
要注意这里 `ls` 之后的 **双引号**。双引号会屏蔽用户在给定命令之后输入的参数(比如 `ls` 命令)。在上面的命令中,“用户 1 ”能够以 `root` 身份运行 `ls` 命令,但是不能使用 `ls` 命令的选项以及标志。你可以选择其他的指令进行尝试。保存该文件并关闭。
要注意这里 `ls` 之后的 **双引号**。双引号会屏蔽用户在给定命令之后输入的参数(比如 `ls` 命令)。在上面的命令中,`user1` 能够以 `root` 身份运行 `ls` 命令,但是不能使用 `ls` 命令的选项以及标志。你可以选择其他的指令进行尝试。保存该文件并关闭。
现在,以“用户 1 ”的身份登陆系统,并尝试以管理员身份运行 `ls` 命令,不要添加任何选项:
现在,以 `user1` 的身份登录系统,并尝试以管理员身份运行 `ls` 命令,不要添加任何选项:
```
[user1@Almalinux8CT ~]$ sudo -u root ls -a
@ -71,7 +66,6 @@ Sorry, user user1 is not allowed to execute '/bin/ls -a' as root on Almalinux8CT
上述例子像你展示了如何阻止用户以管理员身份运行带有参数的命令。你是否想要对所有用户应用该规则呢?很简单!只需要在 `/etc/sudoers` 文件中添加一行:
```
ALL ALL=(root) /usr/bin/ls ""
```
@ -88,7 +82,7 @@ $ man sudoers
### 结论
在这份指南中,我们学习了如何允许用户以管理员身份运行命令,但是不能添加任何令参数。这样可以限制用户误用一些命令行参数。
在这份指南中,我们学习了如何允许用户以管理员身份运行命令,但是不能添加任何令参数。这样可以限制用户误用一些命令行参数。
--------------------------------------------------------------------------------
@ -97,7 +91,7 @@ via: https://ostechnix.com/prevent-command-arguments-with-sudo/
作者:[sk][a]
选题:[lkxed][b]
译者:[Donkey-Hao](https://github.com/Donkey-Hao)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出