CentOS7下非root账号通过systemctl管理服务需要输入root密码

问题描述:

使用普通账号test通过systemctl启动系统服务提示需要输入root密码:

CentOS7下非root账号通过systemctl管理服务需要输入root密码

解决方案一:
根据上面提示得知权限由polkit进行管理,对应的是org.freedesktop.systemd1.policy这个配置文件下的manae-units动作

进入/usr/share/polkit-1/actions/org.freedesktop.systemd1.policy,将对应manae-units的defaults中的授权全部改为yes,然后执行systemctl restart polkit重启polkit
CentOS7下非root账号通过systemctl管理服务需要输入root密码

 

下图为权限可选的配置参数

CentOS7下非root账号通过systemctl管理服务需要输入root密码

通过sudo获得root权限, 具体设置如下:

方案二:

给hadoop账户添加sudo权限:
        在root下:
            chmod u+w /etc/sudoers
            vi /etc/sudoers
         在 root       ALL=(ALL)    ALL下添加一行:
             hadoop  ALL=(ALL)   ALL   //添加sudo授权
 

如使用hadoop账号操作zookeeper的命令如下:

sudo systemctl stop zookeeper   只需要输入hadoop的密码

sudo systemctl start zookeeper 不需要输入密码

sudo systemctl status zookeeper 不需要输入密码 

注意:需要在如下配置文件中添加获得root权限的用户及组

vi /usr/lib/systemd/system/zookeeper.service

User=hadoop

Group=hadoop