web-dev-qa-db-ja.com

ルートとしてアプリケーションを実行する方法は?

KateとKwriteに奇妙な問題があります。 Open Fileをクリックすると、セグメンテーションフォールトでクラッシュします。

私はLinuxの初心者です。問題は、アプリケーションをルートとして実行していないことだと思います。

Ubuntuでアプリケーションをルートとして実行するにはどうすればよいですか?これを行うのは悪い習慣ですか?ルート全体を使用する必要があるにもかかわらず、デフォルトとして使用されないルート全体の目的は何ですか?

ルートとしてプログラムを実行するのは非常に簡単です。

コンソールプログラムの使用

Sudo <program name>

GUIアプリケーションの場合

gksudo <program name>
12
Goddard

UNIXに似たオペレーティングシステム(Linuxを含む)は、特権分離と呼ばれる概念を使用して、システムの安全性を確保します。 UNIXは、ゼロからマルチユーザーシステムとして設計されました。つまり、多くの人がUNIXを実行している1台のコンピューターを一度に使用できるように設計されました。ほとんどのユーザーはコアシステムを変更する必要がないため、システム管理者のみがその権限を持っている必要があります。その特権ユーザーは伝統的にrootと呼ばれます。 (ルートはWindowsの管理者によく似ています。)

これはいくつかのレベルで意味があります。一般に、他の(悪意のある可能性のある)コンピューターにポートを公開するWebサーバーまたは他のプロセスは、独自のユーザーとして実行されます(Apacheはユーザーnobodyとして実行されます)。そのため、Webサーバープログラムがハッキングされても、攻撃者はマシン全体をそれほど簡単に破壊することはできません。デスクトップなどのほとんどのシングルユーザーマシンにも意味があります。たとえば、家族の他のメンバーがなんとかしてrm -rf /を実行しようとしても、それを実行しないでください)、彼らはシステム上のすべてのファイルを削除する権限を持っていません特権の分離。

特権を昇格させるために使用できるコマンドがいくつかあります。 Sudoコマンドは、システムを管理するために必要なときに一時的にルートレベルの特権を与えるために存在します。コマンドgksudoまたはsuを使用することもできます。後者は、rootのパスワードを知っている場合にのみ使用でき、アカウントにSudoを使用する権限がない場合に適したオプションです。

rootユーザーは何でもできますシステムで、ほとんど例外はありません。そのため、偶然に何かを要求したとしても、たとえシステムの健全性に悪影響があるとしても、警告はほとんどまたはまったく発生せずに実行されます。このため、通常のユーザーとしてほとんどのアクティビティを実行し、プログラムをインストールするときなど、必要な場合にのみrootを使用することをお勧めします。

セグメンテーションフォールトを取り除くためにルートを使用する必要はありません。ルートがセグメンテーション違反を修正する唯一のものである場合、プログラムにはバグがあります。プログラムがルートを持たないからといって、そのように失敗するべきではありません。

12

Sudoとgksudoについての前述の答えに加えて、はい、これが管理者でない限りrootとしてプログラムを実行することは間違いなく悪い習慣です。

プログラムがクラッシュする理由を見つけてください。必要に応じて他の人の助けを求めてください。

4
Masroor

また、ubuntuの/usr/share/applicationsに移動して、実行しようとしているアプリケーションの起動ファイルを編集することもできます。
github atomのファイルを編集したように、通常はワイルドカードを使用してこのようなファイルを検索します

Sudo nano atom*

これによりatom.desktopファイルが開き、Execコマンドを見つけてgksudoを追加します。たとえば、

Exec=/usr/share/atom/atom %U  

Exec=gksudo -k -u root /usr/share/atom/atom %U

これで、アプリケーションが起動されるたびに、rootパスワードが要求されます。

2
Mehul