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という名前の響きが好きです。もともと「他社への思いやり」を意味する、アフリカの言葉だそうです。発音は日本ではだいたい「ウブンツ」と呼ばれますが、英語では「ウブントゥ」といった発音のようです。
参考リンク
Ubuntuについての公式マニュアルページです。