ユーザーと権限
ユーザーと sudo
whoami・id・sudo・su・useradd・passwd など、ユーザーと管理者権限を扱うコマンド。
whoami自分のユーザー名
今のユーザー名を表示します。
$ whoami
aliceidユーザーIDと所属グループ
ユーザー ID と、所属しているグループを表示します。
$ id
uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo),999(docker)
$ id -nG # グループ名だけ
$ id www-data # 他のユーザーgroups所属グループの一覧
所属しているグループを一覧します。
$ groups
alice sudo dockersudo管理者として実行する
コマンドを管理者(root)の権限で実行します。
| 書き方 | 意味 |
|---|---|
sudo <コマンド> | root としてコマンドを実行する |
sudo -i | root のログインシェルに入る |
sudo -u <ユーザー> <コマンド> | 指定したユーザーとして実行する |
sudo -E <コマンド> | 今の環境変数を引き継ぐ |
sudo !! | 直前のコマンドを sudo 付きでやり直す |
sudo -k | パスワードの入力を忘れさせる |
sudo -l | 自分に許可されている操作を表示する |
$ sudo apt update
$ sudo -u postgres psql
$ echo "127.0.0.1 dev.local" | sudo tee -a /etc/hostssu別のユーザーに切り替える
別のユーザーに切り替えます。
$ su - otheruser # そのユーザーとしてログインし直す
$ sudo su - # root になる(sudo -i とほぼ同じ)useradd / adduserユーザーを作る
新しいユーザーを作ったり、ユーザーをグループに追加したりします。
$ sudo adduser alice # 対話式で作る(Debian/Ubuntu 向け)
$ sudo useradd -m -s /bin/bash bob # ホームを作り、シェルを bash に
$ sudo usermod -aG docker $USER # 自分を docker グループに追加
$ sudo userdel -r bob # ホームごと削除passwdパスワードを変える
パスワードを変更します。
$ passwd # 自分のパスワード
$ sudo passwd alice # 他のユーザーのパスワードwho / w / lastログインしている人と履歴
今ログインしている人や、ログインの履歴を表示します。
$ who # ログイン中のユーザー
$ w # ログイン中のユーザーと実行中のもの
$ last -n 10 # 最近のログイン履歴groupadd / gpasswdグループを作る・メンバーを管理する
グループを作ったり、メンバーを追加・削除したりします。
$ sudo groupadd developers
$ sudo gpasswd -a alice developers # 追加
$ sudo gpasswd -d alice developers # 外す
$ getent group developers # メンバーを確認newgrpグループの追加をその場で反映する
グループへの追加を、ログインし直さずに反映します。
$ newgrp docker # ログインし直さずに docker グループを使える新しいシェルvisudosudo の設定を安全に編集する
sudo の設定を、書き間違いがないか確かめながら安全に編集します。
$ sudo visudo # 書式の間違いがあると保存させない
$ sudo visudo -f /etc/sudoers.d/deploy# deploy ユーザーは nginx の再起動だけパスワードなしで実行できる
deploy ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginxgetentユーザー・グループ・ホストを引く
ユーザー・グループ・ホスト名などの情報を調べます。
$ getent passwd alice
$ getent group sudo
$ getent hosts example.comchageパスワードの有効期限
パスワードの有効期限を確認・設定します。
$ sudo chage -l alice # 期限の確認
$ sudo chage -M 90 alice # 90日ごとに変更させる