CentOS7下非root账号通过systemctl管理服务需要输入root密码
问题描述:
使用普通账号test通过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
下图为权限可选的配置参数
通过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