Linux - 非root用户使用systemctl管理服务

简介: Linux - 非root用户使用systemctl管理服务


方式一 (推荐)

首先,非root用户通常没有权限直接管理系统服务。但是,可以通过一些方法使非root用户能够启动或停止特定的服务。以下是一般步骤:

1. 编辑sudoers文件:

首先,确保非root用户被允许使用sudo执行特定的服务管理命令。编辑sudoers文件 (/etc/sudoers),使用visudo命令

sudo visudo

在文件中添加一行,允许用户执行特定服务的启动和停止命令。例如,允许用户启动和停止nginx服务:

username ALL=(ALL) NOPASSWD: /bin/systemctl start nginx, /bin/systemctl stop nginx

或者

username ALL=(ALL) NOPASSWD: ALL

请将username替换为实际的非root用户名。

2. 设置服务文件权限:

确保相关服务文件对非root用户具有执行权限。这通常涉及更改服务文件的权限或将非root用户添加到相应的用户组中。

sudo chmod +x /etc/systemd/system/servicename.service

或者,将非root用户添加到服务相关的用户组:

sudo usermod -aG groupname username

servicename替换为实际的服务名称,groupname替换为服务相关的用户组。

3. 启动和停止服务:

非root用户现在应该能够使用sudo启动和停止指定的服务。例如:

sudo systemctl start servicename
sudo systemctl stop servicename

替换servicename为实际的服务名称。


方式二

1. 查看可用服务:

使用以下命令列出系统上当前可用的服务:

systemctl list-unit-files --type=service

2. 选择要配置的服务:

从列表中选择要配置的服务,假设选择的服务为your-service


3. 创建自定义服务文件:

/etc/systemd/system/目录下创建一个自定义的服务文件,例如your-service.service

在文件中添加以下内容,根据实际情况修改ExecStart等字段:

[Unit]
Description=Your Service Description
After=network.target
[Service]
Type=simple
ExecStart=/path/to/your-service-executable
User=your-username
Group=your-group
[Install]
WantedBy=multi-user.target

请确保替换/path/to/your-service-executableyour-usernameyour-group为实际的可执行文件路径、非root用户的用户名和用户组。


4. 重新加载systemd管理的配置:

执行以下命令使新的服务文件生效:

sudo systemctl daemon-reload

5. 启用并启动服务:

启用服务,使其在系统启动时自动启动:

sudo systemctl enable your-service

启动服务:

sudo systemctl start your-service

6. 检查服务状态:

确保服务已经正确启动,执行:

sudo systemctl status your-service

需要托管到sudo里才可以生效 ,否则需要输入密码 ,如何不输入,可以看下一个


普通用户 执行 systemctl start|stop|status 服务名 需要输入root密码


相关文章
|
18天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
41 5
linux系统服务二!
|
18天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
38 3
linux系统服务!!!
|
23天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
119 3
|
23天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
67 3
|
1月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
25 2
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
72 0
|
2月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
4月前
|
Linux 数据安全/隐私保护 iOS开发
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro
|
Linux
linux中/和/root(~) 和 /home
winodws是森林型目录结构,它有很多根,如C、D、E、F等都是它的根目录,然后在其实创建子目录linux是树型目录结构,它只有一个根就是/目录,然后在/目录在有子目录如/root、/home、/etc/、/bin等。
1232 0
|
8天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
71 6