Skip to content
VDS · オペレーティングシステム

root の代わりにユーザーと sudo

作業用ユーザーの作成方法、sudo の付与、SSH 鍵の移行、root でサーバーにログインするのをやめる方法について説明します。

更新日 2026年8月23日

マシンには完全なrootアクセスが付属しており、最初にやりたくなるのはrootのまま作業を続けることです。それはrm -rfでの最初のタイプミスまで便利です。実用的な構成は異なります。日常的なタスクには通常のユーザー、rootはsudo経由で、本当に必要なときだけ使用します。

ユーザーを作成する

DebianとUbuntu:

adduser artem
usermod -aG sudo artem

AlmaLinuxとCentOS Stream:

adduser artem
passwd artem
usermod -aG wheel artem

グループが異なります。Debian系ではsudo、RHEL系ではwheelです。権限を確認します:

sudo -l -U artem

SSHキーを移動する

パネルの「アクセス」タブ /hosting/vds/m/<id> で追加されたキーはrootユーザーに紐づきます。新しいユーザー用に自分で配置する必要があります:

mkdir -p /home/artem/.ssh
cp /root/.ssh/authorized_keys /home/artem/.ssh/
chown -R artem:artem /home/artem/.ssh
chmod 700 /home/artem/.ssh
chmod 600 /home/artem/.ssh/authorized_keys

ここでのパーミッションは形式上のものではありません。緩すぎると、sshdは警告なしにキーの受け入れを拒否します。

現在のウィンドウを閉じずに、別のターミナルウィンドウで新しいユーザーとしてログインできることを確認します:

ssh artem@<address>
sudo whoami

確認が成功した後にのみ、rootログインの無効化に進んでください。

sudoの使い方

sudo systemctl restart nginx
sudo -i
sudo -u www-data ls /var/www

sudo -iは完全なrootシェルを提供します。これは一連のコマンド用であり、恒久的な作業用ではありません。sudoの呼び出しはすべてログに記録され、インシデントを調査する際の手がかりになります:

journalctl -t sudo -n 50
grep sudo /var/log/auth.log

ログの詳細については、マシンにログインしたユーザーをご覧ください。

サービス用の権限

もう一つのよくある間違いは、「動作させるため」にアプリケーションをrootで実行することです。各サービスごとに、シェルを持たないシステムユーザーを作成します:

useradd --system --no-create-home --shell /usr/sbin/nologin appsrv
chown -R appsrv:appsrv /opt/app

そうすれば、アプリケーションの脆弱性が攻撃者にマシン全体を一度に引き渡すことはありません。

よくある間違い

間違い原因解決策
artem is not in the sudoers fileグループに属していない、または再ログインしていないusermod -aG sudo artem、再ログイン
キーが受け入れられない.sshのパーミッションが700より広い、または所有者がroot上記のようにchownとchmod
sudoのパスワードが機能しないユーザーにパスワードが設定されていないpasswd artem
sudoersの編集でsudoが壊れたファイル内の構文エラーvisudoのみを使用。レスキューモードで修復

/etc/sudoersは必ずvisudoコマンドで編集してください。保存前に構文をチェックします。壊れたファイルは全員から一度にsudoを奪います。