linux sudoers中限制useradd的写法


linux sudoers中限制useradd的写法
 
  sudo对大家来说都很熟悉了,可以让一个账户以其他的身份去执行某些应用程序。今天遇到的问题的是:想让tom用户管理系统账户。但是给tom账户执行useradd权限的时候,如果tom执行useradd 带-g root或者useradd -G root时会引起安全性的问题。所以需要限制一下。
       当然给passwd命令做限制很好做:
 
tom ALL=(ALL) /usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root
    这是因为passwd后面可接的参数特别少,对于useradd命令来说,它的参数很多。这样写就不行了,比如
 
tom ALL=(ALL) /usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,/usr/sbin/useradd [a-zA-Z]*,!/usr/sbin/useradd -G root [a-zA-Z]*
这样写的话如果执行sudo useradd -u 1000 -G root user1的话,还是可以成功的。我想了下,得匹配-G 和其他参数的任意组合才可以。经过一番测试于是这样写:
 
tom ALL=(ALL) /usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,/usr/sbin/useradd [a-zA-Z -/]*,!/usr/sbin/useradd [a-zA-Z -/]* -G root [a-zA-Z -/]*,!/usr/sbin/useradd [a-zA-Z -/]* -g root [a-zA-Z -/]*
这里不包括数字和-g root的情况,可以根据次类似的加进去。

相关内容

    暂无相关文章