メインコンテンツへスキップ
  1. Linux 関連記事一覧/
  2. Ubuntu 26.04 LTS Server/

Ubuntu 26.04 LTS Server のユーザー作成と sudo 権限の設定

目次

ユーザーの作成と sudo 権限の設定方法

Ubuntu 26.04 LTS Server で一般ユーザーを作成し、管理コマンドを実行できる sudo 権限を付与・削除する手順を解説します。Ubuntu では root にパスワードが設定されておらず root で直接ログインできないため、管理作業は一般ユーザーが sudo を付けて実行します。

本記事の実行例は、cloud-init で作成した初期ユーザー kazulog でログインし、新しいユーザー taro を作成する流れになっています。

Ubuntu 25.10 以降の sudo は Rust で書き直された sudo-rs です(本記事の環境は sudo-rs 0.2.13)。基本的な使い方と /etc/sudoers の書式は従来の sudo と同じですが、パスワードのプロンプトが [sudo: authenticate] Password: になり、入力中の文字数が * で表示されるなど、画面の表示が一部異なります。

現在のユーザーと sudo 権限の確認方法

ログイン中のユーザーと所属グループは id コマンドで確認できます。sudo グループ(GID 27)に入っているユーザーが sudo を実行できます。

ユーザーと所属グループの確認コマンド
id
ユーザーと所属グループの確認コマンド実行例
kazulog@sv1:~$ id
uid=1000(kazulog) gid=1000(kazulog) groups=1000(kazulog),4(adm),24(cdrom),27(sudo),30(dip),102(lxd)
kazulog@sv1:~$

自分が sudo で実行できるコマンドは sudo -l で確認できます。

sudo で実行できるコマンドの確認コマンド
sudo -l
sudo で実行できるコマンドの確認コマンド実行例
kazulog@sv1:~$ sudo -l
User kazulog may run the following commands on sv1:
    (ALL : ALL) ALL
    (ALL) NOPASSWD: ALL
kazulog@sv1:~$

上記は sudo グループの設定((ALL : ALL) ALL)に加え、cloud-init が /etc/sudoers.d/90-cloud-init-users に書いたパスワード不要の設定((ALL) NOPASSWD: ALL)が有効になっている例です。

ユーザーの作成方法(adduser コマンド)

ユーザーの作成コマンド
sudo adduser [NAME]
入力箇所入力内容
[NAME]作成するユーザー名を指定

adduser は対話形式で、パスワードと氏名などの情報を順に聞いてきます。氏名以降の項目は Enter キーで省略できます。

ユーザーの作成コマンド実行例
kazulog@sv1:~$ sudo adduser taro
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for taro
Enter the new value, or press ENTER for the default
	Full Name []: Taro Yamada
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] Y
kazulog@sv1:~$

上記はユーザー taro を作成した実行例です。ホームディレクトリ /home/taro が作られ、シェルは /bin/bash になります。

adduser は対話形式のため、スクリプトの中など対話できない場面では使えません。その場合は次の useradd を使います。

作成したユーザーは id コマンドや getent passwd コマンドで確認できます。

作成したユーザーの確認コマンド実行例
kazulog@sv1:~$ id taro
uid=1001(taro) gid=1001(taro) groups=1001(taro),100(users)
kazulog@sv1:~$ getent passwd taro
taro:x:1001:1001:Taro Yamada,,,:/home/taro:/bin/bash
kazulog@sv1:~$ ls -ld /home/taro
drwxr-x--- 2 taro taro 4096 Sep 10 13:31 /home/taro
kazulog@sv1:~$

ユーザーの作成方法(useradd コマンド・1行で作成する)

useradd は対話を伴わないコマンドで、オプションを指定して1行でユーザーを作成できます。スクリプトから実行する場合や、まとめて複数のユーザーを作成する場合に使います。

ユーザーの作成コマンド(useradd)
sudo useradd -m -s /bin/bash -c "[COMMENT]" -G [GROUP] [NAME]
オプション内容
-mホームディレクトリを作成する(指定しないと作成されない
-sログインシェルを指定する(指定しないと /bin/sh になる
-cコメント欄(氏名など)を指定する
-G追加する補助グループを指定する(sudo を指定すれば作成と同時に sudo 権限が付く)
[NAME]作成するユーザー名を指定

パスワードは useradd では設定されないため、passwd で設定するか、chpasswdユーザー名:パスワード を渡して1行で設定します。

パスワードを1行で設定するコマンド
echo '[NAME]:[PASSWORD]' | sudo chpasswd
useradd と chpasswd によるユーザー作成の実行例
kazulog@sv1:~$ sudo useradd -m -s /bin/bash -c 'Hanako Suzuki' -G sudo hanako
kazulog@sv1:~$ id hanako
uid=1001(hanako) gid=1001(hanako) groups=1001(hanako),27(sudo)
kazulog@sv1:~$ getent passwd hanako
hanako:x:1001:1001:Hanako Suzuki:/home/hanako:/bin/bash
kazulog@sv1:~$ ls -ld /home/hanako
drwxr-x--- 2 hanako hanako 4096 Sep 10 13:57 /home/hanako
kazulog@sv1:~$ sudo passwd -S hanako
hanako L 2026-09-10 0 99999 7 -1
kazulog@sv1:~$ echo 'hanako:hanako-pass-2026' | sudo chpasswd
kazulog@sv1:~$ sudo passwd -S hanako
hanako P 2026-09-10 0 99999 7 -1
kazulog@sv1:~$ su - hanako
Password: 
hanako@sv1:~$ id
uid=1001(hanako) gid=1001(hanako) groups=1001(hanako),27(sudo)
hanako@sv1:~$ sudo whoami
[sudo: authenticate] Password: ****************                
root
hanako@sv1:~$ exit
logout

useradd はパスワードを設定するまで、passwd -S の2列目が L(ロック)のままでログインできません。上記の実行例では chpasswd でパスワードを設定した後に P へ変わっています。

なお、オプションを付けずに sudo useradd [NAME] とだけ実行すると、ホームディレクトリが作られず、ログインシェルも /bin/sh になります。-m-s は忘れずに指定してください。

オプションを付けずに useradd を実行した場合の実行例
kazulog@sv1:~$ sudo useradd jiro
kazulog@sv1:~$ getent passwd jiro
jiro:x:1001:1001::/home/jiro:/bin/sh
kazulog@sv1:~$ sudo passwd -S jiro
jiro L 2026-09-10 0 99999 7 -1
kazulog@sv1:~$ ls -ld /home/jiro
ls: cannot access '/home/jiro': No such file or directory
kazulog@sv1:~$

useradd で作成したユーザーを削除する場合は userdel -r を使います(-r でホームディレクトリも削除。deluser --remove-home と同じ動作です)。

useradd で作成したユーザーの削除コマンド実行例
kazulog@sv1:~$ sudo userdel -r hanako
userdel: hanako mail spool (/var/mail/hanako) not found
kazulog@sv1:~$ id hanako
id: 'hanako': no such user
kazulog@sv1:~$ ls -ld /home/hanako
ls: cannot access '/home/hanako': No such file or directory

sudo 権限の付与方法(sudo グループへの追加)

作成したユーザーに管理コマンドの実行を許可するには、sudo グループに追加します。

sudo 権限の付与コマンド
sudo usermod -aG sudo [NAME]
入力箇所入力内容
[NAME]sudo 権限を付与するユーザー名を指定
-a(append)オプションを付け忘れると、指定した sudo グループ以外の補助グループ(admusers など。プライマリグループは残ります)がすべて外れてしまいます。必ず -aG の形で実行してください。
sudo 権限の付与コマンド実行例
kazulog@sv1:~$ sudo usermod -aG sudo taro
kazulog@sv1:~$ id taro
uid=1001(taro) gid=1001(taro) groups=1001(taro),27(sudo),100(users)
kazulog@sv1:~$

グループの追加は次回ログインから有効になります。su - [NAME] で新しくログインし、sudo -lsudo whoami で sudo が使えることを確認します。

sudo 権限の確認コマンド実行例
kazulog@sv1:~$ su - taro
Password: 
taro@sv1:~$ id
uid=1001(taro) gid=1001(taro) groups=1001(taro),27(sudo),100(users)
taro@sv1:~$ sudo -l
[sudo: authenticate] Password: **************              
User taro may run the following commands on sv1:
    (ALL : ALL) ALL
taro@sv1:~$ sudo whoami
root
taro@sv1:~$ exit
logout
kazulog@sv1:~$

sudo whoami の結果が root になっていれば、sudo 権限が正しく付与されています。なお、sudo -l で一度認証すると一定時間はパスワードを聞かれないため、続く sudo whoami ではプロンプトが出ていません。

sudo 権限の削除方法(sudo グループからの削除)

sudo 権限の削除コマンド
sudo gpasswd -d [NAME] sudo
入力箇所入力内容
[NAME]sudo 権限を削除するユーザー名を指定
sudo 権限の削除コマンド実行例
kazulog@sv1:~$ sudo gpasswd -d taro sudo
Removing user taro from group sudo
kazulog@sv1:~$ id taro
uid=1001(taro) gid=1001(taro) groups=1001(taro),100(users)
kazulog@sv1:~$ su - taro
Password: 
taro@sv1:~$ sudo whoami
sudo: I'm sorry taro. I'm afraid I can't do that
taro@sv1:~$ exit
logout
kazulog@sv1:~$

上記は taro から sudo 権限を削除した実行例です。削除後に sudo を実行すると、パスワードを聞かれることなく sudo: I'm sorry taro. I'm afraid I can't do that と表示されて拒否されます(従来の sudo では taro is not in the sudoers file というメッセージでした)。

パスワード入力なしで sudo を実行する設定方法

自動化スクリプトなどで、パスワードの入力なしに sudo を実行したい場合は、/etc/sudoers.d/ 配下に設定ファイルを追加します。/etc/sudoers 本体は編集せず、visudo コマンドで構文チェックしながら作成します。

sudoers 設定ファイルの作成コマンド
sudo visudo -f /etc/sudoers.d/[NAME]
入力箇所入力内容
[NAME]設定対象のユーザー名(ファイル名は任意。ただし . を含む名前と ~ で終わる名前のファイルは読み込まれない)

エディタ(既定では nano)が開くので、次の1行を記述して保存します。

パスワード入力なしで sudo を許可する設定
[NAME] ALL=(ALL) NOPASSWD:ALL

エディタを使わずに1行だけ書き込む場合は、次のように標準入力から visudo に渡すこともできます。以下の実行例はこの方法でファイルを作成しています。

sudoers 設定ファイルを標準入力から作成するコマンド
echo 'taro ALL=(ALL) NOPASSWD:ALL' | sudo EDITOR=tee visudo -f /etc/sudoers.d/taro

設定ファイルの構文は visudo -c で確認できます。/etc/sudoers.d/ 配下のファイルも検査対象で、誤りがあるとファイル名と行番号付きでエラーが表示されます。

sudoers 設定ファイルの構文チェックコマンド実行例
kazulog@sv1:~$ sudo visudo -c
/etc/sudoers: parsed OK
kazulog@sv1:~$ sudo ls -l /etc/sudoers.d/
total 12
-r--r----- 1 root root 141 Sep 10 13:30 90-cloud-init-users
-r--r----- 1 root root 863 Jan 15  2026 README
-rw-r----- 1 root root  28 Sep 10 13:31 taro
kazulog@sv1:~$ sudo cat /etc/sudoers.d/taro
taro ALL=(ALL) NOPASSWD:ALL
kazulog@sv1:~$
パスワード入力なしの sudo 実行例
kazulog@sv1:~$ su - taro
Password: 
taro@sv1:~$ sudo -l
User taro may run the following commands on sv1:
    (ALL) NOPASSWD: ALL
taro@sv1:~$ sudo whoami
root
taro@sv1:~$ exit
logout
kazulog@sv1:~$
NOPASSWD:ALL はすべてのコマンドをパスワードなしで許可する設定です。特定のコマンドだけを許可する場合は、ALL の代わりにコマンドを絶対パスで列挙します(例: taro ALL=(ALL) NOPASSWD:/usr/bin/systemctl restart nginx)。

パスワードの変更方法(passwd コマンド)

自分のパスワードは passwd、他のユーザーのパスワードは sudo passwd [NAME] で変更します。以下の実行例では、変更後に su - taro で新しいパスワードを使ってログインできることを確認しています。

パスワードの変更コマンド
sudo passwd [NAME]
入力箇所入力内容
[NAME]パスワードを変更するユーザー名を指定(省略時は自分自身)
パスワードの変更コマンド実行例
kazulog@sv1:~$ sudo passwd taro
New password: 
Retype new password: 
passwd: password updated successfully
kazulog@sv1:~$ su - taro
Password: 
taro@sv1:~$ whoami
taro
taro@sv1:~$ exit
logout
kazulog@sv1:~$

ユーザーの削除方法(deluser コマンド)

ユーザーの削除コマンド
sudo deluser --remove-home [NAME]
入力箇所入力内容
[NAME]削除するユーザー名を指定

--remove-home を付けるとホームディレクトリも削除されます。付けない場合、ユーザーは削除されますがホームディレクトリは残ります。deluser は正常に完了しても何も表示しません。

/etc/sudoers.d/ に作成した設定ファイルは deluser では削除されないため、先に rm で削除しておきます。

ユーザーの削除コマンド実行例
kazulog@sv1:~$ sudo rm /etc/sudoers.d/taro
kazulog@sv1:~$ sudo visudo -c
/etc/sudoers: parsed OK
kazulog@sv1:~$ sudo deluser --remove-home taro
kazulog@sv1:~$ id taro
id: 'taro': no such user
kazulog@sv1:~$ ls -ld /home/taro
ls: cannot access '/home/taro': No such file or directory
kazulog@sv1:~$

root ユーザーについて

Ubuntu の root アカウントは存在しますが、インストール時にパスワードが設定されず、/etc/shadow のパスワード欄にはどの値にも一致しない * が入っています。そのため、既定では root のパスワードで直接ログイン(コンソールのログイン、su -)することができません。passwd -S root の2列目が L(ロック)になっているのがこの状態です。

root のパスワード状態の確認 実行例
kazulog@sv1:~$ sudo passwd -S root
root L 2026-08-23 0 99999 7 -1
kazulog@sv1:~$ sudo grep '^root:' /etc/shadow
root:*:20688:0:99999:7:::
kazulog@sv1:~$ su -
Password: 
su: Authentication failure
kazulog@sv1:~$

root の権限で作業する場合は、sudo で root のシェルを起動します。

root シェルの起動コマンド
sudo -i
コマンド動作
sudo -iroot のログインシェルを起動する(カレントディレクトリは /root に移る)
sudo -sカレントディレクトリを引き継いだまま root のシェルを起動する(ログイン処理は行わない。ホームディレクトリは /root になる)
sudo -s と sudo -i の実行例
kazulog@sv1:~$ cd /tmp
kazulog@sv1:/tmp$ sudo -s
root@sv1:/tmp# whoami
root
root@sv1:/tmp# pwd
/tmp
root@sv1:/tmp# echo $HOME
/root
root@sv1:/tmp# exit
exit
kazulog@sv1:/tmp$ sudo -i
root@sv1:~# whoami
root
root@sv1:~# pwd
/root
root@sv1:~# echo $HOME
/root
root@sv1:~# exit
logout
kazulog@sv1:/tmp$

root で直接ログインできるようにしたい場合は、sudo passwd root で root にパスワードを設定します。設定後は passwd -SP になり、コンソールや su - から root でログインできます。

root のパスワード設定コマンド
sudo passwd root
root のパスワード設定と su - によるログイン 実行例
kazulog@sv1:~$ sudo passwd root
New password: 
Retype new password: 
passwd: password updated successfully
kazulog@sv1:~$ sudo passwd -S root
root P 2026-09-10 0 99999 7 -1
kazulog@sv1:~$ su -
Password: 
root@sv1:~# whoami
root
root@sv1:~# exit
logout
kazulog@sv1:~$
root で直接作業すると、誰がどの操作をしたかの記録が残らなくなります。通常は root のパスワードを設定せず、sudo で作業してください。なお、root のパスワードを設定しても SSH で root にログインできるとは限りません。SSH 側の設定はUbuntu 26.04 LTS Server の SSH サーバー設定で解説しています。

元の状態に戻す(root のパスワードをロックする)には sudo passwd -l root を実行します。

root のパスワードをロックするコマンド
sudo passwd -l root
root のパスワードをロックするコマンド実行例
kazulog@sv1:~$ sudo passwd -l root
passwd: password changed.
kazulog@sv1:~$ sudo passwd -S root
root L 2026-09-10 0 99999 7 -1
kazulog@sv1:~$ sudo grep '^root:' /etc/shadow
root:!$y$j9T$ZwiZAHFi9TMLave282yGC.$h.9O6DniClLZm3k/ot2dm8kKDhq6EbgbuhIIWiTUBvA:20706:0:99999:7:::
kazulog@sv1:~$ su -
Password: 
su: Authentication failure
kazulog@sv1:~$

passwd -l はハッシュの先頭に ! を付けてロックするため、/etc/shadow にはパスワードのハッシュが残ります。インストール直後と同じ * に戻したい場合は sudo usermod -p '*' root を実行します。

検証環境と実行ログ

本記事の実行例は、CML 上の Ubuntu 26.04 LTS Server(cloud image、cloud-init で初期ユーザー kazulog を作成)で採取したものです。各手順の実行ログ(プロンプトから最後の出力行まで)を以下からダウンロードできます。

STEP操作実行ログ
0初期状態の確認log
1ユーザーの作成(adduserlog
111行でのユーザー作成(useradd + chpasswd)と削除(userdel -rlog
11オプションなしの useradd の既定log
2sudo 権限の付与(usermod -aG sudolog
3sudo 権限の削除(gpasswd -dlog
4パスワード入力なしの sudo(/etc/sudoers.d/log
5パスワードの変更(passwdlog
6ユーザーの削除(deluser --remove-homelog
7root のパスワード状態の確認と sudo -ilog
8sudo -s / sudo -i の違い、root のパスワード設定と su -log
9root のパスワードのロック(passwd -llog
10login コマンドで root ログイン、パスワード欄を * に戻すlog

参考リンク

Ubuntu Server documentation: User management

関連記事

Ubuntu 公式ページ