/usr/local/correcの私の許可は正しいですか?
-
16-10-2019 - |
質問
私は使用しています ホームブリュー 私のポートのニーズのために(MacPortsよりも「クリーン」のように見えます)。
なしでインストールできます sudo
ing(これは素晴らしい)が、ステップをリンクする男はそれを必要とするようです(/usr/local/share/man/man3
所有されています root
).
a ガイド 私は再帰的に提案することを発見しました chown /usr/local
やることによって
sudo chown -R `whoami` /usr/local
これは安全ですか...それとも悪いアイデアですか™ですか?
また、私の権限は正しいですか?
$ pwd
/usr/local/share/man
$ ls -lah
total 32
drwxrwxr-x 8 root staff 272B 4 Set 11:02 .
drwxrwxr-x 9 root staff 306B 10 Set 11:27 ..
drwxr-xr-x 3 root wheel 102B 4 Ago 2009 de
drwxrwxr-x 163 root staff 5,4K 10 Set 11:27 man1
drwxr-xr-x 11 root wheel 374B 10 Set 11:27 man3
drwxr-xr-x 7 ago staff 238B 10 Set 11:39 man5
drwxr-xr-x 11 ago staff 374B 10 Set 11:39 man7
-rw-r--r-- 1 root staff 13K 4 Set 11:02 whatis
解決
通常、許可をできるだけ厳格に保つ方が良いです。維持 /usr/local
が所有している root
ASを実行するプロセスのみを意味します root
/sudo
(または、Apple Authorizationダイアログボックスを介して管理者ユーザーに依頼する)この領域に書き込むことができます。したがって、プロセスのダウンロードでは、ファイルを破損する前にパスワードを要求する必要があります。
しかし、あなたが言うように、それは新しいプログラムの追加を難しくします。
走っても大丈夫です sudo
, 、実行するよりも頻繁にインストールする頻度があるため、ビルドプロセスが必要としないものは何も変更しないと信頼する必要があります。
あなたがsudoを避けたいなら、私はhomebrewにインストールします ~/usr/local
そして、あなたの道を変えたり、マンパスなどをして、そこにディレクトリを含めてください。
より良い方法は、別のユーザーを作成することです。 homebrew
そのユーザーが所有するディレクトリを作成します。次に、そこにインストールします sudo -U homebrew
. 。他のユーザーは、他のファイルを上書きできないという利点があります。 root
他のプログラムはHomebrewに影響を与えることはできません。 (私はそれに注意してください Homebrew FAQ 「マルチユーザー環境」にいる場合は、この新しいユーザーを提案します。 MacOSを含むUNIXマシンはマルチユーザー環境であると思います)
しかし、自家製のwikiが言っているように、レシピはすべてのケースを見つけるわけではありません /usr/local
そして、それらを選択したディレクトリに置き換えてください私たちは立ち往生していると思います /usr/local
.
他のヒント
私もhomebrewを使用しており、それが完全に安全であることを確認できます。引用 インストール 公式のページ Homebrew FAQ:
自分に好意を持って選んでください
/usr/local
簡単です
/usr/local/bin
すでにあなたの中にいますPATH
.簡単です
依存関係がどちらか /usrまたは /usr /localにない場合、大量のビルドスクリプトが破損します。これは、自宅の式でこれを修正します(常にテストするわけではありませんが)が、多くのRubygemsとPythonセットアップスクリプトが私たちのコントロールの外にあるものであることがわかります。- 安全です
AppleはPOSIXに準拠し、このディレクトリを私たちのために去りました。つまり、ないことを意味します/usr/local
デフォルトではディレクトリなので、既存のツールを台無しにすることを心配する必要はありません。醸造に依存する宝石をインストールする場合は、手間をかけてインストールする
/usr/local
!ジェムに、ヘッダーとディリブのために標準以外のディレクトリを見るように言うのは些細なことではありません。選択した場合
/usr/local
, 、すべて「ただ機能します!」
それを追加するだけです ルートとして物事を行うことは非常に悪い考えです, 、 それで chown
ing /usr/local
私には合理的であるように見えるだけでなく(それはOSXのシステムdirではありません)、 正気.
あなたの許可は正しくありません(まだ)。リストしたコマンドを実行するだけで、大丈夫です。
他の問題がある場合は、 brew doctor
あなたを助けられる!
HomeBrewを使用している場合は、特定のグループに書き込み許可を与える必要があります(どちらか admin
また staff
)、そのため、そのグループにいるユーザー間でファイルを共有できます。
例えば:
sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew
次に、アクセスできるユーザーを割り当てます brew
そのグループへのコマンド(以下を介してグループを確認してください id -Gn
).
その後、一緒に作業するとき brew
, 、一緒に実行しないでください sudo
.
まだ許可の問題がある場合は、実行してください brew doctor
問題のトラブルシューティング。
それが価値があることのために、 /usr/local
OS Xによる「システム」フォルダーとは見なされておらず、新しいSnow Leopardインストールでは、そのフォルダーが空になっています。
そのフォルダー内のルート所有のものはの結果です sudo make install
他のソフトウェアで、またはダブルクリックした後にパスワードを与える .pkg
それはものを捨てたいと思っています /usr/local
.
所有 /usr/local
1年以上にわたって2台のマシンで「私のために働いた」。
Gotchaの1つは、mysql(Homebrewを使用していない)をインストールしてファイルをchownした場合、おそらくデータベースを表示できなくなる可能性があることです(したがって、MySQLが実行しているユーザーが実行されているものに戻す必要があります。 。)
Homebrew 1.0.0のように:
Homebrewは、 /usr /localの所有権を持つ必要はもうありません。あなたが望むなら、あなたはそのデフォルトの所有権に戻る /usr /localが次のように:sudo chown root:wheel /usr /local
ユーザーが持っていても大丈夫だと思います 権限を書き込みます に /usr/local
- 結局のところ、それはあなたが使用していないことを意味します sudo
すべてのビルドスクリプトで。私は普通のユーザーのアイデアが好きではありません 所有 /usr/local
. 。ルート(または類似)を所有したい /usr/local
, 、しかし、ユーザー(または少なくともいくつかの特権グループ)がそれに書き込むことができるように、権限を変更します。それは概念的に正しいアプローチのようです。