Linux学习笔记 | sudo命令的基本使用

sudo命令

sudo 命令是 Unix 和 Linux 系统中用于执行需要超级用户权限(即 root 权限)操作的工具。它允许系统管理员授予某些用户(或用户组)以 root 或其他指定用户的权限来运行特定命令,而无需知道 root 用户的密码。这种机制提高了系统的安全性和灵活性。

sudo权限

sudo 的权限配置主要通过 /etc/sudoers 文件进行管理。这个文件定义了哪些用户可以在何种条件下执行什么命令。直接编辑这个文件是有风险的,因为错误的语法可能导致系统无法正常使用 sudo 功能。因此,推荐使用 visudo 命令来编辑该文件,因为它会在保存前检查语法错误。

/etc/sudoers 文件中,你可以设置不同的规则,比如:

用户名 被管理主机的地址 可使用的身份 授权命令(绝对路径) 说明
username ALL ALL ALL 允许用户 username 作为任何用户在任何地方执行任何命令。
username ALL ALL /usr/sbin/reboot, /usr/sbin/shutdown 允许用户 username 执行 /usr/sbin/reboot/usr/sbin/shutdown 命令。
huawei ALL ALL /bin/ls, /usr/bin/touch 允许用户 huawei 执行 lstouch 命令。
  • 用户名 :这是你希望赋予 sudo 权限的用户名。
  • 被管理主机的地址 :指定用户可以在哪些主机上使用 sudoALL 表示所有主机。
  • 可使用的身份 :指定用户可以以哪个用户的身份执行命令。ALL 表示任何用户,包括 root。
  • 授权命令(绝对路径):指定用户可以执行的具体命令。多个命令用逗号分隔。
bash 复制代码
 visudo

sudo 命令介绍

基本格式

sudo 的基本格式如下:

bash 复制代码
sudo [选项] [命令]

常见选项包括:

  • -u username:指定要以哪个用户的身份执行命令,默认为 root。
  • -l (小写 L):列出当前用户可用的 sudo 权限。
  • -v:验证 sudo 时间戳,更新时间戳但不执行命令。
  • -k:使 sudo 忘记时间戳,下次执行 sudo 需要重新输入密码。
  • -s-i:启动一个 shell 会话,在其中拥有超级用户权限。
  • -H:设置 HOME 环境变量为目标用户的 home 目录。

使用示例

  • 以 root 身份运行命令:

    bash 复制代码
    sudo apt update
  • 以另一个用户身份运行命令:

bash 复制代码
[root@cloud ~]# sudo -u admin touch /home/admin//ab.txt
[root@cloud ~]# ll /home/admin/ab.txt
-rw-r--r-- 1 admin admin 0 Oct 24 22:34 /home/admin/ab.txt

设置普通用户权限

  • 以 root 用户或具有 sudo 权限的用户登录
bash 复制代码
sudo visudo
  • 打开的编辑器中找到合适的位置(通常在文件末尾)添加以下行
bash 复制代码
huawei ALL=(ALL) /bin/ls, /usr/bin/touch
  • 切换到huawei用户
bash 复制代码
 su - huawei
  • 测试去用户权限
bash 复制代码
[huawei@cloud ~]$ sudo ls /etc/passwd

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for huawei:
/etc/passwd
bash 复制代码
[huawei@cloud ~]$ sudo touch /root/aa.txt
[huawei@cloud ~]$ sudo ls /root/aa.txt
/root/aa.txt
[huawei@cloud ~]$ sudo ls -l /root/aa.txt
-rw-r--r-- 1 root root 0 Oct 24 22:45 /root/aa.txt

提示和注意事项

  • 密码提示 :首次在一个终端会话中使用 sudo 时,系统会要求你输入当前用户的密码,而不是 root 密码。之后的一段时间内(默认是 15 分钟),你可以无需再次输入密码就使用 sudo

  • 权限配置sudo 的权限是由 /etc/sudoers 文件控制的,通常不应该直接编辑此文件,而是应该使用 visudo 命令,它会在保存时检查语法错误。

  • 日志记录sudo 通常会记录所有使用它的尝试到日志文件中,这对于安全审计很有帮助。

  • 谨慎使用 :由于 sudo 可以让你执行高权限的操作,所以在使用时要特别小心,确保你知道自己在做什么,以免对系统造成不必要的损害。

相关推荐
就爱敲代码16 分钟前
怎么理解ES6 Proxy
1024程序员节
憧憬一下16 分钟前
input子系统的框架和重要数据结构详解
arm开发·嵌入式·c/c++·1024程序员节·linux驱动开发
三日看尽长安花26 分钟前
【Tableau】
1024程序员节
sswithyou1 小时前
Linux的调度算法
1024程序员节
武子康1 小时前
大数据-187 Elasticsearch - ELK 家族 Logstash Filter 插件 使用详解
大数据·数据结构·elk·elasticsearch·搜索引擎·全文检索·1024程序员节
互联网杂货铺1 小时前
Python测试框架—pytest详解
自动化测试·软件测试·python·测试工具·测试用例·pytest·1024程序员节
GDAL2 小时前
JavaScript正则表达式利器:exec()方法深度解析与应用实例
正则表达式·1024程序员节
2401_857610032 小时前
植物健康,Spring Boot来助力
1024程序员节
阿乾之铭2 小时前
Spring Boot框架中的IO
java·spring boot·log4j·1024程序员节
百流2 小时前
Pyspark中pyspark.sql.functions常用方法(4)
1024程序员节