环境海光 uos,root用户注册系统服务 systemctl start启动服务,报错:operation not permitted,用非root用户sudo启动却没问题,请问各路大shen,有没有遇到一样的情况lao
【以下回答由 GPT 生成】
问题分析:
根据问题的描述,出现这种情况可能是由于文件系统设置导致的。一般来说,系统在安装时会默认设置一个mount选项,即禁止root用户在挂载点(mount point)下执行操作,包括启动服务等。所以非root用户可以使用sudo命令来临时获取root权限进行操作。
解决方案:
sudo systemctl start [service name]
也可以使用su命令切换到root用户再执行命令:
su -
systemctl start [service name]
这样应该能够解决你遇到的问题。
如果上述方法无效,可能是由于selinux引起的权限问题。可以尝试通过以下方式关闭selinux:
编辑/etc/selinux/config文件:
sudo vi /etc/selinux/config
SELINUX=enforcing
改为:
SELINUX=disabled
保存并退出文件。
如果问题仍然存在,可以尝试检查文件系统的mount选项是否为nosuid。可以通过以下命令来查看文件系统的mount选项:
mount | grep nosuid
如果看到某个挂载点的选项中包含nosuid,说明该挂载点禁止设置setuid和setgid权限,导致root用户无法启动服务等操作。
解决这个问题需要将nosuid选项移除或者重新设置为默认的mount选项。具体方法如下:
sudo vi /etc/fstab
/dev/sda1 / ext4 defaults,nosuid 0 1
改为:
/dev/sda1 / ext4 defaults 0 1
保存并退出文件。
重新挂载文件系统:
sudo mount -o remount /
然后尝试再次执行命令,应该就能够正常启动服务了。
如果上述解决方案仍然无效,可能是由于其他配置或者限制导致的,请提供更多的详细信息进行排查。