1

特権を昇格させるためにルートパスワードを要求するプロセスを(別のアプリケーションから)起動する標準的な方法(Linuxディストリビューション全体で機能する)はありますか?

gksudo(デフォルトでubuntuにインストールされています)を使用しようとしましたが、他のディストリビューション(または他のデスクトップマネージャー)ではインストールされない場合があります。

4

4 に答える 4

4

これを実現するために最新のディストリビューションが使用しているPolicyKitを確認することをお勧めします。

于 2009-03-27T18:05:46.863 に答える
3

これはどこでも機能しますが、パスワードをキャッシュせず、ユーザーパスワードではなくルートsudoを要求します (そうです):

su - -c command

編集: rootアカウントが無効になっている ubuntu ではありません。おそらく、次のようなものが必要です。

test -x /usr/bin/sudo && sudo command || su - -c command
于 2009-03-27T16:34:42.603 に答える
1

デフォルトはテキストモードsuだけです。ほとんどのディストリビューションにはsudoもインストールされています。

現在、KDE ​​ベースのディストリビューションにはkdesuがあり、GNOME ベースのディストリビューションにはgksugksudoがあります。Kerberos ドメイン内のマシンにはksuがあります。

を使用/etc/sysconfig/desktopして、デフォルトのデスクトップを確認してみてください。

于 2009-03-27T16:35:54.987 に答える
1

従来、アプリケーションでユーザーが権限を昇格できるようにする必要がある場合、アプリケーションは独自の単一目的のsetuid実行可能ファイルをインストールします。単一目的とは、汎用ランチャーとして機能するのではなく、必要なタスクを実行することを意味します。

$ su -
# cp `type -p id` /usr/local/bin/root-id
# chown root:users /usr/local/bin/root-id
# chmod 4750 /usr/local/bin/root-id
$ /usr/local/bin/root-id
... euid=0(root) ...

OTOH setuid 実行可能ファイルも、セキュリティ ホールの一般的な原因となっているため、注意が必要です。

于 2009-03-27T18:20:56.217 に答える