このスレッドは解決済です(未解決に戻す場合はこちら)
<<戻る

sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 10:52
名前: kabi
URL:
立て続けですいません。基本的な事だと思いますが教えてください。
端末を立てて su パスワード入力でrootになってjavaスクリプトを実行する場合と
sudo (javaスクリプト)でパスワード入力をして実行した場合で結果が違うのです。
具体的にはsudoの方では他のコマンドが見つけられずエラーになります。
sudoersもいじって見ましたが変化がありません。

できればsudoで実行して動作するように設定したいのですが
どうしたら良いでしょうか。教えてください。
記事編集 編集
Re: sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 11:16
名前: 西岡さん
URL:
ここ参考にしたら?
http://linux.kororo.jp/cont/intro/sudo.php
記事編集 編集
Re: sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 11:38
名前: kabi
URL:
西岡さん ありがとうございます。
>ここ参考にしたら?

下の様な設定にしています。

User_Alias FULLTIMERS=hoge
FULLTIMERS ALL=NOPASSWD:ADMIN
Cmnd_Alias ADMIN=/usr/bin/javaスクリプト
記事編集 編集
Re: sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 11:45
名前: stranger
URL: http://ja.528p.com/
/etc/sudoersの一部抜粋
ここから
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

#
# Adding HOME to env_keep may enable a user to run unrestricted
# commands via sudo.
#
# Defaults env_keep += "HOME"

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
ここまで

~/.bashrcなどでjavaのPATHを設定しても受け継がれないので
Defaults env_keep += "PATH" を追加するか
Defaults env_keep += "HOME" を有効にするかしてみる

結果を教えてください
記事編集 編集
Re: sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 12:18
名前: kabi
URL:
strangerさん ありがとうございます。

>Defaults env_keep += "PATH" を追加するか
>Defaults env_keep += "HOME" を有効にするかしてみる

どちらもパスを引き継げない?みたいで
Caused by: java.io.IOException: java.io.IOException: error=2
となります。困りました。

追記
ちょっと危険かもしれませんが
#Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
ここをコメントしたらうまくいきました。
ありがとうございます。
記事編集 編集
Re: sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 13:30
名前: stranger
URL: http://ja.528p.com/
oracleサイトのjavaバイナリをいれている場合は
既存のopenjdkと競合するので
java -version
コマンドで調べてみてください
/etc/alternativesでjavaコマンドのリンクが作られていて
PATHの最後に$JAVA_HOME/binを追加すると
既存のほうのコマンドを読み込みます
記事編集 編集
Re: sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 14:07
名前: kabi
URL:
strangerさん ありがとうございます。
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.11) (rhel-1.61.1.11.11.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

>/etc/alternativesでjavaコマンドのリンクが作られていて
>PATHの最後に$JAVA_HOME/binを追加すると

この部分のコマンドが未熟者でわかりません。
$ ln -s -----------------------------

申し訳ないです。
記事編集 編集
Re: sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 14:46
名前: stranger
URL: http://ja.528p.com/
何をされたいのか解りません
状況を説明してください
勝手にリンクなんか作らないほうがよいです

javaコマンドは
# ls -l /etc/alternatives/java
/etc/alternatives/java -> /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
# ls -l /usr/lib/jvm/jre-1.6.0-openjdk
/usr/lib/jvm/jre-1.6.0-openjdk -> /usr/lib/jvm/java-1.6.0-openjdk/jre
になっているから
/usr/lib/jvm/java-1.6.0-openjdk/jre/bin/java
を読み込む

1.6系と1.7系を切り替えるには
管理者権限で
alternatives --config java
記事編集 編集
Re: sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 15:43
名前: kabi
URL:
>/etc/alternativesでjavaコマンドのリンクが作られていて
>PATHの最後に$JAVA_HOME/binを追加すると
>既存のほうのコマンドを読み込みます

説明不足ですいません。この3行の作業内容が
リンクを作る事だと思ったので?違うみたいですね。

何をしたいか?
デスクトップ上にアイコンを作って
クリックすると端末上でコマンドが実行される様に
したいと考えています。具体的には

gnome-terminal -e "sudo /usr/local/bin/javaスクリプト"

こんな感じでやってます。
記事編集 編集
Re: sudoで実行時とsuユーザーで実行では結果が違う このメッセージに返信する
日時: 2013/06/26(Wed) 17:12
名前: stranger
URL: http://ja.528p.com/
動くかどうかは別にして
[ランチャを生成]して
[コマンド]にgnome-terminarlのラインをコピーすればよいのでは?
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -