友だちにサーバーのアカウントを作ってあげる (ユーザーと権限)
友だちと一緒にサーバーを管理したり、ボットを一緒に作ったりするときは、自分のアカウントのパスワードを教える代わりに、友だち専用のアカウントを作ってあげるのが安全です。後でそのアカウントだけを削除すればよく、誰が何をしたかも区別できます。Ubuntu・Debianを前提としています。
1. アカウントを作る
sudo adduser friend-id
パスワードを2回入力し、名前などの残りの質問はEnterで飛ばしてもかまいません。これで友だちはssh friend-id@server-ipで接続できます。
2. 管理者権限(sudo)を与える — 本当に信頼できる場合だけ
sudo権限があると、サーバーのすべてを変更・削除できます。本当に必要なときだけ与えます。
sudo usermod -aG sudo friend-id
権限を取り消すには:
sudo deluser friend-id sudo
Fedoraでは、
sudoグループの代わりにwheelグループを使います。(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/my-id/my-bot # フォルダーをグループの所有に
sudo chmod -R g+rwX /home/my-id/my-bot # グループに読み取り・書き込み権限
sudo chmod g+s /home/my-id/my-bot # 新しく作るファイルも同じグループに
sudo chmod o+x /home/my-id # 友だちが自分のホームフォルダーを通過できるように
グループの変更は、再接続してはじめて適用されます。
4. 友だちにはSSHキーで接続してもらう (推奨)
友だちから公開鍵(id_ed25519.pubファイルの内容で、ssh-ed25519で始まる1行)を受け取って登録します。パスワードをやり取りする必要はありません。
sudo mkdir -p /home/friend-id/.ssh
echo "友だちから届いた公開鍵の1行" | 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」グループに追加する必要があります。