在sudoers文件中定义主机

我想编辑我的sudoers文件,以便用户根据login的位置拥有不同的权限。 我想有3个不同的位置:外部networking(互联网),内部(本地局域网)和控制台(用户坐在电脑前)。 定义外部和内部会是这样的:

Host_Alias PRIVNET = 10.6.66.0/25, 10.6.67.128/28 

但是如何定义控制台呢?

我不希望用户能够对防火墙或sudoers进行更改,例如,如果出现问题,或者即使他的帐户被盗用,他不在位。

我只是想确保用户在进行关键更改时在附近。

sudoers主机的定义(和Host_Alias)是用来定义这个sudoers文件入口应用的主机。 换句话说,它定义了用户这台主机拥有哪些权限,而不是哪个主机拥有这些权限。 (这个)

所以,长话短说,你想做什么,不能做一个sudoers条目。

如果你能做到这一点,我会认为这将在PAM(Pluggable Authentication Modules)中完成。 或者也许suoders文件( man sudoers )的'requiretty'指令。

不过,我想你可能想提一下你的目标。 从安全angular度来看,这并不适合我。 我认为让不同级别的帐户拥有不同的帐户更有意义,然后只允许这些帐户从某个IP地址login。 然后你有两个macros安全级别,密码validation和基于IP。 小学阶段是帐户 – 我认为无论他们从哪里login,帐户都应该能够做同样的事情。

使用sudoers文件来限制命令似乎有点让我发现,所以我只会用它作为我上面提到的一个额外的安全层。

所以最后我的build议是:

  • 创build具有所需访问权限的不同帐户/组,然后授予他们访问suoders文件中的这些命令的权限。 这个想法是有“外部(非局域网)”帐户, 永远不能运行某些命令,特权帐户,可以。
  • 使用PAM来控制这些特权帐户允许login的位置, 这里是一个使用ssh执行此操作的示例。