为朋友创建服务器账户(用户与权限)
和朋友一起管理服务器或一起开发机器人时,比起告诉对方您的账户密码,为朋友创建专用账户更安全。以后只需删除那个账户即可,也能区分谁做了什么。以 Ubuntu、Debian 为准。
1. 创建账户
sudo adduser friend-id
输入两次密码,姓名等其余问题可以直接按 Enter 跳过。现在朋友可以用 ssh friend-id@server-ip 连接了。
2. 授予管理员权限(sudo)——仅限真正可以信任时
拥有 sudo 权限就可以更改、删除服务器上的一切。请仅在确有必要时授予。
sudo usermod -aG sudo friend-id
如果要收回权限:
sudo deluser friend-id sudo
Fedora 使用
wheel组而不是sudo组。(sudo usermod -aG wheel friend-id)
3. 共用同一个文件夹
如果想在不授予 sudo 权限的情况下,只让朋友一起修改特定文件夹(例如:机器人文件夹),请创建一个组。
sudo groupadd botteam # 创建组
sudo usermod -aG botteam $USER # 将自己加入组
sudo usermod -aG botteam friend-id # 将朋友加入组
sudo chgrp -R botteam /home/your-id/your-bot # 将文件夹改为该组所有
sudo chmod -R g+rwX /home/your-id/your-bot # 给组读写权限
sudo chmod g+s /home/your-id/your-bot # 新建的文件也归属同一个组
sudo chmod o+x /home/your-id # 让朋友可以经过您的主目录
组的更改需要重新连接后才会生效。
4. 让朋友使用 SSH 密钥连接(推荐)
向朋友索取公钥(id_ed25519.pub 文件的内容,以 ssh-ed25519 开头的一行)并注册。无需互相传递密码。
sudo mkdir -p /home/friend-id/.ssh
echo "朋友发来的一行公钥" | sudo tee -a /home/friend-id/.ssh/authorized_keys
sudo chown -R friend-id:friend-id /home/friend-id/.ssh
sudo chmod 700 /home/friend-id/.ssh
sudo chmod 600 /home/friend-id/.ssh/authorized_keys
生成密钥的方法请参考 SSH 连接指南中的“使用 SSH 密钥免密码连接”。
5. 删除账户
不再共用后,请删除账户。加上 --remove-home 会同时删除朋友的主目录,因此请先把需要的文件移走。
sudo deluser --remove-home friend-id
用于确认的命令
id friend-id # 属于哪些组
who # 当前已连接的用户
last -n 20 # 最近的登录记录
在 Windows 服务器上,可以在 设置 → 帐户 → 其他用户 或“计算机管理 → 本地用户和组”中创建账户。如果要通过远程桌面连接,需要将该账户添加到“Remote Desktop Users”组。