0

こんにちは私がやりたいことをする方法があると確信していますが、たぶん私はそれを間違った方法で攻撃しているだけです。誰かが助けてくれることを願っています。

他のいくつかのマシンからSSHで接続する開発ボックスがあります。リモートでデバッグするには、クライアントマシンのIPを使用してデバッガーを構成する必要があります。IPは、別のマシンからログインすると変更されます。私はいつもこれを手動で行うのに飽きてきているので、自動化してみようと思いました。

PHPのiniファイルの構成設定を変更するSSH接続時に自動的に実行されるスクリプトを作成しています。問題は、PHPのiniファイルがすべてrootによって所有されているため、通常のユーザーとしてログインしているだけの場合、これらのファイルを変更する方法がわからないことです。

開発ボックスにはセキュリティ上の懸念はないので、iniファイルの所有者を変更するだけで済みますが、それよりも自動化する必要がありました。

私の現在の試みは、ホームディレクトリにあるPythonスクリプトです。これは、SSH経由で接続するときに.bashrcから呼び出されます。そこからroot権限を取得する方法がわかりませんが、Linuxはかなり新しいです。知らない他の方法があるのではないかと思いました。

4

2 に答える 2

1

rootが所有するファイルがあります。明らかに、ファイルを自分で変更可能としてマークする方法を見つける必要があります。または、特権を変更できるように特権を昇格させる方法。

これは、これを行うための2つの従来のUNIXアプローチにつながります。彼らです:

  1. ファイルをマークするためのグループを作成します。initdebug; ファイルをchgrp/chmodして、initdebugグループを持ち、グループ書き込み可能にします。そして、自分自身をinitdebugグループに追加して、グループの書き込み権限を使用してファイルを変更できるようにします。

  2. 必要な特定の変更を実行する非常に小さい監査済みバイナリ実行可能ファイル(これはスクリプトでは機能しません)を作成するには(簡単にするために、ルート所有のPHP iniファイルの選択の1つを適切な場所にコピーすることをお勧めします)。次に、ファイルがrootによって所有されるようにファイルをchownし、実行可能ファイルにsuidビットを設定してrootとして実行されるようにします。

次の2つのアプローチを組み合わせることもできます。

  1. 自分自身をinitdebugグループのメンバーまたは実行可能ファイルのsuidにするのではなく、実行可能ファイルのグループをinitdebugに設定し、そのsgidビットを設定します。また、

  2. 実行可能suidrootを保持しますが、initdebugによってのみ実行可能にし、したがって、そのグループに追加されたユーザーによってのみ実行可能にします。

セキュリティのトレードオフは、誰かがあなたのアカウントをハッキングした場合の特権昇格の容易さ/リスクにあります。実行可能ファイルにスタック/ヒープオーバーフローまたは同様の脆弱性があり、それがrootとして実行されている場合、あなたは去っています。PHPのiniファイルを変更してリモートの脆弱性を開くことができる場合、彼らがiniファイルに直接アクセスできる場合は、あなたは去っていきます。

後者が可能だと思うので、おそらく小さな実行可能ファイルを使用するのが最善です。

注:上記で触れたように、unixはスクリプトのs [ug] idビットを認識しません(#!...インタープリター構文を使用して何かとして定義されます)。したがって、バイナリにコンパイルできるものを使用する必要があります。つまり、おそらくC、C ++、Java(gcjを使用)、ML、Scheme(mit)、Haskell(ghc)のいずれかを意味します。

これまでにCまたはC++プログラミングを行ったことがない場合は、suidバイナリはC / C ++を学習するためのプロジェクトではないため、他の1つをお勧めします。他の言語を知らない場合は、MLまたはJavaのいずれかをお勧めします。これは、小さくて単純なものを書くのに最も簡単な言語です。

(ところで、http://en.wikipedia.org/wiki/List_of_compilersには、使用できる代替コンパイラのリストが含まれています。バイトコードではなくネイティブにコンパイルされることを確認してください。OSに関する限り、バイトコードvmは単なる別のものです。通訳者)。

于 2012-06-21T03:43:00.713 に答える
0

リモートしたいmechine上のsudoersファイルにユーザーを挿入することでそれを行うことができます。たとえば、私のブログを見ることができます。これはURLです:http://nanamo3lyana.blogspot.com/2012/06/give-priviledge-normal-user-as-root.html

次に、自動的にスクリプトでコマンドにsudoを追加します。

英語が上手くなくてごめんなさい。

于 2012-06-21T03:29:46.347 に答える