网站首页 > 技术文章 正文
类别 | 要求、约定或使用的软件版本 |
系统 | 任何 Linux 发行版(Ubuntu、Fedora、Debian 等) |
软件 | 已安装 Sudo 软件包 |
其他 | 访问终端 |
惯例 | # – 要求给定的 linux 命令以 root 权限直接作为 root 用户执行或使用sudo命令 |
开始使用 Sudo
使用 sudo 命令允许允许的用户以超级用户或其他用户的身份执行命令,从而通过限制 root 访问来增强安全性。要开始有效地使用 sudo,您首先需要确保它在 Linux 系统上正确安装和配置。按照以下步骤验证安装并了解 sudo 配置。
检查是否已安装sudo:在使用sudo之前,必须确认系统上已安装它。可以通过检查系统路径中是否存在sudo可执行文件来执行此操作。打开终端并输入以下命令:
- $ which sudo
此命令将显示 sudo 可执行文件的路径(如果存在),表明 sudo 已安装。例如,/usr/bin/sudo如果 sudo 安装在常用位置,则可能会返回。
- $sudo -V
此命令将输出 sudo 命令的版本,帮助您确保它是最新的。此信息可用于故障排除和验证您的系统是否满足特定的安全标准。
如果未安装 sudo,则需要安装它。您可以使用特定于您的 Linux 发行版的包管理系统来安装 sudo。以下是流行发行版的命令。
对于基于 Debian 的系统(例如 Ubuntu):
- # apt-get install sudo
对于基于 Red Hat 的系统(例如 Fedora):
- # yum install sudo
找到 sudoers 文件:sudoers 文件控制谁可以在哪些计算机上以及以哪些用户身份运行哪些命令。了解该文件的位置并确保它具有正确的权限设置以维护系统安全至关重要。默认情况下,sudoers 文件位于/etc/sudoers.您可以使用以下命令验证其位置和权限:
$ ls -l /etc/sudoers
此命令列出 sudoers 文件及其权限。通常,应将权限设置为只有 root 具有读写访问权限(例如-r--r-----),以确保不会进行未经授权的更改。
重要的是不要使用常规文本编辑器直接编辑 sudoers 文件。相反,请使用该visudo命令,该命令会锁定 sudoers 文件,防止同时进行多个编辑,并执行语法检查以防止配置错误阻止 sudo 操作:
# visudo
Visudo 在安全编辑器中打开 sudoers 文件,并在保存任何更改之前检查语法错误,这有助于防止任何可能锁定管理访问权限的错误配置。
确认安装并找到 sudoers 文件后,您就可以根据需要配置 sudo 并开始使用它来安全地管理管理任务。
配置Sudo权限
了解如何配置 sudo 权限对于系统安全和高效管理至关重要。sudoers 文件控制这些权限,允许指定用户以其他用户(通常是超级用户)的权限执行命令。以下是 10 个常见的 sudo 配置示例,可满足 Linux 环境中的各种需求。
授予单个用户 sudo 访问权限:要允许用户执行 sudo 下的所有命令,您可以授予他们完整的 sudo 权限。这通常用于管理员。
- john ALL=(ALL) ALL
行允许任何主机上的用户“john”以任何用户身份执行任何命令。
无需密码即可授予 sudo 访问权限:有时,对于自动化任务,您可能希望允许用户在没有密码提示的情况下执行命令。
- john ALL=(ALL) NOPASSWD: ALL
此配置允许“john”以任何用户身份在任何主机上执行任何命令,而不会提示输入密码。
限制对特定命令的 sudo 访问:限制对特定命令的 sudo 访问可以最大限度地减少用户帐户遭到泄露时的潜在损害,从而增强安全性。
- lisa ALL=(ALL) /usr/bin/apt-get, /usr/bin/systemctl
这允许“lisa”在任何机器上仅以 root 身份运行 apt-get 和 systemctl 命令。
授予特定目录的 sudo 访问权限:授予在特定目录中运行命令的权限对于脚本管理或维护任务非常有用。
tom ALL=(ALL) NOPASSWD: /usr/local/scripts/*
此行允许“tom”执行位于“/usr/local/scripts”目录中的任何命令,而无需密码。
配置 sudo 超时:默认情况下,sudo 会话持续一定时间。您可以根据需要延长此持续时间。
Defaults:jane timestamp_timeout=30
这会将用户“jane”的 sudo 超时设置为 30 分钟,这意味着一旦通过身份验证,“jane”将不需要在此期间重新输入 sudo 命令的密码。
允许组进行 sudo 访问:如果多个用户需要相同的 sudo 权限,则配置组比单独配置每个用户更有效。
- %admins ALL=(ALL) ALL
这将授予“admins”组的所有成员在任何计算机上的完全 sudo 访问权限。
禁止对特定命令进行 sudo 访问:为了增强安全性,您可能需要明确禁止通过 sudo 使用某些命令。
- john ALL=(ALL) ALL, !/usr/bin/vim
此配置允许“john”使用除“/usr/bin/vim”之外的所有命令。
为 visudo 设置默认编辑器:您可以指定使用 visudo 编辑 sudoers 文件时使用的默认编辑器,以确保一致性和易用性。
- Defaults editor=/usr/bin/nano
这将 nano 设置为 visudo 的默认编辑器。
记录所有 sudo 命令:出于安全和审核目的,您可能需要记录系统上执行的所有 sudo 命令。
- Defaults log_output
此指令将 sudo 配置为将 sudo 下运行的所有命令的输出记录到系统日志中。
sudo 需要 tty:sudo 命令需要 tty 可以帮助防止自动化脚本运行可能有害的命令。
- Defaults requiretty
此设置强制用户登录真实或伪终端才能使用 sudo。
这些配置中的每一个都可以使用 visudo 命令添加到 sudoers 文件中。始终使用 visudo 编辑 sudoers 文件以避免语法错误和潜在的安全问题。
结论
本指南涵盖了检查 sudo 安装、使用 sudo 执行命令以及设置无密码 sudo 访问的基础知识。关于 sudo 还有很多东西需要了解,您可以通过查看手册页继续探索它的功能:
man sudo
man sudoers
猜你喜欢
- 2024-11-04 /etc/passwd格式说明(etcpasswd 详解)
- 2024-11-04 centos7关闭防火墙firewalld 绝对不能在服务器上执行命令
- 2024-11-04 Linux系统搭建NFS网络文件系统,实现文件共享
- 2024-11-04 Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
- 2024-11-04 「神马课堂」Linux操作系统中主DNS服务器的配置(基于CentOS 7)
- 2024-11-04 Linux命令笔记-01(linux命令教程)
- 2024-11-04 Linux更改ssh端口的详细教程(提升系统安全)
- 2024-11-04 如何加固Linux系统?8种操作示例(linux主机加固)
- 2024-11-04 如何解决 Open /etc/postfix/main.cf: Permission denied ?
- 2024-11-04 Linux服务管理之Systemd配置详解,呕心沥血,匠心之作
- 最近发表
-
- 使用Knative部署基于Spring Native的微服务
- 阿里p7大佬首次分享Spring Cloud学习笔记,带你从0搭建微服务
- ElasticSearch进阶篇之搞定在SpringBoot项目中的实战应用
- SpringCloud微服务架构实战:类目管理微服务开发
- SpringBoot+SpringCloud题目整理
- 《github精选系列》——SpringBoot 全家桶
- Springboot2.0学习2 超详细创建restful服务步骤
- SpringCloud系列:多模块聚合工程基本环境搭建「1」
- Spring Cloud Consul快速入门Demo
- Spring Cloud Contract快速入门Demo
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)