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
user
sudo アクセスを許可するアカウントの名前に置き換えます。
ただし、すべてのユーザーがroot
ユーザーのアカウントにアクセスできるわけではありません。これが、ユーザーが一部のユーザー アカウントにroot
スーパーユーザー ( sudo
) 権限を付与できる理由です。
私がしたいのは、アプリケーションを実行している現在のユーザーがスーパーユーザーとして登録されているかどうかを確認することです。もしそうなら、ツールにパスワードを要求するツールを/usr/bin/kdesu
使用させます。/usr/bin/sudo
sudo
ユーザーがスーパーユーザーでない場合/usr/bin/kdesu
は、デフォルトの動作のままにします。パスワード/usr/bin/su
を要求するツールを使用します。root
現在、getenv('USER')
現在のユーザーを取得するために (Windows では「USERNAME」ですが、この機能は Linux でのみ必要です) を使用しています。QProcess::systemEnvironment()
現在のユーザーの名前は、HOSTNAME 変数と USER 変数がリストされている場所をトラバースすることで取得できます。
ファイルを開くには権限が必要な/etc/sudoers
ため、ファイルの解析はオプションではありません。sudo
root