[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

sudo权限设置的/etc/sudoers文件的编写简介

 

介绍

你好。我是系统解决方案部门的基础设施经理。
这是一个突然的问题,但是你们都使用 sudo

它用于使用 root 用户或其他用户权限执行命令,因此它可能是您在终端上工作时经常使用的命令。

但是,如果任何操作系统用户能够使用此命令,他们将能够编辑重要的配置文件(例如进程配置)或操作守护程序,从而产生安全风险。

因此,通常会在配置文件中调整“谁可以做什么、在哪里、做什么”的权限。

这次,我想重点讨论一下 sudo 权限设置文件“/etc/sudoers”的描述格式。
设置服务器时您可能有机会修改此文件。

你们都是以某种方式复制和粘贴吗?

通过了解描述方法,可以防止意外的发生,也可以用在更实用的方法上,所以请趁这个机会来看看。

“/etc/sudoers”的描述

“/etc/sudoers”文件中有几个默认条目,但让我们挑选一个。

根全部=(全部)全部

下面,我将根据这个描述添加一个解释。

最左边的“根”

您可以在此处指定谁拥有权限。

在本例中,我们指定授予“root”用户的权限。

如果您想确定一般用户的权限,请在此处输入用户名。

“ALL”位于“=”左侧

当在多个服务器上使用相同的设置时,这是哪个服务器的设置将反映该行中的规范。

如果您单独管理每台服务器上的 sudo 设置,则设置文件将始终应用于该服务器本身。
那么这种情况下,这个描述为“ALL”是没有问题的。

例外情况是使用目录服务等集中管理来自多个服务器的信息。

“=”右边,括号的内容

前提是sudo命令原本是一个“代表另一个用户或组进行操作并以该权限进行操作”的命令,而在未指定用户或组时“以root权限进行操作”是默认的。这只是一个动作。

此项描述哪些用户可以代表其他用户执行命令。

注意,上例中省略了括号的内容,但原来如(ALL:ALL)中,可以用“sudo -u”替换的用户在冒号的左边,而可以用“sudo -u”替换的用户在冒号的左边,替换为“sudo -g”在右侧指定组。

例如,在您想要授予用户执行只能以 root 权限执行的命令的权限时,

你是否可以成为普通用户(你可以成为更多用户)并不重要,因此目标通常被授予成为任何人的特权,包括root,例如(ALL)。

当然,如果明确指定(root)也没有问题。

*顺便说一句,如果省略“:ALL”部分,即括号的后半部分,则意味着“没有可以使用的组= sudo -g 无法使用。”

关于最右边的 ALL

指定允许哪些操作。

写下 ALL 意味着你可以做任何事情。

例如,如果你想只允许hoge用户重新启动Apache,则如下编写。

*注意命令必须写完整路径。路径可能不同,因此请使用which命令检查。 )

hoge ALL=(ALL:ALL) /usr/bin/systemctl 重新启动 httpd

 

上面的描述只允许您重新启动,所以如果您还想能够使用其他命令,请用逗号将它们连接起来并如下所示编写。

hoge ALL=(ALL:ALL) /usr/bin/systemctl 重新启动 httpd, /usr/bin/systemctl 状态 httpd

 

另一方面,您可以通过使用“!”编写描述来仅禁用特定命令,如下所示。

hoge ALL=(ALL:ALL) ALL, !/usr/bin/systemctl 重新启动 httpd, !/usr/bin/systemctl 状态 httpd

奖金

如果在可以指定用户的部分的开头添加“%”,则将指定一个组。

“/etc/sudoers”文件默认也有以下描述,正是因为这个描述体现了当用户被添加到wheel组时,他们获得了与root权限相同的权力。

%wheel 全部=(全部) 全部

概括

你怎么认为?

如果你正确配置 sudoers,当你创建用户时,你可以说“我只想让这个用户执行这个命令”,或者“我不想授予 root 权限,但我希望能够执行特定命令。”可以进行微调。

从安全角度来看,这是一个关键文件,因此在设置之前一定要了解其结构!

如果您觉得这篇文章有帮助,请点赞!
24
加载中...
24 票,平均:1.00 / 124
39,368
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

基础设施瓦舒伊人

隶属于系统解决方案部门。
我很喜欢它,每天都研究它,幸运的是,Beyond 捡到了它。
自从我开始考虑从眼镜换成隐形眼镜以来,已经九年了。