ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

sudo: ulimit: command not found

Ubuntuはデフォルトではrootユーザーが許可されておらず、管理権限の必要なコマンドではsudoを使ってコマンドを使います。しかしulimitコマンドはsudoでは実行できずという経緯があり、どうやったら実行できるかと方法を調べていたのですがさすがstackoverflow、ズバリな回答が見つかりました。

stackoverflow.com

$ sudo sh -c "ulimit -n 5000 && exec su $LOGNAME"

ちなみにsudo -iで管理権限になって、ulimit -n 5000でも可能です。

$LOGNAMEに何が格納されているかはenvコマンドもしくは「echo $LOGNAME」で確認できます。execで指定したユーザーの権限で「sudo sh -c "ulimit -n 5000」が実行されるのでコマンドが通るようです。execを使っているので、コマンドの実行が終わったらsuを実行する前の権限に戻ります。execの使い方はすっかり忘れていましたが、LPICレベル1の知識が役に立ちましたね。