メンテナンス・トラブルシュート - コマンド・ユーティリティ - sudo - 他のユーザで実行
- 1. 概要
- 2. 他のユーザで実行
1. 概要
「postgreSQL」のコンフィグレーションファイルをいじるときに、コンフィグレーションファイルの所有権が変わると困るので、「root」ユーザ権限からの実行ながら・・・
su postgres -c "vim /var/db/postgres/data96/pg_hba.conf"
てな感じで、「su」越しに、「postgres」ユーザ権限で実行しています。
「Laravel」をいじっているときに、「Laravel」の大半の所有権を「www」にしているために
su www -c "php artisan config:cache"
てなことをやって、「www」権限で実行しようとしたら
This account is currently not available.
と怒られちゃいます。
これは、「postgres」と「www」のユーザの違いで、「vipw」で見るとわかります。
www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
postgres:*:770:770::0:0:PostgreSQL Daemon:/var/db/postgres:/bin/sh
「www」は、「nologin」であるために、コマンドを実行することができないようです。
「Linux」では、このような場合でも「su」のオプションでなんとかなるようですが、「FreeBSD」ではそのようなオプションがないか、もしくはわたしは知らない。
この状況でも、「sudo」だとなんとかなるようです。
2. 他のユーザで実行
上記の状況で、「sudo」を使用する場合は
sudo -u www php artisan config:cache
でいけます。
すなわち
sudo -u ユーザ名 コマンド [オプション...]
で、指定したユーザの権限でコマンドが実行できます。
(まぁ、結局、他の理由で、コマンドの実行は失敗したのですが・・・)
|
|