Bootstrap

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

在这里插入图片描述

sudo命令

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

sudo权限

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

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

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

在这里插入图片描述

sudo 命令介绍

基本格式

sudo 的基本格式如下:

sudo [选项] [命令]

常见选项包括:

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

使用示例

  • 以 root 身份运行命令:
    sudo apt update
    
  • 以另一个用户身份运行命令:
[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 权限的用户登录
sudo visudo
  • 打开的编辑器中找到合适的位置(通常在文件末尾)添加以下行
huawei ALL=(ALL) /bin/ls, /usr/bin/touch
  • 切换到huawei用户
 su - huawei
  • 测试去用户权限
[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
[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 可以让你执行高权限的操作,所以在使用时要特别小心,确保你知道自己在做什么,以免对系统造成不必要的损害。

;