2017-03-28 28 views
0

下の画像からわかるように、emerald_setupスクリプトの所有権をroot:rootに変更し、SUIDも設定しました。SUIDで実行可能なRuby gemは動作しません

enter image description here

私が宝石をインストールして、このスクリプトをチェックするとき、それはedvaldoに属していることが起こる:edvaldo(私のユーザー名)と全くSUIDを持っていません!

enter image description here

私は何が起こっている内容を正確に把握していないが、このスクリプトは/etc/hostsへの変更を行い、また、いくつかのファイアウォールルールを作成します。これにはroot特権が必要です。

だから、私の質問は以下のとおりです。

  • 私はSUIDのこのケースではないのですか?

  • gem実行ファイルにSUIDが設定されていることを確認するにはどうすればよいですか?私は

    $ sudo emerald_setup 
    

    を使用して、このスクリプトを実行するようにユーザーに求めることができるが、宝石の実行ファイルがユーザー空間に設置され、その場所があるので、これは、別の問題に私を導くだろう知っている。もちろん、

スーパーユーザーのパスではなく、これを設定してください(何を想像しますか?)スーパーユーザーの特権が必要です。

提案がありますか?

答えて

1

gem(またはtarball)内のsuid特権を持つプログラム/スクリプトをパックすることはできません。これらの特権は、通常のユーザーとしてアンパックするときに復元できます。ある時点で、あなたの宝石をインストールする人は誰でもrootアクセス用のパスワードを提供するつもりです。これを行うには、宝石がインストールされているときに、宝石Rakefileのインストールターゲットにsu(do)パスワードを入力するようにスクリプトを実行してから、sudoを使って実行する必要があるコマンドを実行しますしかし、根。

関連する問題