タグ付けされた質問 「privileges」

8
ルート権限を取得する最も安全な方法は次のとおりです:sudo、su、またはlogin?
特権のないユーザーが危険にさらされた場合でも、rootアカウントを安全に保持したいと思います。 Ubuntuでは、デフォルトで「セキュリティ上の理由」のためにのみsudoを使用できます。ただし、テキストモードコンソールでログインを使用するよりも安全かどうかはわかりません。攻撃者が通常のユーザーとしてコードを実行できる場合、問題が発生する可能性があります。たとえば、エイリアスの追加、私のPATHへの追加、LD_PRELOADとX11キーロガーの設定などです。私が見ることができる唯一の利点はタイムアウトですので、ログアウトすることを決して忘れません。 私はsuについて同じ疑問を抱いていますが、時間制限さえありません。一部の操作(特にIOリダイレクション)はsuではより便利ですが、セキュリティ面ではこれはさらに悪いようです。 テキストモードコンソールへのログインが最も安全であるようです。攻撃者がPATHまたはLD_PRELOADを制御できる場合、initによって開始されるため、彼はすでにrootです。keypressイベントは、Xで実行されているプログラムによってインターセプトすることはできません。Xで実行されているプログラムが[ctrl] + [alt] + [f1]をインターセプトできるかわかりません(コンソールのようなフルスクリーンウィンドウを開く)またはWindowsの[ctrl] + [alt] + [del]のように安全です。それに加えて、私が見る唯一の問題はタイムアウトがないことです。 だから私は何かが欠けていますか?Ubuntuの連中がsudoのみを許可することにしたのはなぜですか?いずれかの方法のセキュリティを向上させるにはどうすればよいですか? SSHはどうですか?従来、rootはSSH経由でログインできません。しかし、上記のロジックを使用すると、これは最も安全なことではありません。 SSHを介してルートを許可する テキストモードに切り替える ルートとしてログイン 他のマシンへのssh ルートとしてログインしますか?
120 security  sudo  login  su  privileges 

3
sudoの内部はどのように機能しますか?
sudo内部的にはどのように機能しますか?どうして、rootパスワードを持たなくてもrootになることができるのsuでしょうか?どのシステムコールなどがプロセスに関与していますか?Linuxの大きなセキュリティホールではありませんか(たとえば、sudo通常の処理を実行するだけsudoで、特権のないユーザーのパスワードを要求しない、非常に多くの修正プログラムをコンパイルできないのはなぜですか)。 loginとsu internalsを読みました。また、sudoの使用方法を読んでいます。しかし、タイトルにもかかわらず、彼らは主の間の違いに対処suしてsudo。
74 sudo  root  privileges 


6
ルート権限でプログラムでファイルに書き込むための最も安全な方法は何ですか?
巨大なアプリケーションは、ある特定の時点で、ルート権限を必要とするファイルへの少数の書き込みを実行する必要があります。実際にはファイルではなく、ファイルとしてLinuxに公開されるハードウェアインターフェイスです。 アプリケーション全体にルート権限を付与しないようにするために、重要なタスクを実行するbashスクリプトを作成しました。たとえば、次のスクリプトは、出力としてハードウェアインターフェイスのポート17を有効にします。 echo "17" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio17/direction しかし、suid私のシステムのbashスクリプトでは無効になっているため、これを達成するための最良の方法は何でしょうか。 ここに提示されている回避策を使用してください sudoメインアプリケーションからを使用してスクリプトを呼び出し、それに応じてsudoersリストを編集して、スクリプトの呼び出し時にパスワードを要求しないようにします。にsudo権限を付与するのは少し不快ですecho。 でCプログラムを作成しfprintf、suid rootに設定します。文字列とファイル名をハードコーディングし、rootのみが編集できることを確認してください。または、テキストファイルから文字列を読み取り、同様に誰もファイルを編集できないようにします。 私が思いつかなかった他の解決策は、上記のものよりも安全または簡単ですか?


8
スーパーユーザーはどのアクセス権に違反できませんか?
神父 Br。ジョージは、彼の講義の1つ(ロシア語)で、スーパーユーザーが違反できないアクセス権があると述べました。つまり、スーパーユーザーが何かをすることを禁止できるアクセス権があります。 私はインターネット上でこの情報を見つけることができなかったので、それらが何であるか興味があります。これはおそらくシステムのコア実行に関連するものではありませんか?たぶん彼はいくつかのシステムプロセスを停止できないのでしょうか?それとも、彼はリアルモードでプロセスを実行できないのでしょうか? この質問はSELinuxとは関係ありません(Georgeは質問の直前にそれについて話していました)。


3
通常のユーザーがネットワーク名前空間を使用できるスクリプトは何ですか?
ネットワーク名前空間(netns)を使用するアーキテクチャがあります。通常のユーザーがこれらのネットワークでいくつかの操作を行えるようにしたいと思います。 この投稿にnetns-exec.sh触発され、実行されたスクリプトを記述できます:sudo ip netns exec $1 su $USER -c "$2" 私のsudoerファイルに追加します: user ALL=(ALL) /path/to/netns-exec.sh しかし、私はそれが非常にいので、それについて完全に悪夢を抱く可能性があります。通常のユーザーが名前空間を使用できるようにするより良いソリューションはありますか?ユーザーをいくつかの有用なグループに入れることは可能ですか?私はそれについて検索しましたが、何も見つかりませんでした。

3
GID、現在、プライマリ、補足、有効、および実際のグループID?
次のリンクでは、これらの概念をさまざまなコンテキストで説明しています。私はそれらの定義を読みましたが、それらがどのように関連しているか、またはそれらの一部がまったく同じであるかどうかはまだわかりません。 現在のグループID グループID プライマリおよび補足グループID 有効な実際のグループID(Wikipediaにもあります) これが私の混乱の原因の一例です。 によるとman id、私がタイプした場合id、私は彼らが呼んでいる有効で実際のグループID を取得する必要があります。 id uid=501(joe) gid=501(joe) groups=501(joe), 100(users) ただし、Wikipediaはid、プライマリ ID と補足 ID を区別するための出力を指します。また、ウィキペディアは区別し、主対補足と効果的な対実際のグループID。これらの概念は互いにどのように関連していますか? また、プライマリグループID = グループID = 現在のグループID というのは本当ですか?

4
sudoがLinuxでは動作するがAndroidでは動作しないのはなぜですか?
Android、Linux、またはUNIX について十分に読んで自分で答える機会がありませんでした。sudoLinuxマシンでは動作しますが、モバイルデバイス(Samsung GT-N8013など)をルートしない限り、Androidでは動作しません。モバイルデバイスをルート化する必要があるのに、通常のLinuxインストールは必要ないのはなぜですか? 私の質問のコンテキストは/programming/14019698/adb-shell-sudo-on-windows-7/14019726#14019726に関連してい ます (また、rootWindowsで「管理者として実行」する特権のエスカレーションと同じように、プログラムをAndroidで実行するように依頼する方法はありますか?この質問が独自のスレッドにあると思われる場合は、作成できます1)

1
特定のゲストに特定のコマンドの実行を許可する
コマンドapt-get update、およびを使用してサーバーを更新できるDebian / Ubuntuホストの一部で新しいユーザーを作成したいと思いますが、apt-get dist-upgrade他のことを実行できるように完全なsudoアクセスを与えたくありません。これは可能ですか?おそらく、編集できないが実行できるスクリプトを作成する方法があります。これは、rootユーザーとして実行されますか?



2
Ubuntu 9.04での脆弱性のデモ
ITセキュリティのクラスでは、学生に特権の昇格を示したいと思います。そのために、私はexploit/linux/localMetasploit Frameworkのリストを調べ、exploit/linux/local/sock_sendpage2009年8月から(とりわけ)発見しました。 2009年4月から32ビットUbuntu Server 9.04(http://old-releases.ubuntu.com/releases/9.04/ubuntu-9.04-server-amd64.iso)でVMをセットアップしuname -rました2.6.28-11-generic。エクスプロイトの説明によると 2001年5月以降のすべてのLinux 2.4 / 2.6バージョンが影響を受けると考えられています。2.4.4から2.4.37.4まで。2.6.0から2.6.30.4まで したがって、私がセットアップしたUbuntuサーバーはデモンストレーションに適しているはずです。しかし、私はそれを機能させることができませんでした。 サーバーに(通常の)ユーザーを追加すると、SSHアクセスが機能します。Metasploit Framework内から、を使用してSSHセッションを作成できますauxiliary/scanner/ssh/ssh_login。ただし、エクスプロイトを実行すると、 [*] Writing exploit executable to /tmp/mlcpzP6t (4069 bytes) [*] Exploit completed, but no session was created. DEBUG_EXPLOITtrue に設定しても、それ以上の情報は得られません。/tmpMetasploit SSHセッション内からも書き込み可能です。 $ sessions -c "touch /tmp/test.txt" [*] Running 'touch /tmp/test.txt' on shell session 1 ([redacted]) $ sessions -c "ls …

1
setuidビットがオンのルート所有プログラム
Pingは、ユーザーIDビットが設定されたルートが所有するプログラムです。 $ ls -l `which ping` -rwsr-xr-x 1 root root 35752 Nov 4 2011 /bin/ping 私が理解しているように、ユーザーがpingプロセスを実行すると、実際のユーザーID(プロセスを起動した人のユーザーID)からユーザーIDルートに変わります。ただし、これを試し、psの出力を見て、pingプロセスがルートユーザーとして実行されているかどうかを確認しても、実際のユーザーIDが表示されます。 ps -e -o user,ruser,euser,cmd,args | grep ping sashan sashan sashan ping -i 10 -c 1000 www.goog ping -i 10 -c 1000 www.google.com

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.