RTau777

不断的学习,不断的充实

centos 7.8 sudo的使用

  在linux中,root用户具有一切事物的管理权限。但对于普通用户来说就没有那么容易了,普通用户需要操作不具备权限的命令时,除了切换到root用户,还有一个方法,那就是sudo

介绍

  在sudo于1980年前后被写出之前,一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。

  sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。

  由于不需要超级用户的密码,部分Unix系统甚至利用sudo使一般用户取代超级用户作为管理帐号,例如Ubuntu、Mac OS X等。

使用

root用户可在路径/etc/sudoers.d/下添加一个文件名为用户名的文件,使用vim在其中规定某个用户可使用什么身份,需要或不需要验证密码、执行或禁止什么操作,操作如下:

# 使用vim可以编辑一个不存在的文件,保存时会自动创建
vim /etc/sudoers.d/username

用户设置格式如下:

username ALL=(root) NOPASSWD:无需密码命令1,命令2,!禁止命令,PASSWD:需要密码命令1,命令2,!禁止命令

其中关于密码的规定可以不写,默认为需要密码,如下:

username ALL=(root) 需要密码命令1,命令2,!禁止命令

编辑完成后先按esc键退出编辑模式,再输入冒号(按shift + ;)进入命令模式,输入 wq! 强制保存即可。

真实案例

我把root执行nginx的权限下放给rtau,语句如下:

su
vim /etc/sudoers.d/rtau

# 允许rtau使用root权限执行nginx命令
rtau ALL=(root) /usr/bin/nginx

:wq!



如有错误,欢迎指出,谢谢

posted on 2021-07-05 21:24  RTau777  阅读(97)  评论(0编辑  收藏  举报

导航

Powered by: 博客园
Copyright © 2021 RTau