LinuxSir.cn,穿越时空的Linuxsir!

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

sudo给用户设定权限/iptables服务启用停止问题 求助

[复制链接]
发表于 2007-5-23 01:42:26 | 显示全部楼层 |阅读模式
环境:
winxp用winscp远程控制linux服务器
用iptables设置共享上网

当用winscp连上服务器时,用root登陆
# service iptables stop             (停止局域网访问Internet)
# /etc/rc.d/nat                          (开启局域网访问Internet)
我想把这两条命令放给普通用户,比如说newuser

编辑sudoers
# visudo
添加:
User_Alias NATAD=newuser
Cmnd_Alias NATAD_OPEN=/etc/rc.d/nat
Cmnd_Alias NATAD_CLOSE=/etc/rc.d/init.d/iptables
NATAD  ALL=(ALL)  NOPASSWD:NATAD_OPEN,NOPASSWD:NATAD_CLOSE

然后,用winscp连上去服务器newuser用户
停止共享访问Internet:
$ sudo service iptables stop
提示:sudo: service: command not found
$ sudo /etc/rc.d/init.d/iptables stop
成功停止

打开共享访问Internet:
$ sudo /etc/rc.d/init.d/iptables start
好像是执行了,直接到下一个$,但是实际上没有打开共享
$ sudo /etc/rc.d/nat
执行了,但由于iptables脚本里有许多条命令,出现命令没有找到后,就结束了
/etc/rc.d/nat: line 17: iptables: command not found
/etc/rc.d/nat: line 18: iptables: command not found
/etc/rc.d/nat: line 19: iptables: command not found
/etc/rc.d/nat: line 20: iptables: command not found
/etc/rc.d/nat: line 21: iptables: command not found
……

我想问一下
1.
如果要实现上述目标,该如何修改sudoers?
2.
有没有简便的方法,输入的命令的字数越少越好,因为控制的人,没有接触过linux的

谢谢
发表于 2007-5-23 02:42:02 | 显示全部楼层
iptables 加上 /sbin/iptables 或者 /usr/sbin/iptables
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-23 07:59:42 | 显示全部楼层
谢谢晨想的回复

我有些不大清楚
iptables 加上 /sbin/iptables 或者 /usr/sbin/iptables
这个要加在哪里
我就乱试
Cmnd_Alias NATAD_OPEN=/etc/rc.d/nat,/sbin/iptables,/usr/sbin/iptables

Cmnd_Alias NATAD_CLOSE=/etc/rc.d/init.d/iptables,/sbin/iptables,/usr/sbin/iptables
和原来还是一样

麻烦晨想能再细说一下吗
添加到哪里?
执行时用的命令是不是和我上面写的一样?
谢谢!
回复 支持 反对

使用道具 举报

发表于 2007-5-23 13:31:41 | 显示全部楼层
我是说你的 /etc/init.d/nat 文件里边修改。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-23 14:24:41 | 显示全部楼层
谢谢晨想,照你的提示

把/etc/rc.d/nat里的
iptables ==> /sbin/iptables

现在可以了从远端用命令行来控制共享访问internet了
关闭:
$ sudo /etc/rc.d/init.d/iptables stop
打开:
$ sudo /etc/rc.d/nat

我还想问一下,能不能修改sudoers里的命令
来使
上面两条命令简化(其实,我就是想少让控制的人少输一些命令,不怎么会用命令行的)
谢谢!
回复 支持 反对

使用道具 举报

发表于 2007-5-24 21:07:13 | 显示全部楼层
写个脚本啊。比如: 写一个/home/newuser/bin/short的脚本文件(就是普通文本文件带可执行属性: chmod 755),
里边包含你所要的长命令:
sudo /etc/init.d/.......
这样,用户登录后输入这个短命令"short"就可以了(假设你把/home/newuser/bin放在PATH里,偷懒的话,直接把脚本放在/usr/bin里好了,记住要chmod 755)。
回复 支持 反对

使用道具 举报

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

本版积分规则

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