Fedora 17 KDE x64 と Qt 4.8.1 を実行しています。
Ubuntu とは対照的に、Fedora は最初に作成されたユーザーに sudo 権限を与えず、最初に作成されたユーザーを/etc/sudoersファイルに追加しません。したがって、プログラムを Fedora 17 KDE (Gnome などのスピンはテストしていません) にインストールする場合は、root(ではなくsudo) 特権が必要です。したがって、3 つのレベルの権限があります (権限のレベルに従って降順でリストされています)。
1) ルート 2) sudo 3) ユーザー
Fedora 17 KDE では、rootユーザー アカウントにアクセスできる場合、ファイルを編集して次の行を追加するsudoだけで、必要な他のユーザーに権限を与えることができます。/etc/sudoers
user ALL = (ALL) ALL
… 線の下に:
root ALL = (ALL) ALL
usersudo アクセスを許可するアカウントの名前に置き換えます。
ただし、すべてのユーザーがrootユーザーのアカウントにアクセスできるわけではありません。これが、ユーザーが一部のユーザー アカウントにrootスーパーユーザー ( sudo) 権限を付与できる理由です。
私がしたいのは、アプリケーションを実行している現在のユーザーがスーパーユーザーとして登録されているかどうかを確認することです。もしそうなら、ツールにパスワードを要求するツールを/usr/bin/kdesu使用させます。/usr/bin/sudosudo
ユーザーがスーパーユーザーでない場合/usr/bin/kdesuは、デフォルトの動作のままにします。パスワード/usr/bin/suを要求するツールを使用します。root
現在、getenv('USER')現在のユーザーを取得するために (Windows では「USERNAME」ですが、この機能は Linux でのみ必要です) を使用しています。QProcess::systemEnvironment()現在のユーザーの名前は、HOSTNAME 変数と USER 変数がリストされている場所をトラバースすることで取得できます。
ファイルを開くには権限が必要な/etc/sudoersため、ファイルの解析はオプションではありません。sudoroot