充分发挥 sudo 的作用
2009-11-26 00:00:00 来源:WEB开发网对 sudo 使用超时
sudo 的一个特性使用时间票据判断自从最后一次运行 sudo 命令以来已经过了多长时间。在指定的时间段内,用户可以重新运行命令而不会提示输入密码(此用户自己的密码)。超过这段时间之后,用户必须再次输入密码才能重新运行命令。如果用户提供了正确的密码,就执行命令,票据复位,计时重新开始。如果在 sudoers 中此用户的条目中有 NOPASSWD,票据特性是无效的。默认的超时是 5 分钟。如果希望修改默认值,只需在 sudoers 中添加一个条目。例如,可以使用以下条目把用户 “bravo” 运行任何命令的超时值设置为 20 分钟:
Defaults:bravo timestamp_timeout=20
作为用户使用以下命令销毁票据:
$ sudo -k
销毁票据之后,在运行 sudo 命令时会再次提示用户输入密码。
请不要设置所有用户的超时值,因为这会造成问题,尤其是在运行花费时间比较长的作业集合时。在 timestamp_timeout 变量中使用 -1 值可以禁用这个特性。时间票据是 /var/run/sudo 中包含用户名的目录条目。
变量
正如前面提到的,sudo 会缩减系统变量,这可能有危险。可以使用 sudo -V 检查哪些变量保持不变,哪些变量会被缩减。输出显示保持不变和缩减的变量列表。缩减 LIBPATH 显然很不方便。有两个解决方法 —— 编写一个包装器脚本或在命令行上指定环境。先看一下包装器脚本解决方案,假设您的一个应用程序会停止或启动 DB2® 实例。可以编写一个脚本来保持变量不变。在 清单 1. rc.db2 中,使用以下代码访问实例配置文件,进而导出各个 LIBPATH 和 DB2 环境变量,这会保持环境变量不变:
. /home/$inst/sqllib/db2profile
更多精彩
赞助商链接