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 可以让你执行高权限的操作,所以在使用时要特别小心,确保你知道自己在做什么,以免对系统造成不必要的损害。

相关推荐
fangzhanpeng1682 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心4 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552710 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552710 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝12 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552712 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552712 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552715 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552715 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552716 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节