sqlserver2000给账户授予所有的权限_CentOS7 - 使用sudo提升权限

使用sudo提升权限

root账号是Linux的上帝账号,它可以执行很多命令。由于安全原因,日常工作中我们最好使用普通用户,仅仅是在有必要的时候才使用管理员权限账户。同样,root密码的保密工作一定要做好;越多的人知道密码,越有可能遭受泄密。我想到了本杰明·富兰克林的一句话:三个人可以保守一个密码,如果另外两个挂了的话。

如果多个管理员被安排来管理一个系统,保守root密码会很难。sudo通过允许普通用户执行管理员全新对这个问题进行了解决。每个普通用户通过附加sudo权限,可以执行管理员的任务,而root密码也做到了保密。

准备

准备一个CentOS系统,root权限登录。两个普通用户账户(使用useradd命令配置)。

步骤

最直接允许普通用户使用sudo的方法是将普通用户加入wheel组。如下命令:

  • 使用usermod命令,将用户加入到wheel组:
usermod -a -G wheel tboronczyk
  • 检查组状态是否更新。wheel应该会在tboronczytk组列表中的一个:
groups tboronczyk
  • 另外一个配置sudo权限的方法是配置sudoers策略(指定了哪些用户可以使用sudo,以及使用机制)。我们可以使用如下的命令做到。
  • 在/etc/sudoers.d目录下,创建一个新的文件,可以以用户名来看:
touch /etc/sudoers.d/tboronczyk
  • 打开刚刚新建的文件,加入下面的内容:
tboronczyk ALL = ALL

它是如何工作的

一个普通用户在使用sudo的前提是,必须在sudoers策略中指定。最简单的测试方法是直接sudo 执行命令试一下,看看有没有相关sudo权限。本篇文章介绍了两个路径来完成这个:通过将用户加入到wheel组(已经在sudoers策略中配置),或者直接给账户添加sudoers策略。

在第一个方法里,usermod命令附加给了用户wheel组。-G参数制定了组的名字,-a 的意思是本命令是将用户添加到组里面的。

usermod -a -G wheel tboronczyk

第二个方法是在sudoers.d的目录下,建立一个配置文件。我们也可以直接在/etc/sudoers配置文件里面添加内容。当然,在sudoers.d目录下分别为每个需要sudo权限用户见一个单独文件,会容易管理一些,尤其是当有大量的用户需要配置的时候。

这两种方法都允许用户使用 sudo 来执行他们通常没有足够权限的命令。例如:

sudo umount /media

用户第一次调用 sudo 时, 会显示一条消息, 提醒他们对新发现的权力负责。用户必须提供其密码以验证其身份;验证从上次调用缓存 5分钟, 作为对恶意用户的额外保护, 恶意用户可能会走到不小心离开登录状态的终端。

sqlserver2000给账户授予所有的权限_CentOS7 - 使用sudo提升权限_第1张图片

sudo 提醒用户, 用强大的力量来伟大的负责任

Sudoers 策略具有足够的灵活性, 允许用户帐户执行某些命令, 而不是授予全权访问权限。回想一下我们的无特权用户帐户的配置指令:

tboronczyk ALL = ALL

指定用户名, 然后将 ALL 别名分配给 ALL。正如您可以通过查看此选项来确定的, ALL 是表示所有命令的预定义别名。我们可以将给定用户的别名重新定义为允许的命令列表:

tboronczyk ALL = /bin/mount /bin/umount

现在, 该帐户可以调用它通常有权访问的任何命令, 但只有具有提升权限的 mount 和 umount 命令 (假设该帐户不是轮子的成员)。

小提示

你是否厌倦了在常用的管理命令之前键入 sudo?您可以为更流畅的命令行体验创建别名。假设您的无特权帐户被允许使用装载和 umount 命令与 sudo。将以下行添加到 ~/. bashrc 文件中将允许您在不显式键入 sudo 的情况下调用它们的命令:

alias mount sudo /bin/mountalias umount sudo /bin/umount

策略中的多个指令可以应用于一个帐户, 在这种情况下, 它们是额外应用的, 首先是最后一个。要在操作中看到这一点, 假设一个帐户已经在wheel组中按分配使用了完整的可接受用法。默认情况下, 用户需要提供密码才能执行命令。我们可以放宽此要求, 并允许用户在没有密码的情况下使用 ls 显示受限制目录的内容:

tboronczyk ALL = NOPASSWD: /bin/ls

首先应用wheel的策略, 建立默认行为。然后, 我们的新指令使用 NOPASDD 标记授予用户对 lscommand 的未经身份验证的访问权限。用户仍需要为安装和 passwd 等命令提供密码, 但不需要提供密码来列出受限制的目录。

See also

Refer to the following resources for more information on working with sudo to temporarily elevate an account's privileges:

  • The sudo man page (man 8 sudo)
  • The sudoers man page (man 5 sudoers)
  • Code Snipcademy: Using sudo and su and their differences (https://code.snipcademy.com/tutorials/linux-command-line/permissions/sudo)

你可能感兴趣的:(sudoers,用户权限配置,sudo命令)