Bootstrap

Linux---sudo命令

文章目录


一.sudo命令简介

sudo 命令全称“SuperUser Do”,是Linux系统中的一个命令能够使普通用户以超级用户身份去执行某些命令。

二·.sudo 命令的特点

  • sudo能够授权指定用户在指定主机上运行某些命令,若未授权用户尝试使用sudo会提示联系管理员。
  • sudo可以提供日志,记录每个用户使用sudo操作,以便于日后审计
  • sudo为系统管理员提供配置文件,允许系统管理员集中的管理用户的使用权限和主机

三.sudo 配置文件解析

  • 配置文件:/etc/sudoers
  • 日志文件:/var/log/secure
  • 5分钟内使用sudo命令运行参数无需再次输入密码

配置文件解析:

1.按照下面的格式编辑可以使被授权用户以root用户的身份运行任何命令

## Allow root to run any commands anywhere
被授权用户    ALL=(ALL)       ALL

2. 将被授权用户加入wheel组不仅具备步骤1中的功能,且大大减少被授权用户过多时的配置量

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

3. 单独指定被授权用户能够以root身份运行的命令

## Allow root to run any commands anywhere
root    ALL=(ALL)      二进制文件位置

4.指定被授权用户以指定身份运行命令

## Allow root to run any commands anywhere
root    ALL=(指定用户)      ALL

5.查看被授权用户能够执行的命令 

sudo -l

四.sudo 命令授权配置

方式一:更改配置文件给用户命令授权

下面以最常见的命令 “ls” 为例,未授权之前无法通过sudo命令执行ls命令:

[zt@localhost1 root]$ ls /root
ls: 无法打开目录 '/root': 权限不够
[zt@localhost1 root]$ sudo ls /root

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] zt 的密码:
zt 不在 sudoers 文件中。此事将被报告。

1.模仿步骤一使zt用户能够以root用户的身份执行任何命令:

 授权后zt用户即可执行ls命令:

2.模仿步骤二将zt用户加入 wheel 组同样具备步骤一的功能:

3.单独指定被授权用户能够以root身份运行的命令

 完成授权后zt用户已无权限执行ls命令,仅可执行useradd命令

 方式二:在目录/etc/sudoers.d/下创建命令授权文件

        这样做的好处是便于管理 sudo 权限相关的配置,不需要把所有配置都集中在 /etc/sudoers 文件中。比如,当有新的用户或组需要特定的sudo权限时,可以在 /etc/sudoers.d/ 目录下创建新的配置文件来定义这些权限,让权限配置更加模块化、清晰。

        例如,如果你想让用户 user1 在所有主机( ALL )上能以超级用户( root )身份运行 ls 和 cat 命令,在 /etc/sudoers.d/ 下创建一个文件(假设为 user1_sudo ),内容可以写为 user1 ALL=(root) /bin/ls, /bin/cat 。

图片中,我们在/etc/sudoers.d目录下创建了zt用户的命令授权文件zt_sudo(内容如图所示),此时zt用户可以通过sudo 授权使用ls 命令查看/root目录内容,下面删除授权文件试试:

 当命令授权文件被删除后,zt用户将不具备sudo 命令授权ls命令查看/root目录内容。


总结

;