Ubuntu Serverにユーザーを追加してsudoを設定する

Ubuntu Serverに新しく追加したユーザーに、rootの特権でコマンドを実行するsudoコマンドの権限を与えるための設定手順です。

新しく追加したユーザーでsudoを使えるようにするには、sudoの許可が与えられているグループに所属させる方法と、/etc/sudoers.dディレクトリの下に設定ファイルを作成する方法があります。

新しいユーザーの追加

Ubuntu ServerにSSH接続して、adduserコマンドで新しいユーザーを追加します。

sudo adduser 【新しいユーザー名】

パスワードを2回入力して、あとはEnterキーを押すか必要な情報を入力していきます。

新しいグループ `・・・' (・・・) を追加しています...
新しいユーザー `・・・' (・・・) をグループ `testuser' に追加しています...
ホームディレクトリ `/home/・・・' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しい パスワード: 【パスワードを入力する】
新しい パスワードを再入力してください: 【もう一度パスワードを入力する】
passwd: パスワードは正しく更新されました
・・・ のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
	フルネーム []: 
	部屋番号 []: 
	職場電話番号 []: 
	自宅電話番号 []: 
	その他 []: 
以上で正しいですか? [Y/n] 

いったんSSHを切断して、新しいユーザー名でSSH接続してもよいですが、

ssh 【新しいユーザー名】@【UbuntuのIPアドレス】

現在ログイン中のユーザーから新しいユーザーでログインすることもできます。

su - 【新しいユーザー名】

「-」ですが、これは「–login」オプションと同じ意味があります。「–login」オプションはSSHでログインしたときと同等の環境でシェルを起動します。

例えば、「-」なしの場合、元のシェルの環境変数は引き継がれますが、「-」ありの場合、元のシェルの環境変数はクリアされます。また、カレントディレクトリも新しいユーザーのホームディレクトリに切り替わります。

~$ export A="Hello world"
~$ echo $A
Hello world
~$ su 【新しいユーザー名】
パスワード: 
【新しいユーザー名】:/home/・・・$ echo $A
Hello world
【新しいユーザー名】:/home/・・・$ exit
exit
~$ su - 【新しいユーザー名】
パスワード: 
【新しいユーザー名】:~$ echo $A

【新しいユーザー名】:~$ 

新しいユーザーのsudoの設定

新しいユーザーを作ったばかりの状態ではsudoコマンドが使えません。そこで、sudoコマンドを使うための設定を行います。

【新しいユーザー名】:~$ sudo bash
[sudo] 【新しいユーザー名】 のパスワード: 【パスワードを入力する】
【新しいユーザー名】 は sudoers ファイル内にありません。この事象は記録・報告されます。

方法1: sudoグループを追加する

Ubuntu Serverのsudoersファイルを見ると、以下のような記述があります。rootユーザーとsudoグループは、任意のホストにおいて任意のユーザー・グループとして任意のコマンドを実行できます。

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Ubuntu Serverをインストールしたときに作成したユーザーが所属しているグループは以下のとおり。sudoグループに所属しているので、sudoコマンドを使うことができます。

~$ groups
【ログインユーザー名と同じグループ名】 adm cdrom sudo dip plugdev lxd

そこで、新しいユーザーにもsudoグループを追加します。

sudo usermod -aG sudo 【新しいユーザー名】
【新しいユーザー名】:~$ sudo bash
[sudo] 【新しいユーザー名】 のパスワード: 【パスワードを入力する】
root:/home/【新しいユーザー名】# 

方法2: /etc/sudoers.d/にファイルを作成する

/etc/sudoersファイルに新しいユーザーの記述を追加する方法でもできますが、/etc/sudoersファイルは/etc/sudoers.d/ディレクトリに入っているファイルをインクルードするので、/etc/sudoers.d/配下にvisudoコマンドでファイルを作成します。

sudo bash
cd /etc/sudoers.d/
visudo -f 【新しいユーザー名】

パスワード無しでsudoできるようにするときは「NOPASSWD:」を追加します。

【新しいユーザー名】 ALL=(ALL:ALL) NOPASSWD: ALL

/etc/sudoers.d/配下に作ったファイルのファイルモードは440 (-r–r—–)になっている必要があります。以下のようになっていれば大丈夫です。

# ls -l /etc/sudoers.d/
合計 8
-r--r----- 1 root root 1096  8月  3  2022 README
-r--r----- 1 root root   37  4月 29 23:26 【新しいユーザー名】

ファイルモードが440になっていなければchmodコマンドで変更します。

sudo chmod 440 /etc/sudoers.d/【新しいユーザー名】

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントの入力は終了しました。