当前位置: 首页 > news >正文

/etc/sudoer文件配置简析

参考:

http://blog.chinaunix.net/uid-26642180-id-3962245.html

 

# User privilege specification

root    ALL=(ALL) ALL

# Allow members of group sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

 

以上是我的Ubuntu10.04的默认/etc/sudoers文件。"#"开头的都是注释可以忽略。

首先用户需要转换成根用户并使用visudo命令打开/etc/sudoers文件。

讲解:root    ALL=(ALL) ALL

root表示被授权的用户,这里是根用户;

第一个ALL表示所有计算机;

第二个ALL表示所有用户;

第三个ALL表示所有命令;

全句的意思是:授权根用户在所有计算机上以所有用户的身份运行所有文件。

%admin ALL=(ALL) ALL同上面一样,只不过被授权的成了admin这个组。

 

通用格式

/etc/sudoers的通用格式为:

user  host  run_as  command

user:一位或几位用户,在/etc/group中可以用一个%代替它,组对象的名称一定要用百分号%开头。

host:一个或几个主机名;

run_as:作为哪个用户运行,常见选项是root和ALL

command:想让用户或组运行的一个或几个根级别命令。

 

例如:

hans   ALL=(root)   useradd,userdel

授权hans用户在所有计算机上以root身份运行useradd,userdel命令。

%smith  ALL=(ALL)  NOPASSWD:useradd,userdel

授权smith组全部成员在所有计算机上以所有用户的身份运行useradd,userdel命令;且运行时不必输入密码。

 

需要注意的是,当我们为用户定义可以运行的命令时,必须使用完整的命令路径。这样做是完全出于安全的考虑,如果我们给出的命令只是简单的userad 而非 /usr/sbin/useradd,那么用户有可能创建一个他自己的脚本,也叫做userad,然后放在它的本地路径中,如此一来他就能够通过这个名为 useradd的本地脚本,作为root来执行任何他想要的命令了。这是相当危险的!

相关文章:

  • 通过ipmitool监控机房内服务器温度
  • 使用vxsim(一)
  • linux系统学习第九天-工程师技术
  • Windows防火墙开启ping
  • 不要在头文件中使用 using namespace std;
  • MYSQL 动态变量赋值不对的情况
  • Innobackup 在从库上做增量备份
  • nginx
  • paip.mysql 性能跟iops的以及硬盘缓存的关系
  • C#运行时的相互关系
  • ubifs笔记
  • OSI七层模型@year12
  • TopCoder - TCHS SRM 1 答案 及 代码
  • 洛谷 P1004 方格取数 【多线程DP/四维DP/】
  • 悟道一位IT高管20年的职场心经笔记
  • JS 中的深拷贝与浅拷贝
  • [deviceone开发]-do_Webview的基本示例
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android开源项目规范总结
  • Android系统模拟器绘制实现概述
  • Docker容器管理
  • Flannel解读
  • JS题目及答案整理
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • TCP拥塞控制
  • Unix命令
  • Vultr 教程目录
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 构建二叉树进行数值数组的去重及优化
  • 警报:线上事故之CountDownLatch的威力
  • 配置 PM2 实现代码自动发布
  • 前嗅ForeSpider中数据浏览界面介绍
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (poj1.2.1)1970(筛选法模拟)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (vue)页面文件上传获取:action地址
  • (附源码)ssm码农论坛 毕业设计 231126
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (篇九)MySQL常用内置函数
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四)Android布局类型(线性布局LinearLayout)
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .net的socket示例
  • @EnableConfigurationProperties注解使用
  • @Pointcut 使用
  • []指针
  • [AIGC] Kong:一个强大的 API 网关和服务平台