哪吒改成nobody运行

2025年4月20日 20:30:00

1.1什么是nobody?

维基百科上这么说的

https://zh.wikipedia.org/wiki/Nobody_(%E7%94%A8%E6%88%B7%E5%90%8D)

在许多Unix系统与类Unix系统(如Linux)中,nobody是一个没有任何权限的用户。该用户不拥有任何文件,不属于任何特权组,并且除了其他用户都具有的权限外,没有任何特殊权限。某些系统还会定义类似的用户组“nogroup”。

1.2优点

哪吒agent在系统上是以root权限运行的,权限过大,nobody无任何权限,那样子就更加安全了

1.3缺点

我发现,用完之后ping失效了,

不过也无所谓,我本地nas有uptime kuma的ping

2 哪吒的其他安全措施

可以参考我的这些

tls回源,加上cloudflare隐藏ip,关闭8008端口的外部访问,把哪吒后台重定向到首页

可以看我这个https://qklg.net/post/20241231/

不过前几天cloudflare的grpc出问题了,我的解决办法可以看这个

https://qklg.net/post/20250415/

关闭密码登录,用github 或者谷歌登录

谷歌可以参考我博客的这篇 https://qklg.net/post/20250126/

github的话可以看官方文档

最重要的禁用webssh的话

/opt/nezha/agent/config.yml 下的把 disable_command_execute:改成true

重启下哪吒探针就ok了

3 debian修改

参考https://www.nodeseek.com/post-315789-1

① 权限修改

把/opt/nezha下文件夹和文件统统搞成nobody

chown -R nobody:nogroup /opt/nezha/

效果如图

② 修改systemd

/etc/systemd/system/nezha-agent.service

加入如下

User=nobody
Group=nogroup
WorkingDirectory=/home

效果如图

③ 重启systemctl和nezha

systemctl daemon-reload
systemctl restart nezha-agent.service

④ 效果检查

ps -ef | grep agent

4 openwrt修改

openwrt的安装办法是基于官方文档的

官方openwrt的agent安装办法请查看文档

https://nezha.wiki/guide/agent.html#%E5%9C%A8-openwrt-%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%AE%89%E8%A3%85-agent

① 权限修改

openwrt的是在/etc/nezha下的

所以命令修改下了

chown -R nobody:nogroup /etc/nezha/

效果如下

② 修改init.d

/etc/init.d/nezha-service

#!/bin/sh /etc/rc.common

START=99
USE_PROCD=1

start_service() {
    procd_open_instance
    procd_set_param command /etc/nezha/nezha-agent -c /etc/nezha/config.yml
    procd_set_param user nobody
    procd_set_param group nogroup
    procd_set_param respawn
    procd_close_instance
}

stop_service() {
    killall nezha-agent
}

restart() {
    stop
    sleep 2
    start
}

③ 重启init.d

/etc/init.d/nezha-service enable
/etc/init.d/nezha-service restart

或者直接reboot重启下机子完事

④ 效果检查

ps -ef | grep agent

5 unraid修改

unraid的安装办法的话基于

https://qklg.net/post/20241209/

① 权限修改

我的是在/mnt/disk1/nezha 下

命令如下

chown -R nobody:nogroup /mnt/disk1/nezha/

② 修改脚本

/boot/config/plugins/user.scripts/scripts/nezha 脚本

改成如下

#!/bin/bash
su -s /bin/bash nobody -c "/mnt/disk1/nezha/nezha-agent -c /mnt/disk1/nezha/config.yml"

③ 重启脚本

unraid上脚本重启的话 停止之后,再重新启动即可

④ 效果检查

ps -ef | grep agent

如果还有其他的进程运行的话,root下的

直接kill -9 进程号就行了