sudo控制权限简单用法介绍
为了安全及管理的方便,可将需要用root权限的用户加入到sudo管理,用root的权限来管理系统。利用sudo控制用户对系统命令的使用权限。
普通用户可以查看,但不能删除:
但是在/tmp公共环境下可以搞事情:
下面我们授予bqh1用户root权限。
执行如下visudo 或者 vi /etc/sudoers命令,即可打开sudo的配置文件进行编辑:
可以vi编辑器的功能:输入98jj
现在我们用普通用户创建一个用户:
如果不加sudo的话,相当于调兵没带虎符。
如何只授权于某些命令呢?例如:(touch、useradd、mkdir、rm)
注意:授权的命令得写全路径,全路径不知道的情况下可以用which查。
执行命令每次都让输入密码,如何屏蔽:
看效果,并没有提示输入密码:
案例:
定义一个管理员,别名admins,在server机器可以切换的角色有qhjs,能够拥有adm和user命令权限,不希望输入密码;再定义一个初级管理员,拥有user权限,不需要密码,具体配置如下:
执行如下visudo 或者 vi /etc/sudoers命令,即可打开sudo的配置文件进行编辑:
可以vi编辑器的功能:输入98jj查看当前配置情况。
###################sudo 格式 ###################
#root all=(all) all
#user_alias host_alias = runas_alias cmnd_alias
##################by sudo text#####################
定义用户或用户组别名:
user_alias admins = bqh, %home
user_alias chujiadmin=jyw
定义主机别名:
host_alias servers = bqh-01, abchost
定义命令别名:
cmnd_alias user = /usr/sbin/useradd
cmnd_alias adm = /bin/rm
定义切换角色别名:
runas_alias qhjs = root
runas_alias qhjs1 = bqh
###################################################
定义用户规则:
admins servers = (qhjs) nopasswd:adm, user
chujiadmin servers = (qhjs) nopasswd:user
我们切换到bqh用户下查看拥有哪些权限:
我们切换到jyw用户下查看拥有哪些权限:
我们添加新用户并加入到/home组下,再查看权限有哪些:
什么情况下使用上述别名:
大部分用all,工作中一般有多个系统用户,需要分类,分层次管理用户的时候才用定义。
sudo配置文件小结:
授权格则中的所有all字符串必须大写字母。
一行命令内容超长,可以用“\”斜线换行。
“!”叹号表示非,就是命令取反的一审,即禁止执行的命令。
命令的顺序是从后向前,即把禁止的命令写到后面,如:/usr/sbin/*,!/usr/sbin/visudo
推荐阅读
-
Laravel5.1框架自带权限控制系统 ACL用法分析
-
Linux编程 14 文件权限(用户列表passwd,用户控制shadow,useradd模板与useradd命令参数介绍)
-
MySQL中decimal类型用法的简单介绍
-
Node.js console控制台简单用法分析
-
thinkPHP5框架auth权限控制类与用法示例
-
Laravel5.1框架自带权限控制系统 ACL用法分析
-
sudo控制权限简单用法介绍
-
浅谈基于SpringBoot实现一个简单的权限控制注解
-
CI框架中通过hook的方式实现简单的权限控制
-
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 最简单用法 | 一行代码搞定权限申请 | 推荐用法 )