Redian新闻
>
如何在 sudo 运行的命令中防止使用参数 | Linux 中国

如何在 sudo 运行的命令中防止使用参数 | Linux 中国

科技
 
导读:允许用户使用 sudo 运行命令,但不带命令行参数。                               
本文字数:1565,阅读时长大约:2分钟

允许用户使用 sudo 运行命令,但不带命令行参数。

在之前的文章,我们学习了如何 通过 sudo 以 root 身份运行目录中的命令🔗 ostechnix.com。在这篇指南中,我们将学习如何在 Linux 中 防止 sudo 运行的命令使用参数。即我们允许一个用户使用 sudo 运行特权级命令,但是 不带命令行参数

背景介绍

你已经知道了,每个命令执行一个特定操作有不同的选项。让我们以 ls 命令为例。

ls 命令会罗列文件夹中的内容,对吗?没错。ls 命令附带了一些命令行选项和标志。例如,你可以用 ls 命令的 -a 标志罗列文件夹中的所有内容(包括隐藏文件)。

在这份简要指南中,我们将明白如何允许用户通过 sudo 运行 ls 命令,但是不能使用命令行选项或者标志。我讲清楚了吗?接下来让我来展示一下如何做到这点。

防止使用 sudo 参数

以 root 用户身份编辑 /etc/sudoers 文件:

  1. [root@Almalinux8CT ~]# visudo

添加下面一行:

  1. user1 ALL=(root) /usr/bin/ls ""

Deny Command Arguments With Sudo

要注意这里 ls 之后的 双引号。双引号会屏蔽用户在给定命令之后输入的参数(比如 ls 命令)。在上面的命令中,user1 能够以 root 身份运行 ls 命令,但是不能使用 ls 命令的选项以及标志。你可以选择其他的指令进行尝试。保存该文件并关闭。

现在,以 user1 的身份登录系统,并尝试以管理员身份运行 ls 命令,不要添加任何选项:

  1. [user1@Almalinux8CT ~]$ sudo -u root ls -a

或许你会遇到下面的报错:

  1. Sorry, user user1 is not allowed to execute '/bin/ls -a' as root on Almalinux8CT.

不过你可以不添加参数来运行 ls 命令:

  1. [user1@Almalinux8CT ~]$ sudo -u root ls

Prevent Command Arguments With Sudo

防止所有用户使用命令参数

上述例子像你展示了如何阻止用户以管理员身份运行带有参数的命令。你是否想要对所有用户应用该规则呢?很简单!只需要在 /etc/sudoers 文件中添加一行:

  1. ALL ALL=(root) /usr/bin/ls ""

现在,系统中的所有用户都可以运行不带参数的 ls 命令。

想要恢复默认设置,只需要删除最后的双引号,或者删除整行。

查看帮助手册,了解更多。

  1. $ man sudoers

结论

在这份指南中,我们学习了如何允许用户以管理员身份运行命令,但是不能添加任何命令参数。这样可以限制用户误用一些命令行参数。


via: https://ostechnix.com/prevent-command-arguments-with-sudo/

作者:sk 选题:lkxed 译者:Donkey-Hao 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


LCTT 译者 :Donkey
🌟🌟🌟
翻译: 23.0 篇
|
贡献: 117 天
2022-06-09
2022-10-04
https://linux.cn/lctt/Donkey-Hao
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
如何在 Arch Linux 中启用 Snap 支持 | Linux 中国使用这个多功能的 Linux 命令转换音频文件 | Linux 中国你应该知道的 22 个基本的 Linux 网络命令 | Linux 中国硬核观察 #790 Canonical 在 apt 命令中为其 Ubuntu Pro 打广告使用 PSCP 将文件和文件夹从 Windows 传输到 Linux | Linux 中国10 大可以摧毁你的 Linux 的命令 | Linux 中国如何使用 Linux sed 命令自动进行文件编辑 | Linux 中国通过 SSH 在远程 Linux 系统上执行命令 | Linux 中国如何在 Linux 中确定运行的是那种初始化系统 | Linux 中国我家的窗户和窗帘如何在 Ubuntu 等 Linux 中安装 Python 3.11 | Linux 中国如何在 Linux 中更改 GRUB 主题 | Linux 中国12 个对新手最重要的 Linux 命令 | Linux 中国快游记二如何在最小安装的 CentOS、RHEL、Rocky Linux 中设置互联网 | Linux 中国Linux inxi 命令的 3 种使用方法 | Linux 中国如何在 Ubuntu Linux 上更新谷歌 Chrome | Linux 中国我如何使用现场 USB 设备恢复我的 Linux 系统 | Linux 中国如何在 Ubuntu 和其他 Linux 中检查 CPU 和硬盘温度 | Linux 中国一缕曙光今犹在,确认反转看秋冬?如何在 Linux 中实时监控日志文件(桌面和服务器) | Linux 中国周末愉快 农家乐如何在 Silverblue 上变基到 Fedora Linux 37 | Linux 中国在 Linux 中如何从命令行查找默认网关的 IP 地址 | Linux 中国如何在 Ubuntu 和其他相关 Linux 中安装 Python 3.10 | Linux 中国在 Mac 上运行 Linux 更进一步,Apple SoC CPUFreq 驱动即将并入 Linux 主线内核如何在 Arch Linux 中安装 Cinnamon 桌面 | Linux 中国如何在 Arch Linux 中安装 OpenOffice(新手指南) | Linux 中国“作弊”:只需要知道这一个 Linux 命令就够了 | Linux 中国如何在 Arch Linux 中安装 elementary OS 的 Pantheon 桌面 | Linux 中国如何在 Linux 中使用媒体传输协议访问安卓设备的内部存储和 SD 卡 | Linux 中国Tuxedo 已对所有用户开放基于 Ubuntu 的 TUXEDO OS | Linux 中国在 Linux 中使用 Etcher 创建可启动 USB – 下载和使用指南 | Linux 中国使用 Podman Desktop 在 Fedora Linux 上管理容器 | Linux 中国“文化挪用”在中国(多图)
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。