- 1. 他のユーザになりかわる
- 2. 他のログインユーザ権限でコマンドを実行する
1. 他のユーザになりかわる
FreeBSD のマニュアルでは「一時的に他のユーザになりかわる」「su ユーティリティは PAM 経由で適切なユーザ資格を要求し、そのユーザ ID に切り替えます (デフォルトユーザはスーパユーザです)。その後シェルが実行されます。」と記述があります。
一番多く使うのは
> su
Password: ← パスワードを入力
で、root ユーザになることかと思います。
「一時的」になので、exit すると元のユーザに戻ります。
2. 他のログインユーザ権限でコマンドを実行する
更に応用として使うのが、いったん root ユーザになっておいて
su ユーザ名 -c コマンド
で他のユーザ権限でコマンドを実行することができます。
/etc/passwd で /nologin になっているユーザは、通常コマンドを実行することはできませんが、この使い方をすることで、そのユーザとしてコマンドを実行することができます。
postgreSQL のユーザ postgres は、バージョン 9.6 では、ログインホームが /var/db/postgres になっていますが、ここでシェルスクリプトをいじったりするのはいささか抵抗があります。
また、/var/db/postgres/data96/ にコンフィグレーションファイルがあり、すべて所有者が postgres になっていて、これを root ユーザで編集すると所有者が root になってしまって、postgreSQL の実行に支障が出ることがあります。
vim を使ってらくちんに編集したいのにパスが通っていなくて苦労したりしますが root ユーザで
su postgres -c "vim /var/db/postgres/data96/postgresql.conf"
で編集することにより、vim を使用して編集でき、かつ所有者は postgres のままということになります。
ちなみに「-c コマンド」でパラメータがある場合は、例のように「-c "コマンド パラメータ"」とコーテーションで囲むことでパラメータを設定することができます。
|
|