【Linux】基本コマンド チートシート
個人的によく使う(忘れがちな) Linux コマンドのチートシート。
サーバ内のユーザ一覧を確認する
$ view /etc/passwd
補足
ユーザ情報は次のフォーマットに従って表示される。
ユーザ名:ログインパスワード:ユーザID:グループID:コメント(補足情報):ホームディレクトリ:ログインシェル
例えば、次のユーザの情報があったとして、
ec2-user:x:1000:1000:EC2 Default User:/home/ec2-user:/bin/bash
これをさきほどのフォーマットに当てはめ + 補足を加えて表にすると以下のようになる。
key | value | note |
---|---|---|
ユーザ名 | ec2-user | |
ログインパスワード | x | x の場合はパスワードの設定なし。パスワードが設定されているユーザであれば、代わりにパスワードハッシュが表示される |
ユーザID | 1000 | |
グループID | 1000 | |
コメント | EC2 Default User | |
ホームディレクトリ | /home/ec2-user | |
ログインシェル | /bin/bash | ログインシェルなしの場合は、 /sbin/nologin が記載される。/sbin/nologin は apache, nginx, postfix などのユーザに指定されている。 |
サーバ内の別ユーザになりすます
以下の通りに実行する。
$ sudo -s
# /bin/su - --shell=/bin/sh apache
$ whoami
apache
補足
root user に昇格した状態で実行しないとパスワードを求められるため、パスワードがないユーザの場合は先に sudo -s
して root user に昇格しておくこと。
su - --shell=/bin/sh apache
の各要素は、それぞれ次の意味を持つ。
key | value |
---|---|
/bin/su | su のフルパス。たまに root user に su のパスが通っていない場合があるため /bin/su としているが、パスが通っているならば su - --shell=/bin/sh apache でも良い。 |
- | - を付与した場合は「現在のシェルの環境変数を全て解除」 + 「なりすまし先のユーザのホームディレクトリに移動」した状態で、次のユーザになりすます。 |
--shell=/bin/sh | ログインシェルなし(/sbin/nologin )ユーザの場合は、これを指定しないとなりすましログインに失敗する。ログインシェルがあるユーザはこのオプションを省略して問題ない。 |
apache | なりすまし先のユーザ名。 apache の代わりに ec2-user を指定すれば、 ec2-user になりすますことになる。/etc/passwd に存在しないユーザは指定不可。 |