本文是为后续部署CDH组件准备的,因为CDH部署时必须root用户或具备root权限的免密登录。

一、设置非root用户的sudo权限(需要密码)

前提:其他用户登录linux系统

实现有4个步骤

1、进入超级用户模式

su -

# 系统会让你输入超级用户密码,输入密码后就进入了超级用户模式

2、添加文件的写权限

chmod u+w /etc/sudoers

3、编辑/etc/sudoers文件

vim /etc/sudoers

# 找到这一行"root ALL=(ALL) ALL"
# 在起下面添加"opsadm ALL=(ALL) ALL"(这里的opsadm是你的用户名),然后保存退出


4、撤销文件的写权限

chmod u-w /etc/sudoers

二、设置非root用户的sudo权限(不要密码)

前提:其他用户登录linux系统

实现有4个步骤

1、进入超级用户模式

su -

# 系统会让你输入超级用户密码,输入密码后就进入了超级用户模式

2、添加文件的写权限

chmod u+w /etc/sudoers

3、编辑/etc/sudoers文件

vim /etc/sudoers

# 找到这一行"root ALL=(ALL) ALL"
# 在起下面添加"opsadm    ALL=(ALL)      NOPASSWD:ALL"(这里的opsadm是你的用户名),然后保存退出

# 如果设置不起作用(原因是被后面的group的设置覆盖了,需要把group的设置也改为nopasswd),还需要做如下设置,同样的文件中,位置在“# %wheel        ALL=(ALL)       NOPASSWD: ALL”下面增加
%opsadm    ALL=(ALL)      NOPASSWD:ALL

# 设置完成后的样子如下:
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
opsadm    ALL=(ALL)      NOPASSWD:ALL

## Allows members of the 'sys' group to run networking, software, 
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
%opsadm    ALL=(ALL)      NOPASSWD:ALL

4、撤销文件的写权限

chmod u-w /etc/sudoers


ouuser            ALL=(ALL)                ALL
%youuser           ALL=(ALL)                ALL
youuser            ALL=(ALL)                NOPASSWD: ALL
%youuser           ALL=(ALL)                NOPASSWD: ALL
 
# 第一行:允许用户youuser执行sudo命令(需要输入密码)
# 第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码)
# 第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码
# 第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码

完成以上操作,即可实现了非root用户拥有了sudo权限。