管理者以外のユーザーがソフトウェアをインストールできないのはなぜですか?


11

これはおそらくWindowsに慣れており、Ubuntuから始めたばかりなので、私には理解できないことでしょう。Linuxのソフトウェアにはパッケージが付属していることがわかりますが、管理者以外のユーザーがソフトウェアをインストールできないのは理解できません。

つまり、すべてのアプリケーションは特定のユーザーによって実行され、そのユーザーは自分の特権でのみそのアプリケーションを実行できます。そのため、管理者権限がない場合、アプリケーションは無許可のディレクトリなどにもアクセスできません。

私はより安全だと思うので、ほとんどの時間をPCで管理者以外のユーザーと作業したいと思います。ほとんどの場合、管理者特権は必要ありません。Linuxのウイルスは珍しいことはわかっていますが、重要なファイルに変更を加えることができない状態でコンピューターで作業することはベストプラクティスだと思います。しかし、プログラミングやWebデザインなどのためにソフトウェアをインストールする必要があります。まず、ユーザーを常に切り替えたくありません。しかし、PCで行われているすべてが非管理者ユーザーによって行われることは、私にとってより安全に思えます。

私がここにどんな誤解を持っているかを知ってうれしいです、ここで何かが正しく聞こえないので。

回答:


16

パスワードを求められる理由

ほとんどのソフトウェアは、機密ファイルに触れるように設計されています。つまり、個人データのセキュリティやシステムの整合性に敏感です。これが、ソフトウェアのインストールが潜在的なリスクであり、自分が何をしているのかを知っているユーザーによって検証される必要がある理由です。オープンソースのソフトウェアであっても、誰かがチェックするまで、新しいオーディオプレーヤーに悪いコードビットが届かないことを確認することはできません。その場合でも、何かが見落とされたり、途中でパッケージが操作されたりする可能性がありました。プログラムの奥深くに隠されているものを誰が知っていますか?1人のユーザーがする必要があります。

Ubuntuは、ソフトウェアをインストールする快適な方法を提供します。ソフトウェア開発者はその快適さに頼り、synaptic / software center / aptがこれらの機密ファイルにアクセスできると仮定することができます。Canonicalは、ソフトウェアリポジトリのバグと悪意のあるコードをチェックします。しかし、最終的な責任はあなた次第です。

問題のソフトウェアが機密ファイルにアクセスする必要がない場合、Ubuntuの方法ではなく、(原則として)ホームフォルダーにインストールできます。たとえば、ソースコードを自分でコンパイルするか、カスタムインストールスクリプトを実行する必要があります。その大きな努力に加えて、インストールしたばかりのプログラムに他のユーザーがアクセスできないという欠点があります(ホームフォルダーにアクセスする権利がないため)。もう一度インストールする必要があります。そのため、このインストール方法は大規模では意味がなく、小規模では通常、ソフトウェアを手動でインストールするよりもパスワードを入力する方が簡単です。

それが、Synapticがパスワードを求めている理由であり、パスワードが優れている理由です。


におい

他のユーザーにパスワードなしでソフトウェアをインストールさせる必要が本当にある場合は、それらをsudoersリストに追加できます。ただし、これは大きなセキュリティリスクをもたらします。それが気にならない場合は、インターネット経由でコンピューターに侵入するための優れたリソースを備えたボットネットワークがあることを考慮してください。彼らはあなたのコンピュータをネットに追加するためだけにこれを行い、あらゆる種類の違法なことをあなたの知らないうちにその接続と計算能力を使用します。彼らはあなたの個人データの後でさえあなたのためにあなたのためではありません。彼らはあなたのPCをハイジャックしたいだけです。まだ気にしない?本当に?次に、sudoersリストの仕組みに関する小さなハウツーである次の回答を参照してください。

Ubuntuに初めてパスワードを永久に記憶させる方法

注意深く読んでください。システムからロックアウトされる可能性があります。

恐怖は終わった

だから今、あなたはあなたの背後に恐怖を抱えており、問題を真剣に受け止めています、私はそれが本当にそれほど悪くないことをあなたに伝えることができます。コンピューターで作業している人を信頼しており、システムへのリモートアクセスを許可するプログラム(sshまたはftpサーバーなど)がインストールされていない場合、パスワードを無効にすることはそれほど危険ではありません。最悪の場合を考慮せずにそれをしないで、あなたの個人データを考えてください。


議事録を見落とす(これを軽くしないでください - 上記のテキストとリンクを参照してください):

# in shell type these commands
sudo su       # in case you do something stupid, you'll have a root shell open
select-editor # (optional) will allow you to select text editor
visudo        # secure way to open sudoers list

エディターが開き、次のような行が追加されます。

confus confusion=(root) NOPASSWD:/usr/sbin/synaptic,/usr/bin/software-center

構文の説明:username machine=(usernameToRunCommandAs) command1,command2,...。したがって、上記の行により、confusはパスワードクエリなしでrootとしてsynapticおよびsoftwarecenterを実行できます。あなたはまだでそれを開始する必要がありますsudo synapticか、gksudo synapticまたはあなたのシェルプロファイルに`エイリアスシナプス=「sudoのシナプス」エイリアスを置きます。


ありがとう、混乱して、本当に理解させてくれた。Linuxのこのような素晴らしいコミュニティを見ることができて嬉しいです:)
fiftyeight

2
どういたしまして。オープンソースプロジェクトとしてのLinuxは、報酬なしで作業を行う人に依存しているため、コミュニティには多くの役に立つ人がいます。
CON-F-使用

4

彼らがすることはできません。こちらが取引です。

  1. Ubuntuで作成された最初のユーザーは特別なユーザーと見なされます。これは管理権限を持つユーザーです。これは、このユーザーが管理タスクを実行するときに、管理パスワードの入力を求められることを意味します。これらのタスクはsudo、コマンドの前に配置することにより発行されます。

  2. 他のすべてのユーザー(自分で変更しない限り)は通常のユーザーであり、管理者(最初のユーザー)が許可しない限り、システム全体にソフトウェアをインストールできません。通常のユーザーは自分の家にしか物を置くことができず、望むならホームディレクトリを台無しにすることができます。

このようにして、1人がシステムを担当します。

これらのユーザーをsudoersファイルに追加することにより、複数のユーザーを管理者(ソフトウェアをインストールできる)にすることができます。

それに加えて、彼らは自宅にソフトウェアをインストールすることができますが、これはソフトウェアに依存します:インストーラーがそれをシステムに追加したい場合があり、それは許可されていません。これらのインストールはソースからのものである傾向があるため、最も簡単な方法ではありません;)


2

Ubuntuでは、管理者にはルート権限があります(「ルートにする必要がある」など、単に「ルート」と呼ばれることがよくあります)。

ファイルへのアクセスは、次の3つのタイプに分けられます。

  • 読み取り(数値4)
  • 書き込み(数値2)
  • 実行(数値1)

これらの属性は、すべてのファイルまたはディレクトリに設定できます。さらに、これらの制限は次のものに設定できます。

  • ファイルの所有者
  • ファイルのグループ(ユーザーはこのグループのメンバーになることができます)
  • 所有者でもグループ内でもない他のすべてのユーザー

これらの原則は、Linuxファイル許可の基本を形成します。Windowsでは、すべてを実行できます。それを与える.cmdか、.exe例えば拡張子を。Ubuntuでは、実行ビットを明示的に追加する必要があります。追加しないと、許可エラーが発生します。

ユーザーがプログラムを実行すると、プログラムはそのユーザーとしてファイルにアクセスし、これらのファイルのアクセス許可が有効になります。デフォルトでは、プログラムがインストールされる場所は特権であり、所有者のみが書き込みできます。この所有者はルートです。他のすべてのユーザーはプログラムの読み取りと実行のみが可能で、書き込みはできません。そのため、プログラムをインストールするにはルート権限が必要です。

Ubuntuには、sudoルート権限でプログラムを実行する(SuperUser DO ...)という特別なプログラムがあります。これはソフトウェアのインストールに使用できます。実行すると、sudoプログラムはユーザーのパスワードを要求します。adminグループのメンバーのみが、を使用してrootとしてプログラムを実行できることに注意してくださいsudo

Windowsでは、Webサイトにアクセスしてインストーラーをダウンロードします。Ubuntuは、プログラムを検索してインストールできるソフトウェアリポジトリで動作します。これらのプログラムは、公式リポジトリに追加される前にレビューされるため、プログラムに有害な意図が存在しないことを確認できます。


わかりました。だから、ユーザーはどうにかしてホームディレクトリにソフトウェアをインストールできません。つまり、もし彼らが本当に望むなら、おそらくプログラムに必要なファイルをダウンロードして、とにかく自分のホームディレクトリに置くことができるでしょうか?
フィフティエイト

彼らはそこのホームディレクトリにソフトウェアをインストールできます。彼らは自分でそれをコンパイルし、そこにバイナリを置くだけです。もちろん、このような方法でインストールされたソフトウェアは、保護されたファイルに他の場所からアクセスすることはできません。ほとんどのソフトウェアはある方法でビルドされていますが、そのようなファイルにアクセスする必要があります。
CON-F-使用

ソフトウェアをインストールするための「Ubuntuの方法」で回答を更新しました。ホームディレクトリにソフトウェアをインストールすることは可能ですが、それは本当にダウンロードしたものに依存します。場合によっては、拡張子が.tar.gzまたはのアーカイブ.tar.bz2です。これらは多くの場合、ホームディレクトリに直接抽出できますが、使用する前にプログラムをコンパイルする必要がある場合があります。ファイルがある場合は.binまたは.sh拡張子が、それは多くの場合、その使用法が異なり、実行可能インストーラです。Ubuntuはタイプを判別するためにファイル拡張子を使用せず、その内容を使用することに注意してください。
Lekensteyn

2

非管理者ユーザーは、システムの特権部分へのインストール、メンテナースクリプトの実行などのインストール時にパッケージがルートとして実行されるため、ソフトウェアをインストールできません。

現在、システムに「この.debからfirefoxをインストールしますが、ユーザーのホームディレクトリにインストールして、システムの残りの部分から隔離されるようにする」方法はありません。これが、現在のところほとんどすべてまたはまったく関係ない理由です。(これが、サードパーティの.debsの実行が悪い理由でもあります。パッケージとそれに含まれるスクリプトには、システムへのルートアクセス権があります)


1

あなたはwindowsとubuntuの大きな違いに触れました。Windowsで管理者としてログインすると、パスワードを要求せずにプログラムがインストールされます。これにより、マルウェアがプログラムを実行することもできます。Ubuntu(Linux)では、管理者としてログインしていても、システムを変更すると、システムは常にパスワードを要求します。したがって、マルウェアはシステムに簡単に侵入できません。要約すると、管理者としてUbuntuを実行します。子供に別のユーザーアカウントを開いた場合、通常のユーザー権限のみを与えて、システムを台無しにできないようにします。


「admin」とは、sudo-rightsを持つユーザーのことですか?実際の管理者はルートになります。

Windowsソフトウェアはパスワードを要求しません。必ずしも管理者としてログインしているからではありません。しかし、Windowsは単純にそのように機能しないため、危険なスクリプトを無意識に含むdebファイルをダウンロードし、ファイルをインストールするためにパスを置くと、Windowsマルウェアと同様にシステムを損傷する可能性があります。
ウリエレーラ

そして、「管理者」Windowsアカウントでさえ、実際にはシステムファイルの所有者ではなく、SYSTEMです。この場合、インストール時に作成したアカウントである「管理者」と、システムファイルの真であるROOT所有者
ウリエレーラ

0

通常の非管理者ユーザーとしてソフトウェアをインストールできます。通常のユーザーがインストールしたソフトウェアは、そのユーザーによって「所有」されます。つまり、実際には、ユーザーの拡張機能です。つまり、所有ユーザーよりも多くの権限はありません。ユーザーのオプション。

一般的な方法は、ユーザーがホームディレクトリ内に「bin」ディレクトリを作成することです。/ home / [user] / binが存在する場合、そのユーザーのパスの先頭に追加されます。実行可能ファイルを/ home / [user] / bin、または書き込みと実行のアクセス権がある他のフォルダーに配置し、そこからプログラムを実行できます。

通常のユーザーができないことは、システム全体にパッケージをインストールすることです。たとえば、通常のユーザーは、実行可能ファイルを/ usr / binに配置したり、ユーザー自身の許可を超える許可を付与したりすることはできません。これは明らかに、基本的なセキュリティ上の理由からです。たとえば、ハードドライブを再フォーマットするには管理者権限が必要であり、許可されていない誰かがそれを行うことは望ましくありません。

私の知る限り、パッケージ管理はシステム全体で行われるため、管理者権限がない限り、パッケージ管理ソフトウェアを使用してソフトウェアパッケージをインストールすることはできません。

ただし、管理者権限がなくても、シェルスクリプトの作成、ソースコードの記述とコンパイル、複雑なアプリケーションのソースコードのパッケージである「tarball」のダウンロードとコンパイル、または実行可能ファイルのダウンロードが可能です。通常のユーザーの許可。World of GooやX-Plane 9などの一部のインディーズゲームは、この方法でインストールして使用できます。


質問を読み直すと、私の答えが直接関連するとは思いません。より適切な答えは、ユーザーの通常のアカウントが管理者権限を持っていると仮定すると、スーパーユーザーのアクセス許可を必要とするものを実行する前にパスワードの入力を求められる必要があります必要に応じて管理者権限がありません。
bgvaughan

あなたの質問は実際に役に立ちました、ありがとう:)
fiftyeight
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.