私はコミュニティの「RootSudo」ドキュメントを読みましたが、この行に興味があります。
通常のsudoを使用してグラフィカルアプリケーションをルートとして起動しないでください。
どうして?違いはなんですか?私は普通のデスクトップユーザーなので、簡単な説明を入力してください。
私はコミュニティの「RootSudo」ドキュメントを読みましたが、この行に興味があります。
通常のsudoを使用してグラフィカルアプリケーションをルートとして起動しないでください。
どうして?違いはなんですか?私は普通のデスクトップユーザーなので、簡単な説明を入力してください。
回答:
グラフィカルアプリケーションは、多くの場合、ユーザーのホームフォルダー内に書き込まれた構成ファイルに設定やユーザー固有のデータを保存します。ユーザーのホームフォルダーがHOME 環境変数であるため、アプリケーションが使用するものを決定するためにアプリケーションが使用する主なメカニズム。(を使用して自分で検査できますecho $HOME)。
geditとして実行しているとします(グラフィカルテキストエディター)root。を実行するsudo geditと、プログラムがとして実行されている場合でも、ホームディレクトリHOMEを指し続けます。そのため、設定ファイルを書きますと自分のホームディレクトリにコピーします。これにより、構成ファイルが所有され、アクセスできなくなります(後でプログラムをとしてではなく、自分で実行する場合)。これは主に、アプリケーションが新しい構成ファイルを作成する必要がある場合に発生します。新しく作成されたファイルは、デフォルトでは、それらを作成したユーザー(この場合はあなたではなく)が所有します。rootgeditrootrootrootroot
それsudoが、ストレートではなくグラフィカルなフロントエンドでグラフィカルなアプリケーションを実行する主な理由ですsudo。Ubuntuおよびその派生物のほとんど(XubuntuおよびLubuntuを含む)では、標準のグラフィカルフロントエンドはgksu/gksudoです。Kubuntuではそうですkdesudo。(使用されているデスクトップ環境によって異なります。)
あなたがいる場合したい使用するsudoグラフィカルアプリケーションなどを実行するために、直接gedit、次のコマンドを実行します。
sudo -H gedit
この-Hフラグは、のホームフォルダー()を指すようにsudo設定HOMEしrootます/root。
それでも.Xauthority、一時フォルダにコピーして所有権を自動的に処理することはできません(これは、グラフィカルsudoフロントエンドが面倒を見るもう1つのことです)。しかし、.Xauthorityアクセスできないまれなイベントでは、エラーがあることを示すエラーが表示されます。その後sudo rm ~/.Xauthority、自動的に再生成されるため、問題を削除()することで修正できます。したがって、.Xauthorityの所有権と許可を保護することは、構成ファイルの所有権と許可を保護することほど重要ではありません。
root-owned とは対照的に、.Xauthority構成ファイルがとして所有されるようになるとroot、問題が何であるかが必ずしも明確ではありません(グラフィカルプログラムが頻繁に実行されますが、うまく機能せず、有用なエラーをコンソールに出力するため)。また、特にホームディレクトリ内の1つ以上のファイルを自分以外の誰かが所有する状況にある場合は、修正するのがさらに面倒です(chownすべてのファイルを再帰的に実行するだけでは修正できないため)自分に戻ります)。
したがって、アプリの内部動作に精通しており、設定ファイルを書き込もうとしないことが確実である場合を除き、グラフィカルアプリケーションの実行にsudo(少なくともなしで-H)使用しないでください。
sudo chmod -R $USER:$USER ~sudo chmod -R $USER ~
                    chmod実際にそれをしますか?私はいつもそれがchownそれだと思っていました。chmod私のためにやったことはありません。
                    chownでchmodはなく、間違いなく書くべきでした。ごめんなさい-これを指摘してくれてありがとう!
                    sudo -H echo $HOME、あなたのシェルが-ないルートとして、あなたのように実行している-実行パラメータ展開上を$HOME、のパス取得あなたのホームディレクトリを、そして通過するにsudo順番に既に展開された値に渡され、echoそれを印刷し、。sudo -H printenv HOME、sudo -H bash -c 'echo $HOME'、およびsudo -H sh -c 'echo $HOME'すべての印刷/root。これは概念的には似ていますが、メカニズムは異なりますが、どのようにx=a echo "$x"印刷しないかa(x既に値が設定されていない場合a)です。
                    簡単に言えば:
これにより、ホームディレクトリ内のファイルがルートによって所有されるのを防ぎます。
代替gksu nautilusとは、gksu gedit使用することですnautilus-adminアドオン。Nautilusを使用してファイルとディレクトリを参照し、それらをルート(管理者)として開くことができます。
インストールは簡単です。
sudo apt install nautilus-admin
これで、nautilusを使用しているときに、管理者として編集するための追加オプションがあります。
gedit rootが設定を許可しないためgeditrootとして実行する場合、タブストップの通常ユーザーとして設定した設定を使用したり、タブをスペース、フォント名、フォントサイズ、行の折り返しなどに変換することはできません。
これを解決するために、sgeditユーザー設定を継承してルートに適用するスクリプトを作成しました。ルートgeditをユーザーgeditの設定と同期するにはどうすればよいですか?
sgedit filename1 filename2 ...sudo -Hルート権限を取得しながら、ファイルの所有権を保持するために昇格します。sudoがタイムアウトした場合にパスワードを要求します。gedit端末プロンプトがすぐに再表示されるように、バックグラウンドタスクとして呼び出します。