問題タブ [setuid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - setuid(0) およびシステム障害
C で実行しているプログラムがあります。これには、system を使用して「iptables」コマンドを実行する必要があります。
私は試した
setuid と system は共存しません。システムのマニュアルページから
set-user-ID または set-group-ID 特権を持つプログラムから system() を使用しないでください。一部の環境変数の奇妙な値がシステムの整合性を破壊するために使用される可能性があるためです。代わりに exec(3) ファミリの関数を使用してください。ただし、execlp(3) または execvp(3) は使用しないでください。実際、system() は、/bin/sh が bash バージョン 2 であるシステムでは、set-user-ID または set-group-ID 権限を持つプログラムからは正しく機能しません。これは、bash 2 が起動時に権限を失うためです。(Debian は、sh として呼び出されたときにこれを行わない、変更された bash を使用します。)
どうすれば自分の問題を克服できますか?
ありがとう
c - 小さな C プログラムの改善に助けが必要
ユーザーが呼び出すのではなく、ルートとしてbashスクリプト(shスクリプトではなくbashを読む)を起動したかったのですが、bashはスクリプトのsetuidを無視するため、スクリプト/引数を取り、それを呼び出す非常に小さなスクリプトを作成することにしましたsetuid セットで。
これはうまく機能し、プログラムの誤用を避けるために、スクリプトにsetuidが設定され、実行可能であり、rootとしてではなくファイルの所有者でsetuid()が呼び出されていることをさらに確認し、以下のプログラムになりました..
この演習は私の問題を解決するためだけでなく、C をさらに理解するための方法でもありました。改善すべき点はありますか?
ありがとうございました..
java - Ubuntu で setuid を使用して C から Java を実行する
Ubuntu 11.04 を実行しています。
"C" execlp プログラムを使用して Java プログラムを実行しようとしていますが、Java プログラムが root として実行できるように "C" プログラムで setuid したいと考えています。ここにこの例があります:
http://www.coderanch.com/t/110254/Linux-UNIX/setuid
私は tomcat ユーザーである代わりに root を使用したことを除いて、文字どおりに例に従いました。
ルートは、Java プログラムを実行する「C」プログラムを実行できます。そして、root 所有権を与える前に、ユーザー (私) は Java プログラムを実行する「C」プログラムを実行できます。しかし、setuid を使用するようにセットアップすると、ユーザーはプログラムを実行しようとします。LD_LIBRARY_PATH タイプのエラーと思われるものが表示されます: java: 共有ライブラリのロード中にエラーが発生しました: libjli.so: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
libjli.so ファイルは Java JRE の下にあります。ユーザーとルートの両方が、個別に実行するときにこのファイルを見ることができます。しかし、root への setuid が行われた後にプログラムを実行すると、ユーザーはそれを見ることができません。
setuid プログラムの実行時にルートの LD_LIBRARY_PATH が設定される別の方法はありますか? これは対話型と非対話型の問題ですか?
何か案は?前もって感謝します。
shell - gdb は suid root プログラムをデバッグできますか?
setuid(0) と execve("/bin/bash",NULL,NULL) を呼び出すプログラムを作成しました。
それから私はやったchown root:root a.out && chmod +s a.out
実行する./a.out
と、ルート シェルが表示されます。ただし、gdb a.out
通常のユーザーとしてプロセスを開始し、ユーザーシェルを起動します。
それで... suided root プログラムをデバッグできますか?
linux - setuid や sticky を使用して、PHP で作成したファイルを特定のユーザーにすることはできますか?
WordPress を使用していますが、WordPress によって作成されたファイルに、Web サーバーを実行しているユーザーではなく、作成したファイルのユーザーが必要です。たとえば、WordPress のファイルとディレクトリはphilip
、グループ内のによって所有されていwww-data
ます。WordPress がファイルを作成するとき、ファイルの所有者は ではなく である必要がphilip
ありますwww-data
。
これは可能ですか?setuid
私の疑いは、またはで達成できるということsticky bit
ですが、それを適用する方法がわかりません。
linux - 疑似コードでの Linux の有効な、実際の、保存されたファイルシステム UID 操作
Linux の UID 操作の混乱を軽減するために、Groovy の小さなコードに時間を費やしました。これは、man ページが煩雑であるためです。結果は、setuid、seteuid、setfsuid、setreuid、および setresuid 呼び出しのフードの下で何が起こるかを示すことを目的とした TestCase です。返されたエラー コード (または返されない) に関する詳細は考慮されませんでした。
質問は基本的に次のとおりです。
php - apache (centOS) から root として cmd を実行する方法は?
CENTOS で「useradd」コマンドを実行しようとしていますが、ルート権限が必要なため実行できません。
私php_info();
には「--disable-posix」があります。PHP を再インストールしようとしましたが、yum などのオプションを使用して posix を有効にしようとしましたが、うまくいきませんでした。
誰かがposixを有効にするか、他の解決策を手伝ってくれますか? 私はそれが機能していることに気づきposix_getuid();
ましたが、そうでposix_setuid();
はありません。
解決策はありますか?
useradd
「ユーザークリック」で passwd(root) コマンドに挿入する必要があるのはすべてです。これを行うための最善かつ最も安全な方法は何ですか?
どうもありがとう!
コーレン・オル
macos - 昇格された特権を持つMacAppStoreアプリ
MacAppStoreについて質問があります。コア機能を実現するために管理者権限を持つソフトウェアをリリースする予定ですが、Appleによると-
2.27-root権限へのエスカレーションを要求するアプリ、またはsetuid属性を使用するアプリは拒否されます。
私はこれを達成するために他の方法を探さなければなりません。ルート権限を使用せずにアプリを配布し、ユーザーにヘルパーアプリをダウンロードするオプションを提供することを考えています。このアプリは、私のWebサイトで無料で配布されます。私のアプリとヘルパーの間のいくつかのプロセス間通信の魔術は、法案に適合しているようです。しかし、物事をさらに良くするために-
2.16:機能を追加したり、主な目的を変更したりするために追加のコードやリソースをダウンロードまたはインストールするアプリは拒否されます
ほら、私は自分のWebサイトへのリンクを提供するだけでよく、それはユーザーにヘルパーをダウンロードするように提案します。だから私の質問は、これに対する私のアプローチはAppleの恐ろしい拒絶を逃れるだろうか?
ssh - sudo/su 権限を持たない別のユーザーとしてスクリプトを実行する
あるユーザーが呼び出して別のユーザーとして実行できるように、スクリプトを作成しようとしています。setuid でこれができるかもしれないと思ったので、スクリプトの所有者が user1 の chmod u+s を使用して setuid を有効にしました。スクリプト (現在は whoami のみを含む) を user2 と呼んでいますが、まだ user1 ではなく user2 が表示されています。これをuser1にするにはどうすればよいですか。
-- 私の最終結果は、1 人のユーザーがこのスクリプトを呼び出して、別のサーバーに SSH 接続し、別のユーザーとしてコマンドを実行できるようにすることです。