sudo是OpenBSD的一部分,其作者是 Todd C. Miller。在 FreeBSD 中可以使用 ports 或 package 来安装。在linux中默认是安装好的。下面就来看看如何配置sudo授权。
1)配置sudo sudo的配置文件在/usr/local/etc/sudoers里面。sudo的配置文件不应直接编辑,而应使用 visudo 来进行修改。 配置权限的格式如下: USER MACHINE=(EFFECTIVE USER) [NOPASSWD:] COMMAND 第一列(USER)指定要授权的帐号。第二列(MACHINE)定义在那些机器上,这条执行生效,其好处是在多台机器上使用同一份配置文件。括号里的(EFFECTIVE USER)是使用指定实际执行该命令的帐号, 这就方便一个帐号允许用另外一个帐号来执行特定的命令,而不非得是root帐号。第四列(COMMAND)是指定的命令. NOPASSWD是可选项代表USER在sudo到某身份时不必输入该身份的密码即可执行命令。 下面是配置sudo的简单方法: M-gtuiw ALL=(ALL) ALL 指定了M-gtuiw可以在任何地点以任何身份执行整个系统的全部命令。 %wheel ALL=(ALL) ALL 这个命令指定了wheel这个组的用户可以在任何地点以任何身份执行整个系统的全部命令。 M-gtuiw ALL=(apache) /usr/bin 指定了M-gtuiw可以在任何地点但只能以apache用户身份且只能执行/usr/bin目录下的命令。 M-gtuiw ALL= /usr/bin 等同于M-gtuiw ALL=(root) /usr/bin
2)设置密码在一段时间后自动退出 Defaults:M-gtuiw timestamp_timeout=0, runaspw, passwd_tries=1 记住: 在 Defaults:M-gtuiw 这个地方不允许有空格出现。下同: 这段句子有三个功能: 1)M-gtuiw需要root的密码才能运行sudo(句子中runaspw的缘故)。 2)这密码没有被系统记住(因为有timestamp_timeout=0的缘故),用了一次的sudo之后当再次使用时又得输入root密码。 如果将timastamp_timeout改为-1话,M-gtuiw只须去验证一次密码,之后将记住了M-gtuiw输入的密码,当第二次,第三次 使用sudo的时候都不用输入root密码了直到退出登录。 当然,其它的用户也可以这样,但须要不同的帐户和缺省值。在这里我们只改变M-gtuiw和增加一个新的用户“limda”: Defaults:M-gtuiw timestamp_timeout=0 Defaults:limda timestamp_timeout=-1, runaspw #user privilege specification root ALL=(ALL) ALL M-gtuiw ALL=(ALL) ALL limda ALL=(ALL) ALL M-gtuiw和limda拥有不同的缺省值。“Defaults”影响着每个用户使用sudo不同的权限。
3)sudo默认使用系统的 /var/log/messages 作为其日志文件;除此之外,也可以采用另外的日志,以便于进行审计。 Defaults logfile=/var/log/sudolog 记住,在上面没有 : 啊。
4) 限制sudo使用危险的命令: M-gtuiw ALL=/bin/kill, /usr/sbin/ 这里说明M-gtuiw用户只可以使用/bin/kill这个命令和/usr/sbin/里面的命令。 M-gtuiw lnserve=(paul, limda) /bin/kill, /usr/sbin/ 说明了M-gtuiw只能在lnserv指定的机算机中以paul和limda的身份使用/bin/kill和/usr/sbin里面的命令。
5)sudo限制使用某些命令 M-gtuiw ALL=ALL, !/bin/rm 这里说明了M-gtuiw可以用除了/bin/rm之外的所有命令,在/bin/rm前面加上 ! 号就是为了限制使用这个命令。
6)sudo时不输入密码直接执行命令 M-gtuiw ALL=(ALL) NOPASSWD: /usr/local/sbin/VBoxClient,/sbin/mount -t ntfs /dev/hda5 /d-driver 这里说明M-gtuiw在执行/usr/local/sbin/VBoxClient以及mount hda5时,不必输入root密码就可以root权限执行, 这里RUNAS为ALL实际上是指M-gtuiw可以sudo成任何身份且不必输入该身份的密码就可以执行后面的命令,当然root身份也不在话下。 NOPASSWD特别危险切记要让正确的人使用正确的命令。 M-gtuiw ALL=(ALL) NOPASSWD: ALL 这里说明M-gtuiw执行所有命令都不必输入密码,这极其危险。慎用。 M-gtuiw ALL=(ALL) ALL, NOPASSWD: /sbin/mount -t ntfs /dev/hda5 /d-driver 也可以让M-gtuiw用户可以sudo所有命令,但只针对某些命令不必输入密码。