侧边栏壁纸
博主头像
lai博主等级

  • 累计撰写 26 篇文章
  • 累计创建 13 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

普通用户添加Nginx开机启动

lai
lai
2022-06-15 / 0 评论 / 0 点赞 / 54 阅读 / 501 字
温馨提示:
本文最后更新于 2022-06-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

这里使用的非root用户是admin,授权

#所有者更改为root,这样其他用户即可以root权限操作该文件
chown root /usr/local/nginx/sbin/nginx
#解决sudo方式执行
chmod u+s /usr/local/nginx/sbin/nginx

创建target文件,如admin.target

vim /usr/lib/systemd/system/admin.target

添加内容

[Unit]
#描述
Description=user admin target

[Install]
WantedBy=multi-user.target

enable这个target

cd /usr/lib/systemd/system
sudo systemctl enable admin.target 

创建文件夹

sudo mkdir /usr/lib/systemd/system/admin.target.wants
chown -R admin /usr/lib/systemd/system/admin.target.wants

admin.target.wants下创建自启动服务,例如nginx服务

vim /usr/lib/systemd/system/nginx.service

[Unit]

Description=nginx

After=network.target


[Service]

Type=forking

ExecStart=/home/admin/app/server/nginx/nginx4his/sbin/nginx

ExecReload=/home/admin/app/server/nginx/nginx4his/sbin/nginx -s reload

ExecStop=/home/admin/app/server/nginx/nginx4his/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=admin.target
cd /usr/lib/systemd/system/
chmod 754 nginx.service
sudo systemctl enable nginx.service

服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下,这时就可以利用systemctl进行测试了

#查看执行状态
systemctl status nginx.service
#查看执行详情
journalctl -xe
nginx启动失败systemctl start nginx.service
启动nginx失败,报错信息如下:Starting nginx: nginx: [emerg] bind() to 0.0.0.0:**** failed (13: Permission denied)
SELinux is preventing /usr/lib/systemd/systemd from execute access on the file nginx
这通常是因为开启了SELinux的原因,使用命令 getenforce 可以查看SELinux状态,如果输出为 enforcing 表示已开启。
用以下方法关闭[不建议]:
1、临时关闭selinux 
setenforce 0 ##设置SELinux 成为permissive模式
setenforce 1 ##设置SELinux 成为enforcing模式
2、永久关闭selinux修改 /etc/selinux/config 文件
将 SELINUX=enforcing 改为 SELINUX=disabled
3、重启机器即可

添加selinux白名单

yum install policycoreutils-python
cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
semodule -i mynginx.pp

总结:

非root用户下权限对软件的影响比较大,软件安装需要根据实际环境来处理

root用户设置nginx开机启动

0

评论区