> Linux教程 > Linux学习 >

Linux服务器下合理使用su和sudo

绝大多数服务器出于安全考虑一般都禁止了使用root账户登录系统,一般都是通过普通用户远程连接到服务器后然后使用su命令切换到root执行一些需要超级权限的工作,但是这样的操作流程也会存在不安全因素,如果系统有多个普通用户,每个用户都需要执行一些需要root权限的操作,如果都使用su的话,那么root账号的密码就需要告诉所有的普通用户,这在一定程度上会对系统造成一些不安全的因素,此时sudo命令就能派上用场了。

Sudo命令的使用流程是:将当前用户切换到root或者其他指定的用户下,然后以root或者其他指定的用户身份执行命令,命令执行完成后,退回到当前用户下,以上操作可以通过配置/etc/sudoers文件来进行。例如普通用户test是无法访问/etc/passwd:

1.JPG

如果要让test可以访问到这个文件,则在/etc/sudoers添加如下内容:

test     ALL = /bin/more  /etc/passwd

这样就能在test用户下输入test的密码就可以执行sudo  cat  /etc/shadow操作了

2.JPG

在这里sudo使用时间戳文件进行类似的检票功能,当用户输入密码后会得到5分钟的操作时间(默认值可以在编译的时候更改),超时之后必须重新输入密码才可以继续操作。这样一来就会让某些调用root权限的程序或者脚本出现问题,此时可以通过下面的设置让普通用户无需重复输入密码执行具有root权限的程序,例如要让test用户拥有重启/etc/init.d/nginx的权限,可以在/etc/sudoers添加如下配置:

   test  ALL = NOPASSWD: /etc/init.d/nginx start

然后在test用户下就可以无需输入密码启动nginx了:

 

3.JPG

 

另外,可以通过在/etc/sudoers文件中添加如下配置使得test用户具有root用户的所有权限而不必输入root用户的密码:

   test  ALL=(ALL) NOPASSWD: ALL

 

这样在test用户登录系统后,就可以通过执行如下命令切换到root用户:

4.JPG

当然sudo的详细配置及用法并不止以上这些,用户可以通过搜索引擎寻找更为详细的使用方法,这里只是推荐客户使用sudo 来管理系统账号的安全,也是多用户系统下账号安全管理的基本方式。

 
(责任编辑:IT)