sudo常见问题两例:免密码/保持环境变量
时间:2015-02-27 01:42 来源:linux.it.net.cn 作者:IT
首先给一个很不错的sudo的文档!
https://wiki.archlinux.org/index.php/Sudo_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29
问题一:如何在使用sudo执行命令时免输入密码
在root下执行visudo
在文件尾部添加:
myuser ALL=(ALL) NOPASSWD: ALL
%mygroup ALL=(ALL) NOPASSWD: ALL
问题二:如休在使用sudo执行命令确保环境变量的传递
首先,我们可以随时使用sudo -u targetUser env来检查目标用户targetUser的环境变量,特别是你定义的一些HOME目录和PATH变量
以下是两个重要的配置步骤:
1. 确保环境变量得以传递,以hadoop相关的一些环境变量为例,我们需要在visudo中添加需要传递的环境变量,比如:
Defaults env_keep += "JAVA_HOME HADOOP_HOME HBASE_HOME HIVE_HOME MAHOUT_HOME PATH"
2. 取保PATH变量得以传递:
上面env_keep配置的PATH变量实际并没有得到有效的传递,PATH变量会受到secure_path的约束,所引如果我们需要传递完整的path变量,我们需要修改secure_path!在visudo中它的默认值一般为:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
同样以hadoop环境为例,我们可以改为:
Defaults secure_path = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_71/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/hbase/bin:/usr/local/hive/bin:/usr/local/hive/hcatalog/bin:/usr/local/hive/hcatalog/sbin:/usr/local/mahout/bin
另:如果不做上述配置,可以使用sudo -i -u targetUser your-command来执行你的命令,使用-i参数会模拟一次登录,目标用户的相关环境变量就可以相应的被初始化了!
(责任编辑:IT)
首先给一个很不错的sudo的文档! https://wiki.archlinux.org/index.php/Sudo_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29 问题一:如何在使用sudo执行命令时免输入密码 在root下执行visudo 在文件尾部添加: myuser ALL=(ALL) NOPASSWD: ALL %mygroup ALL=(ALL) NOPASSWD: ALL 问题二:如休在使用sudo执行命令确保环境变量的传递 首先,我们可以随时使用sudo -u targetUser env来检查目标用户targetUser的环境变量,特别是你定义的一些HOME目录和PATH变量 以下是两个重要的配置步骤: 1. 确保环境变量得以传递,以hadoop相关的一些环境变量为例,我们需要在visudo中添加需要传递的环境变量,比如: Defaults env_keep += "JAVA_HOME HADOOP_HOME HBASE_HOME HIVE_HOME MAHOUT_HOME PATH" 2. 取保PATH变量得以传递: 上面env_keep配置的PATH变量实际并没有得到有效的传递,PATH变量会受到secure_path的约束,所引如果我们需要传递完整的path变量,我们需要修改secure_path!在visudo中它的默认值一般为: Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin 同样以hadoop环境为例,我们可以改为: Defaults secure_path = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_71/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/hbase/bin:/usr/local/hive/bin:/usr/local/hive/hcatalog/bin:/usr/local/hive/hcatalog/sbin:/usr/local/mahout/bin 另:如果不做上述配置,可以使用sudo -i -u targetUser your-command来执行你的命令,使用-i参数会模拟一次登录,目标用户的相关环境变量就可以相应的被初始化了! (责任编辑:IT) |