LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1114|回复: 3

openSUSE中使用sudo小心得

[复制链接]
发表于 2009-1-14 15:50:37 | 显示全部楼层 |阅读模式
我觉得,openSUSE官方鼓励使用su来执行管理员的操作。
但是我更喜欢用sudo的方式来管理系统。但是默认情况下,openSUSE的sudo并不好用。比如sudo后的密码验证需要输入root的密码而不是当前用户的密码,还有,使用sudo打开X应用程序的时候,往往被X服务器拒绝。
查了些资料,有些小心得:
1.修改/etc/sudoers,将下面两行注释掉(这样密码验证时输入当前用户的密码)
Defaults targetpw   # ask for the password of the target user i.e. root
ALL   ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!
2.去掉下面一行前的注释符,并且将自己加入wheel组。
#%wheel  ALL=(ALL) ALL
3.将DISPLAY加入env_keep变量(不改变显示终端)
Defaults env_keep = "DISPLAY LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"
4.允许所有所有本地“用户”连接X服务器。
我的办法是,在/etc/X11/xinit/xinitrc.d/目录下创建一个可执行脚本xhost_local.sh脚本内容:
#!/bin/bash
xhost local:>/dev/null


这样之后,使用sudo就能执行gedit等X应用程序了。还有一点没有解决,可能是出于安全考虑,在openSUSE中sudo时,没有搜索/sbin,/usr/sbin这样的存放着系统管理命令的目录,所以在执行这些命令时需要使用绝对路径。
发表于 2009-1-14 16:10:54 | 显示全部楼层
sudo是使用的当前用户的Path
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-14 16:36:14 | 显示全部楼层
sudo有一个编译选项:--with-secure-path=
制定sudo的搜索路径,openSUSE 中的sudo包在编译时可能没有包含/sbin,/usr/sbin
回复 支持 反对

使用道具 举报

发表于 2009-1-15 12:51:37 | 显示全部楼层
export PATH=$PATH:/usr/sbin:/sbin
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表