名称

sudo - 以超级使用者 (superuser; root) 的身分执行指令

visudo - 编辑 sudoers 档案

语法

sudo command

描述

Sudo 允许经过同意的使用者以超级使用者的身分执行指令。 Sudo 参考/etc/sudoers 这个档案来判定谁是被授权的使用者。Sudo 将会提示使用者输入密码来启始一段 N 分钟的允许时间(其中 N 是在安装的时候定义的且预设值为 5 分钟)。

Sudoers 这个档案是由一个选择性的主机别名 (host alias) 节区,一个选择性的指令别名 (command alias) 节区以及使用者说明 (user specification)节区所组成的。所有的指令别名或主机别名必须需以他们自己的关键字作为开始 (Host_Alias/Cmnd_Alias)。注意,只有第一次使用者(在使用者说明节区里有记录的使用者)使用时会有说明。

使用者说明节区格式:

使用者 接取群组 [: 接取群组 ] ...

接取群组 ::= 主机象徵 = [op]指令象徵 [,[op]指令象徵] ...

主机象徵 ::= 一个小写的主机名称或主机别名。

指令象徵 ::= 一个指令或指令别名。

op ::= 逻辑的 '!' 否定运算元。

主机别名节区格式:

Host_Alias 主机别名 = 主机列表

Host_Alias ::= 这是一个关键字。

主机别名 ::= 一个大写的别名。

主机列表 ::= 以逗号间隔的一些主机名称。

指令别名节区格式:

Cmnd_Alias 指令别名 = 指令列表

Cmnd_Alias ::= 这是一个关键字。

指令别名 ::= 一个大写的别名。

指令列表 ::= 以逗号间隔的一些指令。

所有在 '#' 符号後面的文字都会被当作是注解。

太长的行可以使用倒斜线 '\' 字元来分成新的行。

保留的别名 'ALL' 在 {Host,Cmnd}_Alias' 里都可以使用。

不要用 'ALL' 来定义一个别名,这个别名无效。

注意到 'ALL' 暗示全部的主机跟指令。

你可以使用这个语法从整个范围中减掉一些项目:

user host=ALL,!ALIAS1,!/etc/halt...

范例

# Host alias specification

Host_Alias HUB=houdini.rootgroup.com:\

REMOTE=merlin,kodiakthorn,spirit

Host_Alias MACHINES=kalkan,alpo,milkbones

Host_Alias SERVERS=houdini,merlin,kodiakthorn,spirit

# Command alias specification

Cmnd_Alias LPCS=/usr/etc/lpc,/usr/ucb/lPRm

Cmnd_Alias SHELLS=/bin/sh,/bin/csh,/bin/tcsh

Cmnd_Alias MISC=/bin/rm,/bin/cat:\

SHUTDOWN=/etc/halt,/etc/shutdown

# User specification

britt    REMOTE=SHUTDOWN:ALL=LPCS

robh    ALL=ALL,!SHELLS

nieusma   SERVERS=SHUTDOWN,/etc/reboot:\

HUB=ALL,!SHELLS

jill    houdini.rootgroup.com=/etc/shutdown,MISC

markm    HUB=ALL,!MISC,!/etc/shutdown,!/etc/halt

billp    ALL=/usr/local/bin/top:MACHINES=SHELLS

davehieb  merlin=ALL:SERVERS=/etc/halt:\

kodiakthorn=ALL

上面的 sudoers 说明档案是由 4 个主机别名说明,4 个指令别名说明以及 7 个使用者说明所组成的。Britt 被允许在远端机器 (merlin, kodiakthorn, 还有 spirit) 上执行 /etc/halt, /etc/shutdown, /usr/etc/lpc 以及/usr/ucb/lprm 。Rohn 被允许在任何机器上执行除了 SHELL 指令群以外的任何指令。Jill 被允许在 houdini 上执行 /etc/shotdown, /bin/rm, 以及/bin/cat 。Davehieb 可以在 merlin 以及 kodiakthorn 上执行任何指令并且可以 halt SERVERS 。

Sudoers 档案应该用 visudo 指令编辑,它会锁住该档并且做文法检查。这提供了一个可以避免愚蠢文法错误的机制。

Sudo 被设计成经由 4.3 BSD syslogging 来记录,但是如果真的想要的话还是可以记录到一个档案来取代。

如果一个没有被授权的使用者执行了 sudo 的话,将会有一封 mail 从该使用者寄送到当地的授权者处(在安装的时候定义的)。

所有的设定都是在安装的时后定义的,从 sudo.h 含入档及 Makefile 取得。

未来加强

允许巢状的主机以及指令别名。

允许在 sudoers 档案中使用 host specifier

以便使用全区符号 (user ALL,!SERVERS, ... = commands) 。

允许在 sudores 档案里的使用者别名(就如同主机/指令别名一样)。

使 visudo 对 sudoers 档案做更广泛的检查。

档案

/etc/sudoers         经授权的使用者档案。

/etc/stmp          visudo 的 lock file 。

/usr/local/bin/sudo     sudo 的执行档。

/usr/local/etc/visudo    修改 sudoers 档案的工具。

作者

Jeff Nieusma

David Hieb

DISCLAIMER

这个程式的发行是因为希望它有用处,但是没有任何保证;甚至没有对特定用途的销售或适合有隐含的保证。参阅 GNU 的 General Public License 以获得更详细的资讯。

你应该会连同这个程式一起接收到一份 GNU General Public License;如果没有的话,写封信给 Free Software Foundation, Inc., 675 Mass Ave,

Cambridge, MA 02139, USA 。

警告

如果使用者可以存取 shell scripts 指令群或允许 shell escapes 的话,没有简单的办法可以防止使用者得到 root shell。

linux man命令 0-8,Linux命令Man解释:SUDO(8):以root身份执行指令相关推荐

  1. 红旗linux操作系统+v8.0,红旗Linux操作系统 v8.0 ,和微软的操作系统一样吗?红旗也是操作系统吗?红旗可以兼容现在安装在微软系统上的软件吗?有人用过红旗吗?...

    红旗Linux操作系统 v8.0 ,和微软的操作系统一样吗?红旗也是操作系统吗?红旗可以兼容现在安装在微软系统上的软件吗?有人用过红旗吗? 更新时间:2019-03-17 03:23 最满意答案 1. ...

  2. linux内核4.0,新闻|Linux内核4.0功能:实时内核补丁,支持PS3

    Linux Torvalds 在Linux内核邮件列表里发布了Linux内核新的稳定版. Linux 4.0,代号为'Hurr durr I'm a sheep',带来了一小系列新硬件支持,驱动改进, ...

  3. linux redis 3.0.7,linux虚拟机上安装配置redis3.0.7

    linux shell 的 linux虚拟机上安装配置redis3.0.7 我们给大家列出详细的图文步骤教给大家在linux虚拟机上安装redis以及相关的配置流程. 将redis-3.0.7.tar ...

  4. linux git2.8.0下载,Linux 环境下 jdk1.8 maven3.2.3 Git2.8.0 安装脚本

    # @Author: peizhouyu # @Date: 2018-09-07 14:24:11 # @Last Modified by: peizhouyu # @Last Modified ti ...

  5. linux 新建用户没有权限使用sudo命令以root身份执行命令 解决方法

    问题来源: 我们使用sudo命令,让huazi用户使用root身份执行命令时报错: 我们信任您已经从系统管理员那里了解了日常注意事项. 总结起来无外乎这三点: #1) 尊重别人的隐私. #2) 输入前 ...

  6. 如何在Ubuntu/CentOS上安装Linux内核4.0

    如何在Ubuntu/CentOS上安装Linux内核4.0 大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为'Hurr durr I'm a sheep'的 ...

  7. kali linux 2019教程,[教程]KALI LINUX 2.0 2019 更新国内源

    2019年最新版本KALI 为 KALI 2019.1 下载地址:https://www.kali.org/downloads/ 有的新入门的朋友可能会问,为什么每次都无法手动更新 例如:Update ...

  8. linux mint 安装内核,使用Ukuu在Ubuntu/Linux Mint上安装Linux Kernel 5.0的方法

    Linux Kernel 5.0已发布,具有大量新功能和错误修复,本文介绍使用Ukuu在Ubuntu 18.04/Linux Mint系统上安装Linux Kernel 5.0的方法.默认情况下,Ub ...

  9. linux视频教程第0讲.开山篇

    linux视频教程第0讲.开山篇 为什么学习linux linux是一个开源.免费的操作系统,其稳定性.安全性.处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用linux lin ...

最新文章

  1. 景观设计主题命名_好听的景观名字
  2. 一滴水从高处落下来,会不会砸死人?
  3. 百炼成钢!自己动手写一个深度学习框架!
  4. Python代码覆盖性测试入门
  5. C++调用函数模仿数字钟表
  6. discuz2.0升级后不能自动跳转问题
  7. cscd期刊计算机排名,计算机CSCD核心期刊.pdf
  8. 我不想加班,您看我还有机会吗?
  9. mac拷贝图片window打不开
  10. 分布式的Key-Value存储系统voldemort
  11. React将字符串转化成组件,将Antd图标字符串转化为图标组件
  12. java中的三目运算
  13. opencv频域滤波 C++实现陷波滤波器
  14. 移动手机市场或被洗牌
  15. 3万多条对联春联门联ACCESS数据库
  16. 数字化转型时代,如何让你的 App 摆脱“内卷”?
  17. 2019华为机试题 解析文本
  18. 分享144个ASP源码,总有一款适合您
  19. 什么是竞争和冒险,如何消除?
  20. 如何在ubuntu14.04中安装IE8

热门文章

  1. 网络传输数据的加密过程详解
  2. 如何更有价值采集数据、高效分析数据?
  3. 【中文分词】隐马尔可夫模型HMM
  4. jQuery中的函数汇总1
  5. centos 6.5/redhat 6.5 网卡配置有问题
  6. classpath理解
  7. 链接聚合是将一组物理接口_如何增加带宽,提升网络可靠性?
  8. linux中的运行模式,Linux系统运行模式介绍
  9. 信息学奥赛一本通 1414:【17NOIP普及组】成绩 | 洛谷 P3954 [NOIP2017 普及组] 成绩
  10. 信息学奥赛一本通(2055:【例3.5】收费)