日期:2014-05-16  浏览次数:20711 次

加固Linux安全-sudo命令使用

配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止?
两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。?

  visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理,就像:?

  >>>?sudoers?file:?syntax?error,?line?22?<<<WHAT?now??e<?FONT>?

  此时我们有三种选择:键入“e”是重新编辑,键入“x”是不保存退出,键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。?

  现在,我们一起来看一下神秘的配置文件,学一下如何编写它。让我们从一个简单的例子开始:让用户foobar可以通过sudo执行所有root可执行的命令。以root身份用visudo打开配置文件,可以看到类似下面几行:?

  #?Runas?alias?specification?
  #?User?privilege?specificationroot????ALL=(ALL)ALL?

  我们一看就明白个差不多了,root有所有权限,只要仿照现有root的例子就行,我们在下面加一行(最好用tab作为空白):?

  foobar??ALL=(ALL)????ALL?

  保存退出后,切换到foobar用户,我们用它的身份执行命令:?

  [foobar@localhost?~]$?ls?/root?
  ls:?/root:?权限不够?
  [foobar@localhost?~]$?sudo?ls?/root?
  Password:?
  anaconda-ks.cfg??Desktop??install.log??install.log.syslog?

  好了,我们限制一下foobar的权利,不让他为所欲为。比如我们只想让他像root那样使用ls和ifconfig,把那一行改为:?

  foobar??localhost=????/sbin/ifconfig,???/bin/ls?

  再来执行命令:?

  [foobar@localhost?~]$?sudo?head?-5?/etc/shadow?
<