web-dev-qa-db-ja.com

マルチユーザー自作特権

Macに2人のユーザーがいます。どちらも私ですが、一方は作業モード、もう一方は非作業モードです。自作によるインストールで継続的な問題があります。

$ brew install x
Error: Can't create update lock in /usr/local/var/homebrew/locks!
Fix permissions by running:
Sudo chown -R $(whoami) /usr/local/var/homebrew

もちろん、この提案されたコードを実行すると問題が解決します。他のユーザーを使用してインストールを作成する必要があるまで、所有権を再度変更する必要があります。両方のユーザーが自作でインストールできるようにアクセス許可を設定するにはどうすればよいですか?

1
steel

特にhomebrewについてはわかりませんが、理論的にはSudoを使用してソフトウェアをインストールできます。次に、ファイルはroot特権でアクセスされます。これは、必要な場合とそうでない場合があります。


ただし、一般的に、複数の非特権ユーザーが同じ場所に書き込みできるようにする場合は、その場所の所有者ではありません。変更しますが、そのgrouphomebrewersというグループを作成できます。

Sudo dscl . -create /Groups/homebrewers

次に、存在しないグループIDを検索する必要があります。このために私は使用しました:

dscl . -list /Groups                          \
| sed 's@^@/Groups/@'                         \
| ( while read grp;                           \
    do dscl . -read "${grp}" PrimaryGroupID;  \
    done )                                    \
| sort -snk 2

使用中の最大グループ番号は501であることがわかったため、4200が使用可能でした。そこで、PrimaryGroupID4200に設定し、Password*(未使用)に設定しました。これらを設定することを忘れないでください!これを行うと、グループリストが破損し、修正するためにシングルユーザーモードで起動する必要があります。

Sudo dscl . -append /Groups/homebrewers PrimaryGroupID 4200
Sudo dscl . -append /Groups/homebrewers Password '*'

次に、2人のユーザーをそのグループに追加します。ここでの例では、user1user2の(whoamiからの)短縮名を使用しています。

Sudo dscl . -append /Groups/homebrewers GroupMembership user1
Sudo dscl . -append /Groups/homebrewers GroupMembership user2

これらの変更を有効にするには、ログアウトしてから再度ログインする必要がある場合があることに注意してください。

最後に、ディレクトリのグループをhomebrewersに変更し、そのアクセス許可をグループ書き込み可能に変更する必要があります。

chown -R :homebrewers /usr/local/var/homebrew
chmod -R g+w /usr/local/var/homebrew

必要に応じて、所有者をrootに変更して、悪影響を与えないようにすることもできます。

Sudo chown -R root /usr/local/var/homebrew

ここに示されているすべてのコマンドは、PowerBookG4のMacOS X10.4.11でテストされています。 Intelへの移行以降、多くの変更が加えられたため、示されているコマンドは、新しいリリースで指定されているとおりに機能しない場合があります。基本的な概念は同じままです。

2
Fox