sudo super user do

警告
本文最后更新于 2023-10-22,文中内容可能已过时。

sudo super user do

Linux sudo 命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

使用权限:在 /etc/sudoers 中有出现的使用者。

sudo执行命令的流程

将当前用户切换到超级用户下,或切换到指定的用户下,然后以超级用户或其指定切换到的用户身份执行命令,执行完成后,直接退回到当前用户。

具体工作过程如下:

  1. 当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限

  2. 确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认

  3. 若密码输入成功,则开始执行sudo后续的命令

配置/etc/sudoers文件

参考文件:linux sudo 与 /etc/sudoer的配置

通过输入visudo编辑

在最后输入:

1
lk ALL=(ALL) NOPASSWD: ALL
  • lk:表示 lk 这个用户

  • ALL:所有的主机,

  • (ALL):表示你想在主机上用哪个用户来执行指令

  • NOPASSWD:不需要输入密码就能切换到用户

  • ALL:能够执行哪些指令,ALL 代表全部指令,你也可以写具体的指令

这个配置的意思就是,lk 用户可以在任意主机上不输入密码的情况下以任意用户执行任何指令

其中特别要注意别名。为了方便配置,我们一般都会对一些命令进行了分类,/etc/sudoers文件中的Cmnd_alias即为某些具有相同功能或者相同性质的命令取别名,即为分类。

##表示注释,#后才是别名的设置

别名为了规范一定大写。

别名大致分为四种:

  • Host_Alias:(主机别名)

  • Cmnd_Alias:(命令别名)

  • User_Alias:(用户别名,可以是用户,用户组)

  • Runas_Alias:(目的用户别名)

分别对应配置的几个部分:User_Alias Host_Alias=(Runas_Alias) Cmnd_Alias

一个简单的例子:

lk ALL=(ALL) NOPASSWD: NETWORKING:允许 lk 这个 user 在任何主机上在不输入密码的情况下以任何用户的方式执行 network 相关的命令。

配置好/etc/sudoers 之后即可开始使用 sudo 命令,用法很简单,在命令的前面加上 sudo 即可,比如 sudo chgrp 等等

0%