systemctl
是一个用于管理 systemd 系统和服务的命令行工具
-
普通用户:普通用户可以使用
systemctl
命令查看系统状态、列出单元文件、显示单元文件信息等。但是,普通用户无法启动、停止或重启服务,因为这需要 root 权限。 -
使用
sudo
:如果你需要以普通用户身份执行需要 root 权限的操作,可以使用sudo
命令。例如,要启动一个名为example.service
的服务,可以运行:
sudo systemctl start example.service
在这种情况下,你需要输入密码以获得临时的 root 权限。
- 以 root 用户身份运行:要以 root 用户身份运行
systemctl
命令,可以使用sudo -i
命令切换到 root 用户,然后执行systemctl
命令。例如:
sudo -i systemctl start example.service
- 配置 sudoers 文件:如果你希望允许某些用户执行特定的
systemctl
命令,可以编辑/etc/sudoers
文件。首先,使用visudo
命令打开该文件:
sudo visudo
然后,添加一行以允许特定用户执行特定的 systemctl
命令。例如,要允许用户 user1
启动和停止 example.service
,可以添加以下行:
user1 ALL=(ALL) NOPASSWD: /bin/systemctl start example.service, /bin/systemctl stop example.service
保存并退出编辑器。现在,用户 user1
可以使用 sudo
命令启动和停止 example.service
,而无需输入密码。
请注意,编辑 /etc/sudoers
文件时要格外小心,因为错误的配置可能导致系统安全问题。始终使用 visudo
命令编辑该文件,因为它会检查语法错误。