一、前言
sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root用户的登陆和管理时间,提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。
而防止root用户密码被恶意更改,主要是用户基本上都是su - 切换到root,假如有很多人知道root账号和密码,那么就会出现很多问题,也就不知道是谁干的坏事,log里面查看的都是root用户,防止root被恶意更改,为了更好的管理用户权限。
二、特点
Sudo能够限制用户只在某台主机上运行某些命令。
Sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
Sudo确保root密码不会被遗忘,配置一个具有sudo权限的用户,切换到root就可以修改。
Sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
Sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0411。
三、配置sudo
1、查看系统是否安装Sudo
[kuangl@jw-web02 root]$ rpm -qa |grep sudo sudo-1.7.2p1-10.el5 |
2、新建一个系统管理用户kuangl,以root用户操作;
[root@jw-web02 ~]# useradd kuangl [root@jw-web02 ~]# passwd kuangl Changing password for user kuangl. New UNIX password: BAD PASSWORD: it is based on a (reversed) dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. |
3、将kuangl用户赋予root权限;
[root@jw-web02 ~]# visudo 在文件内容后面添加 如果不想在sudo的时候输入密码,干脆就把上面那行换成下面这行即可: |
4、测试 Sudo
[root@jw-web02 ~]# sudo whoami root //如果配置正确,命令会返回root字样 |
5、切换到root
[kuangl@jw-web02 root]$ sudo su - //切换到root [root@jw-web02 ~]# su kuangl //切换到赋予的用户 |
四、防止Root密码被恶意篡改
1、添加admin组;
[root@jw-web02 ~]# groupadd admin |
2、添加用户;
[root@jw-web02 ~]# useradd linda |
3、将用户添加到admin组;
[root@jw-web02 ~]# usermod -a -G admin linda |
4、在sudoers文件添加admin组,让这个组的用户权限和root一样。
vim /etc/sudoers |
密码由自己设置和保管,相互之间不知道其他组的密码,这样子每个人员都有了sudo权限,而每个用户所做的事情基本可以通过日志查询得到。
五、备注:
[root@jw-index conf]# useradd kuangl bash: useradd: command not found |
为什么会出现bash: useradd: command not found 这个问题呢?原因如下:
sudo su 只是获得root用户的权限;
sudo su - 不仅获得root用户的权限,而且还执行root的profile来执行root的环境变量。
本文转自 kuangling 51CTO博客,原文链接:http://blog.51cto.com/kling/1167541