• 締切済み

sudoのDefaultsrequirett設定

レンタルサーバを借りております。 sshでwindowsサーバから、レンタルサーバに 「 sh connect.sh "tail /var/log/messages"」 を実行して、messagesを見ようとしています。 tailの部分は、シェルスクリプトで 「ssh ユーザ@レンタルサーバ sudo $1」 で利用されるようしております。 このとき、 「sudo: sudo を実行するには tty がなければいけません。すみません」 と表示されます。 対応方法として、 「Defaults !requiretty」 をすれば良い事がわかったのですが、 レンタルサーバのような公開場所で、 することはセキュリティ的にどうなのでしょうか? 公開鍵認証でsshは接続(シェルコマンドは鍵認証コマンドを書いております)しているのですが、 設定を「Defaults !requiretty」にしても問題ないものでしょうか? (※当然セキュリティが下がることは認識しております) 「運用の簡易化」と「セキュリティ」のどちらを取るべきか検討しております。 「 !requiretty」で運用しているよ。 といった意見がありましたら、ご教授いただけると助かります。 よろしくお願いします。

みんなの回答

回答No.1

ご質問の趣旨を無視してしまうと思いますが、素直にTera Termマクロを使えばいいのでは?と思いました。デファクトスタンダードですし、Windows Server NT 4.0からWindows Server 2012まで対応しています。 タスクスケジューラに登録すれば自動実行できますしSSH1、SSH2ともに実績は多いので、運用の簡易化もセキュリティも満たすのではないかと思います。もちろん、バックグラウンドではないのでttyのエラーは発生しないかと。

ShiftTail
質問者

お礼

情報をいただきありがとうございます。 >ご質問の趣旨を無視してしまうと思いますが、素直にTera Termマクロを使えばいいのでは? 実は、これは出来ているのです。 sshコマンドによるリモート接続を実施した際に、問題となっているのです。

関連するQ&A

  • sudoでシェルスクリプトを実行させたい

    /usr/bin/sudo を使って、xxx.shを実行させたいので、設定でxxx.shを許可しました。 その後Apacheで動くCGI(perlスクリプト)から、``を使って実行させようと考えています。 このときにこのxxx.shがうまく動きません。多分シェルにアクセスできないのだと思いますが、どうしたらこのスクリプトをroot権限で動かす事ができるようになるのでしょうか。関係あるかどうかわかりませんが、xxx.shの中身はディレクトリ作成コマンドなどです。ネットで検索したら、シェルスクリプトだけ許可にすればよいとあったのですが・・。セキュリティ的には/bin/shを許可するのはまずそうな気がするのですが、こちらを許可してもよいものでしょうか。 環境等 xxx.sh 755 所有者(user1) Apache実行ユーザ (apache) CGIの実行ユーザ(apache?) 挑戦したコマンド(とアパッチのログ) `/usr/bin/sudo sh ./xxx.sh`; ->パスワード求められます (/bin/shの権限がない?) `/usr/bin/sudo ./xxx.sh`; ->/usr/bin/sudo: unable to exec ファイルのパス No such file or directory (xxx.shのファイルの場所はあってます) `/usr/bin/sudo フルパス/xxx.sh`; ->/usr/bin/sudo: unable to exec ファイルのパス No such file or directory (xxx.shのファイルの場所はあってます) 不足の点などあればご指摘ください。

  • sudoの設定方法について

    こちらで質問させて頂きながらシェルスクリプトの勉強をしています。 sudoの記載について、いろいろと試したのですがうまくいきません。 アドバイスお願いいたします。 ◆やりたい事 ・非ルートでログイン時、Shell.shをroot権限で実行したい ・Shell.shからは、他シェルスクリプトが呼ばれる  ※他シェルスクリプトもroot権限が必要 ◆現状 ・sudoers ファイルに  user1 ALL=(ALL) ALL  と記載するとうまくいくが、  user1 ALL=(ALL) /フルパス/Shell.sh  とすると権限がないと言われる ◆質問  Shell.shがroot権限で実行できれば、Shell.shから呼ばれるシェルスクリプトも  root権限になる認識なのですが、間違っているのでしょうか?

  • sudoの動作について

    SUSE Linux exterprise 11 sp1にsudo-1.7.6p2-0.2.12.1を導入しています。 /etc/sudoersの設定で、 %test ALL = (ALL) NOPASSWD: !ALL %test ALL = (ALL) NOPASSWD: /usr/local/bin/test にてtestグループに対し、 sudo経由のいかなるコマンドも実行を許可しないようにしていますが、 上記NOPASSWDのオプションを設定しているにも関わらずパスワードが要求されてしまいます。 ※/usr/local/bin/testはパスワードを要求されずに実行できます。  (こちらのシェルはsudo経由で実行することが必須のシェルです) こちらをパスワードを要求せずに/usr/local/bin/test以外のコマンドを許可しないようにする方法は無いでしょうか?

  • 別サーバの実行ユーザの変更

    またシェルスクリプト初心者でっす 調べてみたものの今一つ見つけきれませんでした ボーンでの質問です サーバA上のシェルスクリプト(a.sh)からSSHでサーバBへログインし、 サーバB上のシェルスクリプト(b.sh)を実行させようと思い a.sh内に下記の記述を施しました ssh [ユーザ名]@[サーバ名] "su - ; sh [フルパス]b.sh" この記述を施したa.shをサーバA上で実行したところ standard in must be a tty と端末がないと表示され、実行ユーザが変更されませんでした いろいろ調べてsudoでやるといいという話があったので a.sh内のsuをsudo(-s)に変更して試したところ、 今度はパスワードを聞かれたのですが、パスワード入力がマスクされず、 パスワードを入力すると応答が返ってこなくなりました 質問としてはサーバBの実行ユーザを変更するにはどうすればよいか となります よろしくお願いいたします ※b.sh自体はshコマンドで実行はされます ただ、内部でプロセスをkillしようとするのですが、 そのプロセスのユーザかあるいはrootにならなければ killの権限がないのでkillできない状態となってしまい、 やりたいことが実現できない状態です

  • phpでsudoコマンドの実行

    ブラウザからAndroidアプリのプロジェクト作成を可能にしようとしています。 Linux端末もしくわターミナルのroot権限で 「android create project --target ○ --name △ --path /var/../../.. --activity △ --package ■〇△」←「..や〇、△等は適当です(笑)」 というコマンドを実行するとプロジェクトが作成されます。端末、ターミナルでのこのコマンド実行には成功しています。 上記のコマンドをブラウザで実行させようと、まず一般ユーザモードでsudoコマンドでの実行を試みました。 「sudo /home/../../android create project --target ○ --name △ --path /var/../../.. --activity △ --package ■〇△」 というコマンドを実行するとsudoコマンドでもプロジェクトが作成されます。端末、ターミナル内でのこのコマンド実行も成功しています。 次にブラウザからの実行ですが、 ブラウザからphpのsystem関数を用いてsudoコマンドを使ったコマンド実行を試みているのですが、できません。 自分なりに調べて、sudoコマンドに必要なパスを入力不要にし、サイトに書いてあったので、viコマンドで、sudoure内の「Defaults requiretty」に#も追加しました。 ブラウザでphpのsystem関数を用いて上記コマンドの実行は不可能なのでしょうか?

    • 締切済み
    • PHP
  • sudoコマンドについて。

     sudoコマンドについての質問です。 OSはFreeBSD 5.2です。  sudoコマンドというのは、初めにユーザのパスワードを聞いてきますよね。 っで、BSD上で実行するときはパスワードを入力すれば問題ないのですが、隣接したマシン(Win2000)のWeb上からCGIを使って実行しようとすると、 パスワードでとまってしまい、Webからは実行できなくなってしまいます。 BSD上でパスワードを入力して、その後5分間は(デフォルトのままなので)Web上からでも自由にsudoコマンドが使えます。 ですが、Webを使うにはBSD上でパスワードを入力する必要があるので、この作業もWebで全てさせたいと考えています。 ログイン画面のようなものを作って、sudoコマンド時のユーザーパスワードを入力してログインさせて以降は時間を気にせずsudoが実行できるようにしたいと思っています。 ですが、CGIでフォームを作ってどのようにすればいいでしょうか? 例えば「sudo ipfw show」と現在のIPFWのルール設定を見ようと思ったら 「Password:」と聞いてくるのでそれに対してパスワードを送信しなくてはいけないわけですが、 Web上のテキストボックスに「sudo ipfw show」として送信すると、止まってしまいます。 そのままフリーズのようになってしまい、その後パスワードを入力することができません。 CGIでサーバとの対話的通信(?)のように行ったり来たりの通信をするには どのようにすればいいのでしょうか?

  • レンタルサーバー・ヘテムルの設定

    レンタルサーバー「ヘテムル」でSSH公開鍵認証での接続を使用中です。/home/users/1/アカウント/.ssh/authorized_keys上記設定にて正常に動作しております。 追加設定として、「パスワード認証の無効」を試ていますがうまくできません。 /home/users/1/アカウント/.ssh/ 上記フォルダに、sshd_config を作成して(パーミッションは600)サーバーのコントロールパネルで下記内容の確認はできていますが動作確認テストをすると「パスワード認証の無効」にはなっていません。ファイル名を、config に変えてみましたが同じでした。――――――――――――――――#rootでのログインを禁止 PermitRootLogin no #公開鍵認証を有効化 PubkeyAuthentication yes #パスワード認証を無効化 PasswordAuthentication no #チャレンジレスポンス認証を無効化 ChallengeResponseAuthentication no #接続をSSH version2 のみに限定する Protocol 2 ―――――――――――――――― 公開鍵設定は、RLogin を使用して成功しました。コマンド使用での設定は試みましたが基本的な知識不足で、接続まで到達できませんでした。 基本的な部分の作業ミスが原因かと思いますが次の一手が分からず、手詰まり状態で困っています。テストしてみることや、チェックする項目のご提案など、どんなことでも試してみる意欲はありますのでご指導いただけましたら幸いです。

  • シェルの実行中にユーザ切り替えてコマンド実行

    はじめまして。 シェル初心者です。 shell.shをrootユーザでクーロン実行していますが、 shell.shの処理の中で、違うユーザでコマンド実行したいのですが、 可能かどうかも、方法が分かりません。 教えていただけないでしょうか。 環境はLinuxです。 下記のコマンドを実行したいです。 リモートでログインしてコマンド実行結果を取得する ssh -l tomcat server_tomcat grep test /tmp/test.log ※他のユーザでsshを実行してコマンド結果を取得したいです。 以上。宜しくお願い致します。

  • クライアントPCからSSHで接続できない。

    クライアントPCからTera Term(SSH)で接続しようとしています。 サーバー(Ubuntu 11.10)に下記のコマンドを実行したら「openssh-server」がインストールされていなかった。 dpkg -l | grep ssh 下記のように行いました。 1.下記のコマンドで「openssh-server」をインストールしました。 sudo apt-get install openssh-server 2.下記のコマンドでファイアウォールの設定をしました。 sudo ufw allow ssh 3.下記のコマンドでSSHの設定ファイルを開き、変更しました。 sudo vi /etc/ssh/sshd_config Prot 22 ListenAddress 0.0.0.0 Protocol 2,1 PermitRootLogin no 4.下記のコマンドでSSHを再起動しました。 sudo /etc/init.d/ssh restart 上記のように設定してクライアントPCからTera Term(SSH)で接続したら「SSH認証」画面が表示されたんで「ユーザ名」と「パスフレーズ」に入力して[OK]ボタンを押下したらTera Termの画面が閉じてしまいました。 再度、Tera Term(SSH)を起動して「新しい接続」画面の「ホスト」を選んで[OK]ボタンを押下したら下記のエラーメッセージが表示されました ・「接続が拒否されました」 お恥ずかしいんですが何がいけないのかがわかりません。 申し訳ありませんがご教授いただけませんでしょうか? 宜しくお願いします。

  • sudoのNOPASSWDの設定がうまくできない。

    backupuserというusersグループに所属したユーザに、パスワード入力なしでmount/umountコマンドを実行できるように、sudoの設定ファイルを以下のように記述しているのですが、パスワード入力が求められてしまいます。 ###/etc/sudoers### %users ALL=(ALL) ALL root ALL=(ALL) ALL backupuser ALL=(ALL) NOPASSWD:/sbin/mount,/sbin/umount OSはSUSE LINUX Enterprise Server 9 です。 記述に誤りがあるのでしょうか? ご教授お願いいたします。