Perlゼミ

  1. Perl
  2. Mojolicious

rootユーザーでいるときに、一般ユーザーにスイッチしてコマンドを実行する方法 / Mojolicious

rootユーザーでいるときに、一般ユーザーにスイッチしてコマンドを実行するには、以下のようにsu-cオプションを使用します。

su - ユーザー名 -c コマンド

最近はWebアプリケーションを作成しているのですけれど、rootユーザーから一般ユーザーにスイッチして、アプリケーションを実行する一番よい方法はなにかなぁと最近考えています。これは、サーバーが起動したときに、自動的にWebアプリケーションを実行したいし、rootユーザーからWebアプリを管理したいからです。

suとsudoはどちらがいいかなぁと考えているのですがsudoは端末(tty)からではないと実行できないというデフォルトの設定が入っていることがあるため、suのほうがいい気がします。コマンドをダブルクォートで囲まないといけないのが、すこし面倒ですけども。

サンプルとしては次のようなシェルを記述します。

#!/bin/sh

PERL_BIN=/home/gitprep/perl5/perlbrew/perls/perl-5.16.3/bin
su - gitprep -c "PATH=$PERL_BIN:$PATH /home/gitprep/webapp/gitprep/gitprep $*"

PATHをきちんと設定してあげる必要あるところもポイントです。なぜなら端末にログインしているわけではないのでPATHの編集を行っている.bashrcが読み込まれないからです。どのPerlを使うのかは、デフォルトのPerlをつかない場合は指定する必要があります。

Perlプログラミングちゃんねるのご紹介

Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「今日も元気だ! Perlで元気!」

Perlプログラミングちゃんねる

Youtubeチャンネル登録、いいね、コメント歓迎

Twitter
フォロー、いいね、リツート、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

Perl総合研究所