Home > FAQ
稲葉の一押し商材!
http://inabamasaki.com/inaba_no_ichioshi.html
稲葉に質問相談する
/etc/group の編集方法は? ユーザーにサブグループを定義するには?
unixアカウントでは、デフォルトのグループの他に、サブグループをいくつも設定する事ができます。
ユーザーアカウントにグループを追加する方法は? /etc/group を直接編集する必要はありませんし、しない方が良いと思います。反映させるためにも色々としないといけなかったりするので。
では、/etc/group で定義されている特定のグループに、ユーザーを追加するには?
まず、grep してください。追加したいグループの gid (groupID) を確認しておきます。確認が出来てしまえば簡単です。以下のコマンドで追加します。
$ sudo usermod -G [gid,gid,gid] アカウント名
まだ予約投稿が完璧でないので、この記事も予約投稿してみます。
稲葉 : 2009年05月09日 | トラックバック (0)
別のユーザーでシェルスクリプトを実行する (sudo -u)
MTの予約投稿がサーバーを専用サーバーに移行してからうまく動いていない事がわかりました。いくつかの原因が絡まっていましたが、その内の1つにスクリプトを実行するユーザーの違いがありました。
MTで予約投稿を行う場合、run-periodic-tasksスクリプトを呼び出すわけですが、これをMTが動いているユーザー(Webサーバーを実行しているユーザー)で行う必要があります。
レンタルサーバーの場合、root権も当然ないですし、ユーザーも1つしか割り当てられませんから、実行ユーザーの違いは気にならないかもしれません。また管理者側でうまく設定してあり、そういった事を意識しないですむようになっているかと思います。
しかし専用サーバーの場合、ターミナルでログインするユーザーと、MTが動いているユーザーが異なるため、問題が発生します。要は、ターミナルログインユーザーのcronでrun-periodic-tasksスクリプトを実行すると、書き込み権限がない為、投稿が失敗するのです。
これを回避する方法はいくつかありますが、今回は別のユーザーでシェルスクリプトを実行する方法を用いました。sudoコマンドを使います。
$ sudo -u ユーザー名 [コマンド:スクリプト]
こうすると、別のユーザーでコマンドやスクリプトを実行する事ができます。例えばMTがapacheというユーザーで動いているならば、MTを予約投稿するコマンドはこうなります。
$ cd [Path to MT]; sudo -u apache ./tools/run-periodic-tasks
ただし、sudoは通常パスワードを求められますから、パスワード無しでコマンドを実行できるよう、あらかじめ設定しておく必要があります。
sudo /usr/sbin/visudo を実行し、sudo の設定ファイル中に、
ユーザー名 ALL=(apache) NOPASSWD: [Path to MT]/tools/run-periodic-tasks
という行を追加します。
ユーザー名 ALL=(apache) NOPASSWD: ALL
グループ名 ALL=(apache) NOPASSWD: ALL
といった書き方でもOKです。
これで別のユーザーでシェルスクリプトを実行することができます。
稲葉 : 2009年05月08日 | トラックバック (0)