linux下的root用户是个超级管理员,一般是不用这个用户登录进行操作的,但有时候需要root权限,又不想切换用户的话可以使用sudo命令。但是不是所有的用户都可以使用sudo命令的。
首先可能会遇到下面的提示:
××× is not in the sudoers file. This incident will be reported.
解决办法:
1、修改/etc/sudoers 文件
#su -
#chmod u+w /etc/sudoers
在 root ALL=(ALL) ALL 的下一行添加
username ALL=(ALL) ALL
#chmod u-w /etc/sudoers
可能还会遇到下面的提示
sudo: ×××: command not found
这个是PATH的问题,要继续进行下面的操作
2、把用户加入到wheel组中
#vi /etc/passwd
把用户的组号改为10(whell的组号为10,这步需要重新登录才能生效)
3、修改 Sudo 配置文件 /etc/sudoers
#visudo
或者直接 vi /etc/sudoers
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR
LS_COLORS MAIL PS1 PS2 QTDIR USERNAME
LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC
LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS
_XKB_CHARSET XAUTHORITY PATH"
在env_keep中加入PATH。(这步需要重新登录才能生效)
RHEL6.×版本里 有所改变,多出来一个 Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin 这个时候上面添加的 PATH就不管用了,
不添加env_keep里面的PATH, 在后面添加下用户安装的目录就可以了 Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
4、修改/etc/profile
# Path manipulation
#if [ "$EUID" = "0" ]; then ;
修改为
gid=`/usr/bin/id -g`
if [ $gid -eq 10 ];then
#source /etc/profile
至此解决问题了。
如果不想让root用户远程登录的话,可以做如下设置:
修改配置文件/etc/sshd/sshd_config,
在文件中查找 PermitRootLogin 这句话
“PermitRootLogin no”表示不允许root用户远程登录,
“PermitRootLogin yes”表示允许root用户远程
修改为想要的结果即可