2008年10月2日木曜日

sudoではまった

Linuxコマンド「sudo」。sudoの使い方を同僚に説明する時に、先生役の自分がはまってしまった(汗)

現在利用しているローカルPC「mypc1」に、Linuxユーザ 「user1」「user2」 がいるとします。 今、user1からuser2のユーザでシェル「/opt/hoge/ls.sh」を実行したいと考えています。

シェルの中身は以下のようにしました。
ssh user2@mypc2 ls -al

たったそれだけ。さて実行だ。
[user1@mypc1 ~] $ sudo -u user2 /opt/hoge/ls.sh

しかし、たったこれだけの処理なのに残念な結果が返ってきた。
sesh: Error execing /opt/hoge/ls.sh: Exec format error

なんだコレーッ! むぅ~、lsをするだけで、なんでフォーマットエラーなんだッ! 悩むこと1時間。。。 これを読んでいるLinuxユーザの方なら、もぅお分かりになっているかも? はぃ、シェルが間違えていました。
#!/bin/bash
ssh user2@mypc2 ls -al

「#!/bin/bash」の行が足りなかったのですね(泣) 初歩的な漏れでした、こんなことがないよう、皆様をお気をつけください。


#
# キーワード「sesh: Error execing」でGoogleで検索しても
# 日本語ドキュメントがでてこなかったのでこの記事を書いてみました。
# 同じことで迷った方の手助けになればと思います。
#