Skip to content

后台运行的正确姿势 #71

@blurgyy

Description

@blurgyy

关于 #45 提到的 root 权限, 分享一个使用普通用户的 systemd file 和相关配置

  • 新建用户 tg-bot 并禁止登录
useradd tg-bot -s /usr/sbin/nologin
  • 为用户 tg-bot 建立用于放置 rssbot.json 的文件夹,
sudo mkdir /var/lib/tg-bots-data
sudo chown tg-bot:tg-bot /var/lib/tg-bots-data
  • 编辑 /etc/systemd/system/rssbot.service, 写入
[Unit]
Description = RSS Bot for Telegram
Documentation = https://github.com/iovxw/rssbot
After = network.target
Wants = network-online.target

[Service]
# 对于 systemd 版本 240 及以上, 取消注释 `Type=exec`, 注释掉 `Type=simple` 
# Type=exec
Type = simple
User = tg-bot
Group = tg-bot
NoNewPrivileges = yes

ExecStart = /path/to/rssbot -d /var/lib/tg-bots-data/rssbot.json <token>

[Install]
WantedBy = multi-user.target

/path/to/rssbot 改成自己的可执行文件路径, <token> 改成自己的 token.

  • 启动
sudo systemctl daemon-reload
sudo systemctl start rssbot.service
sudo systemctl enable rssbot.service
systemctl status rssbot.service
  • 这样就可以以最小权限运行 rssbot, 使用 ps -ef | grep rssbot 查看:
tg-bot   28290     1  0 06:47 ?        00:00:57 /path/to/rssbot -d /var/lib/tg-bots-data/rssbot.json <token>

当然直接用 root 也可以...不过跑自己服务器上的东西还是想尽量简单嘛

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions