Chinaunix

标题: sudo配置文件中的where是什么含义? [打印本页]

作者: nswcfd    时间: 2015-09-25 13:06
标题: sudo配置文件中的where是什么含义?
The basic structure of a user specification is “who where = (as_whom) what”

这里where(用来匹配host_list,可以是ip/fqdn等)的确切含义是什么?
是指从哪台机器上登录到当前服务器吗?(例如ssh登录的源IP)

这个参数的意图是不是实现类似如下的功能:
* 只有来自ip1的user1用户才能执行xxx命令(来自ip2的user1则不能)

PS,这个IP的信息从哪里来的?猜测有以下可能:
1)来自shell的enviornment? -- 环境变量太容易修改,这个不可靠;
2)检查stdin是否是socket,如果是getpeername? --- stdin重定向会导致机制失败;
3)来自系统登录记录(utmp/wtmp)-- 这个可能性大一些,安全性依赖于utmp文件。

作者: nswcfd    时间: 2015-09-25 16:45
更正:是sudoer的配置,不是sudo的配置。

看了一下代码,还真不是这个意思。
目前为止没有看到获取登录源IP(从哪里登录)的代码,更没有把登录IP反向映射成host name的逻辑。
host_list里的ip addr&mask,会跟服务器每个接口的ip&mask进行比较,如果相等就是match。

这么看来,where设计的初衷,是不是在多台服务器上保持同一份配置?
实现类似“某个帐号只能在某些服务器上执行特定命令,而不能在其他服务器上执行”的效果。
作者: lyhabc    时间: 2015-09-25 22:15
指从哪台机器上登录到当前服务器吗?(例如ssh登录的源IP)
是的




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2