開発ブログ

WWWクリエイターズが送る、Git、CSS、HTML、コマンドライン、Macの便利機能など、開発に関する役立ち情報発信します。気まぐれに更新。

Ubuntuにユーザ追加してsudo権限付与!ユーザ/グループ操作まとめ

最終更新:2017-10-10 by Joe

UbuntuなどのLinux系OSで、ユーザの追加、ユーザの一覧、ユーザグループの確認、などユーザ関連の編集作業に関するコマンドの紹介です。

サーバーを飛び回る昨今のエンジニア。「あれ、いまユーザどうなってんだっけ?」という確認と編集作業は非常によく発生するかと思います。私は、なんかだかそのたびに毎回ググっている気もするので・・、自分用の意味も含めてメモりました。

Ubuntuに、新規ユーザを追加する

Ubuntuで誰もが実行する最初のコマンド。それが「ユーザ追加」です。

// 新規ユーザを追加するUbuntuコマンド
$ sudo adduser USER_NAME

「useradd」じゃなくて「adduser」ですね。useradd は、ユーザ追加だけして、/home/配下のユーザディレクトリを作ってくれません。

一度覚えたつもりでも・・、時間がたつと、adduser, useradd、いや、 あれ、どっちだっけ?と、いつまでたっても、どっちがどっちか覚えられない・・、このコマンドの名前をつけた人は今の全世界中の Ubuntu 初学者をモヤモヤさせた責任を負っていと思います。

下記、一応Ubuntuマニュアルです、もし興味があれば:

ユーザに、sudo権限を付与する

さて、さっき作ったUSER_NAMEさんをsudoグループに追加する、という操作になります。これ、グループの編集は、対象のユーザが一回ログアウトしないと反映されないので、自分に対して設定した場合など「あれっ?」ってならないように、ご注意ください。

// USER_NAMEさんを、sudoというグループに追加するUbuntuコマンド
$ sudo gpasswd -a USER_NAME sudo

// 同義
$ sudo usermod -aG sudo USER_NAME

ちなみに、CentOSなどRedHut系のLinuxでは少し別の方法で、sudoersというファイルを編集することになります。いったん外部の記事リンク貼っておきます。

後者の「usermod」は -a (--append) オプションがないと、追加でなく上書きになってしまうので要注意です。

上記2つのコマンドは、新しくサーバーを立ち上げてセットアップを行う時、本当に毎回おこなうコマンドでした。

不要なユーザを削除する

やべ、ユーザ名、間違えて作っちゃった!というときのコマンド。「-r」オプションで、まとめてユーザディレクトリも消してくれます。

// USER_NAMAさんを削除する。-r (--remove)でユーザディレクトリも消す。
$sudo userdel -r USER_NAMA

よく調べたら、「deluser」ってコマンドももちろんあるみたいですw。ちょっとこれの違いがわからないですけど、マニュアルに依ると、deluserのほうが、機能が多そうですね。とくに --remove-all-file とかいう強力なオプションもあるようですが、果たして使うことがあるのでしょうか・・・。

こちらもまたリンク貼っときますので、気になる人はこちらからどうぞ:

ユーザの一覧を確認する

Ubuntuで、サーバーに作成済みのユーザ一覧を表示します。

// Ubuntuで作成済みのユーザ一覧を確認するコマンド
$ cat /etc/passwd

// もしくは
$ getent passwd

もちろん前者の方が直感的ではありますが、getentはいろいろ設定とかの操作系のコマンドがまとまっているみたいなのでね。覚えておくといいのかも。ヘルプによると、「getent – get entries from Name Service Switch libraries」。あー、なるほど、「GET ENTries」の略って事ですね。なんかすこしだけすっきりしました。

グループと所属ユーザの一覧を表示する

Ubuntuで、サーバーに作成済みのグループの一覧を表示します。所属しているユーザも一緒に表示されるので、グループに関しては、だいたいこれでわかります。

// Ubuntuで作成済みのグループ一覧を確認するコマンド
$ cat /etc/group

// もしくは
$ getent group

ユーザが所属するグループを確認する

あれ?自分sudo 入ってたっけ?みたいな。USER_NAMEを省略すると自分です。

// USER_NAMEのグループ一覧を確認するコマンド
$ groups USER_NAME

ユーザをあるグループに追加する

Ubuntuで、USER_NAMEさんを、GROUP_NAMEに追加します。さっきsudoで使ったやつと一緒ですが、改めて。

// Ubuntuでユーザをグループに追加するコマンド
$ sudo gpasswd -a USER_NAME GROUP_NAME

同じ効果の、別コマンドも紹介。

// ユーザをグループに追加する。
$ sudo usermod -aG GROUP_NAME USER_NAME

gpasswdについて

ちなみに、このgpasswd コマンドは、名前からすると「グループにパスワードをつける」といった感じの名前ですが、オプションによりかなりいろいろできるようですね。

ヘルプコマンドを見てみると:

$ gpasswd -h

Options:
-a, --add USER add USER to GROUP
-d, --delete USER remove USER from GROUP
-h, --help display this help message and exit
-Q, --root CHROOT_DIR directory to chroot into
-r, --remove-password remove the GROUP's password
-R, --restrict restrict access to GROUP to its members
-M, --members USER,... set the list of members of GROUP
-A, --administrators ADMIN,...

ユーザ・グループ一覧など確認系のコマンドまとめ

その他、サマリました。[ ]はオプショナルで、加えない場合は、自分の(=ログイン中ユーザの)情報となります。

やりたいこと コマンド
ユーザー名/グループ名、
ユーザーID/グループID
の確認
id [USER_NAME or GROUP ]
自分情報の確認 who
自分のユーザ名の確認 whoami

以上(大して珍しくもない)コマンド紹介と補足のお話でした。

 


Ubuntuについて蛇足

全然関係ないですが、Ubuntuって、名前がいいですよね。「他社への思いやり」を意味するアフリカの言葉らしいです。いい名前ですね。

発音は日本ではみんな「ウブンツ」って言いますけど、英語では「ウブントゥ」といった発音のようです。

参考リンク:

 

 

閉じる