我在无头 linux 机器上运行私人游戏服务器。因为我不是白痴,所以说服务器作为它自己的非特权用户运行,具有下载更新和修改世界数据库所需的最低访问权限。
我还创建了一个 systemd 单元文件,以便在需要时正确启动、停止和重新启动服务器(例如,对于上述更新)。
但是,为了实际调用systemctl或者service <game> start/stop/restart我仍然需要以 root 或有sudo能力的用户身份登录。
有没有办法告诉 systemd 对于该<game>服务,gamesrv允许非特权用户运行启动/停止/重启命令?
也许我没有使用正确的术语,所以请允许我用一个例子来解释自己。以用户“centos”通过 SSH 连接并cat /etc/passwd在我的 Centos7 机器上执行,我得到:
centos:x:1000:1000:Cloud User:/home/centos:/bin/bash
www:x:1001:1001::/home/www:/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
现在,如果尝试sudo su www -我得到:此帐户当前不可用。
据我有限的知识,这是由于nologin部分造成的。我想要做的是能够在 SSH 会话中切换到 www 用户,而不(如果可能)让 www 用户可以通过 SSH 直接访问服务器,就像 root 用户尝试 SSH 并收到错误一样告诉您应该以centos身份登录,然后根据需要更改为 root。
实现所需行为的步骤是什么?
我的任务是研究在我们的名称服务器上实施 DNSSEC。虽然这方面的技术方面(生成密钥、标志区域、准备翻转)相对简单,但我遇到了后勤问题。
从我一直在阅读的文档来看,1024 位对于区域签名密钥来说是一个很好的大小,正确的程序是每个区域一个 ZSK,大约一个月的滚动
然而,在一台具有良好熵的相当快的计算机上最多需要 10 分钟来生成一个 1024 位的密钥......而我为超过三千个区域的主机工作的 ISP。除非我以某种方式使流程从头到尾自动化,否则这是行不通的——即使我这样做了,到流程完成时,几乎是开始 NEXT 翻转的时候了。
简而言之,这是不可行的。现在,我将 DNSSEC 限制为明确要求的客户,但这充其量只是权宜之计。
我的问题:
编辑:添加了我用来生成密钥的确切命令:
caleburn: ~/Projects/Systemec/DNS-magic/DNSSEC/keys/ >time dnssec-keygen -r/dev/random -a RSASHA256 -f KSK -b 1280 -n ZONE example.com
Generating key pair.............................+++++ ...+++++
Kexample.com.+008+10282
real 9m46.094s
user 0m0.092s
sys 0m0.140s
caleburn: ~/Projects/Systemec/DNS-magic/DNSSEC/keys/ >time dnssec-keygen -r/dev/random -a RSASHA256 -b 1280 -n ZONE example.com
Generating key pair.........................+++++ .........+++++
Kexample.com.+008+22173
real 12m47.739s
user 0m0.124s
sys 0m0.076s
Run Code Online (Sandbox Code Playgroud)