WEB开发网
开发学院操作系统Linux/Unix 充分发挥 sudo 的作用 阅读

充分发挥 sudo 的作用

 2009-11-26 00:00:00 来源:WEB开发网   
核心提示: 保留系统环境变量的另一种方法是在 sudoers 中使用 Defaults !env_reset 指令:Defaults!env_reset然后,在命令行上指定环境变量名和值:$sudoLIBPATH=″/usr/lib:/opt/db2_09_05/lib64″-ude

保留系统环境变量的另一种方法是在 sudoers 中使用 Defaults !env_reset 指令:

Defaults !env_reset 

然后,在命令行上指定环境变量名和值:

$ sudo LIBPATH=″/usr/lib:/opt/db2_09_05/lib64″ -u delta /usr/local/bin/datapmp 

如果没有设置 !env_reset 条目,那么在试图运行命令时会从 sudo 收到以下错误:

sudo: sorry, you are not allowed to set the following environment variables: LIBPATH 

如果发现 sudo 还会缩减其他环境变量,那么可以在 sudoers 中指定变量名(使用 Defaults env_keep += 指令),让 sudo 保持这些变量不变。例如,假设对于我的一个使用 sudo 的脚本,sudo 会缩减应用程序变量 DSTAGE_SUP 和 DSTAGE_META。为了保留这些变量,可以在 sudoers 中设置以下条目:

Defaults env_keep += "DSTAGE_SUP" 
Defaults env_keep += "DSTAGE_META" 

注意,我指定了变量名,但是没有指定变量值。值已经包含在我的脚本中,比如:

export DSTAGE_SUP=/opt/dstage/dsengine; export DSTAGE_META=/opt/dstage/db2 

现在,在执行这个脚本时,这两个环境变量会保持不变。

保护 sudo 路径

可以使用 secure_path 指令修改 sudoers 中默认的 PATH。这个指令指定当用户执行 sudo 命令时在什么地方寻找二进制代码和命令。这个选项的目的显然是要限制用户运行 sudo 命令的范围,这是一种好做法。在 sudoers 中使用以下指令,指定安全 PATH 及其搜索目录:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/opt/freeware/bin:/usr/sbin" 

上一页  2 3 4 5 6 7 8 9  下一页

Tags:充分 发挥 sudo

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接