Programming

사제 권한을 수정하는 방법?

procodes 2020. 2. 10. 22:31
반응형

사제 권한을 수정하는 방법?


Homebrew는 대부분의 설치가 끝날 때 권한을 거부하므로 아무것도 설치할 수 없기 때문에 지금 3 번 설치 제거했습니다.

예를 들어 현재 직면하고있는이 libjpeg 다운로드 시나리오를 게시하겠습니다.

libjpeg를 설치하고 얻으려고합니다.

$ brew install libjpeg
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/jpeg-8d.mountain_lion.bottle.1.tar.gz
Already downloaded: /Library/Caches/Homebrew/jpeg-8d.mountain_lion.bottle.1.tar.gz
==> Pouring jpeg-8d.mountain_lion.bottle.1.tar.gz
Warning: Could not link jpeg. Unlinking...
Error: The brew link step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link jpeg'
Error: Permission denied - /usr/local/opt/jpeg

'brew link jpeg'결과

Error: Permission denied - /usr/local/opt/jpeg

양조 의사가 읽는 내용은 다음과 같습니다.

$ brew doctor
Warning: "config" scripts exist outside your system or Homebrew directories.
./configure scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:

/Library/Frameworks/Python.framework/Versions/2.7/bin/python-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run brew link on these:

jpeg

이 권한 문제로 인해 brew를 사용하는 것이 불가능 해졌으며 제안 사항을 보내 주셔서 감사합니다.


chown폴더 를 사용하여 문제를 해결할 수있었습니다 .

sudo chown -R "$USER":admin /usr/local

또한 (대부분) 동일한 작업을 수행해야합니다 /Library/Caches/Homebrew.

sudo chown -R "$USER":admin /Library/Caches/Homebrew

분명히 나는 sudo에 대한 폴더 권한을 변경하는 방식으로 이전에 사용했으며 /usr/local, 앞으로는 모든 brew를 사용한 설치가 성공적으로 입증되었습니다.

이 답변은 gitHub의 사제 문제 추적기에서 제공합니다.


그것은 할 수 없습니다로 맥 OS 높은 시에라의 사용자를위한 새로운 명령 chown/usr/local:

sudo chown -R $(whoami) $(brew --prefix)/*

참조 : High Sierra에서 / usr / local을 숨길 수 없음


내가 한 것처럼 여기 착륙하는 사람에게 첫 번째 옵션으로, 당신이 제안한 것을 따르십시오.

brew doctor

가장 안전한 길이며 무엇보다도 다음과 같이 제안했습니다.

sudo chown -R $(whoami) /usr/local

그 권한 문제를 해결했습니다.

OP는 단지 그랬지만 분명히 위의 제안을 얻지 못했습니다. 항상 시작하는 것이 좋으며 도움이되지 않는 경우 사소한 해결 방법 만 찾으십시오.


OSX High Sierra를 사용하는 경우 /usr/local더 이상 chown'd'가 될 수 없습니다 . 당신이 사용할 수있는:

sudo chown -R $(whoami) $(brew --prefix)/*


이 문제가 발생했습니다. 작동하는 솔루션은 다음 방법 /usr/local대신 현재 사용자의 소유권을 변경하는 것입니다 root.

  sudo chown -R $(whoami):admin /usr/local

그러나 실제로 이것은 올바른 방법이 아닙니다. 주로 컴퓨터가 서버 또는 다중 사용자 인 경우.

내 제안 은 위와 같이 소유권을 변경하고 Brew .. (update, install ... 등)로 구현하려는 모든 작업을 수행 한 다음 소유권을 루트로 다시 재설정하는 것입니다.

  sudo chown -R root:admin /usr/local

그러면 문제가 해결되고 소유권이 적절한 세트로 유지됩니다.


/user/local/Frameworks폴더 가 없었 으므로이 문제가 해결되었습니다.

sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/Frameworks

첫 번째 줄은 homebrew (brew)가 사용할 새 Frameworks 폴더를 만듭니다. 두 번째 줄은 해당 폴더에 현재 사용자 권한으로 충분합니다.

OSX High Sierra가 있습니다


최고 투표 답변의 명령이 작동하지 않습니다.

출력되었습니다 :

chown : / usr / {my_username} dmin : 잘못된 사용자 이름

이 명령은 제대로 작동합니다 (/ usr / local에 대한 그룹은 admin이미 사용됨).

sudo chown -R $USER /usr/local

blanket보다 약간 더 목표 화 된 접근 방식을 chown -R원한다면 fix-homebrew 스크립트가 유용 할 것입니다.

#!/bin/sh

[ -e `which brew` ] || {
    echo Homebrew doesn\'t appear to be installed.
    exit -1
}

BREW_ROOT="`dirname $(dirname $(which brew))`"
BREW_GROUP=admin
BREW_DIRS=".git bin sbin Library Cellar share etc lib opt CONTRIBUTING.md README.md SUPPORTERS.md"

echo "This script will recursively update the group on the following paths"
echo "to the '${BREW_GROUP}' group and make them group writable:"
echo ""

for dir in $BREW_DIRS ; do {
    [ -e "$BREW_ROOT/$dir" ] && echo "    $BREW_ROOT/$dir "
} ; done

echo ""
echo "It will also stash (and clean) any changes that are currently in the homebrew repo, so that you have a fresh blank-slate."
echo ""

read -p 'Press any key to continue or CTRL-C to abort.'

echo "You may be asked below for your login password."
echo ""

# Non-recursively update the root brew path.
echo Updating "$BREW_ROOT" . . .
sudo chgrp "$BREW_GROUP" "$BREW_ROOT"
sudo chmod g+w "$BREW_ROOT"

# Recursively update the other paths.
for dir in $BREW_DIRS ; do {
    [ -e "$BREW_ROOT/$dir" ] && (
        echo Recursively updating "$BREW_ROOT/$dir" . . .
        sudo chmod -R g+w "$BREW_ROOT/$dir"
        sudo chgrp -R "$BREW_GROUP" "$BREW_ROOT/$dir"
    )
} ; done

# Non-distructively move any git crud out of the way
echo Stashing changes in "$BREW_ROOT" . . .
cd $BREW_ROOT
git add .
git stash
git clean -d -f Library

echo Finished.

chmod사용자 에게 a 수행하는 대신 , admin그룹 (귀하가 속한 그룹)에게 /usr/local해당 homebrew가 사용 하는 특정 디렉토리에 대한 쓰기 권한을 부여 합니다. 또한 수행하기 전에 정확히 무엇을할지 알려줍니다.


폴더 권한을 사용하고 싶지 않았으므로 다음을 수행했습니다.

brew doctor
brew upgrade
brew cleanup

그런 다음 다른 추출 공식을 계속 설치할 수있었습니다.


제 경우에는 / usr / local / Frameworks가 존재하지 않았으므로 다음과 같이했습니다.

sudo mkdir /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/Frameworks

그리고 모든 것이 예상대로 작동했습니다.


이것은 나에게 문제를 해결했다.

sudo chown -R "$USER":admin /Users/$USER/Library/Caches/Homebrew
sudo chown -R "$USER":admin /usr/local

다음 명령으로 문제를 해결했습니다.

sudo mkdir /usr/local/Cellar
sudo mkdir /usr/local/opt
sudo chown -R $(whoami) /usr/local/Cellar
sudo chown -R $(whoami) /usr/local/opt

이러한 모든 제안이 효과가있을 수 있습니다. Brew 의사의 최신 버전에서는 더 나은 제안이 이루어졌습니다.

먼저- /usr/local커맨드 라인에서 이것을 실행하여 이미 만들어 놓은 혼란을 수정하십시오 .

sudo chown -R root:wheel /usr/local

그런 다음이 사용자를위한 경로를 소유하십시오.

sudo chown -R $(whoami) /usr/local/lib /usr/local/sbin /usr/local/var /usr/local/Frameworks /usr/local/lib/pkgconfig /usr/local/share/locale

이 정보는 sudo brew update모두 실행 한 다음 발생할 수있는 모든 경고 및 오류를 읽으면 사용할 수 있습니다 .


다중 사용자 Mac의 경우 다음과 같이 작동했습니다.

sudo chown -R $(whoami):admin $(brew --prefix)/*

나를 위해, 그것은 후에 일했다

brew doctor

권한 변경 명령으로 인해 다른 오류가 발생했습니다

chown: /usr/local: Operation not permitted


github에는 / usr / local의 perms를 수정하고 'admin'그룹의 구성원 인 누구나 액세스 할 수 있도록 brew 디렉토리를 만드는 킬러 스크립트가 있습니다.

https://gist.github.com/jaibeee/9a4ea6aa9d428bc77925

/ usr / local / ___ 디렉토리를 $ USER로 chown하면 해당 시스템에서 homebrew의 다른 관리자를 분리하기 때문에 선택한 답변보다 더 나은 솔루션입니다.

내가 이것을 게시 할 당시의 스크립트 내장은 다음과 같습니다.

chgrp -R admin /usr/local
chmod -R g+w /usr/local

chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew

chgrp -R admin /opt/homebrew-cask
chmod -R g+w /opt/homebrew-cask

실제로는 매우 간단합니다.이 명령을 실행하십시오. brew doctor

그리고 예를 들어 내 경우와 같이 권한 문제를 해결하기 위해해야 ​​할 일을 알려줍니다.

이것이 문제였습니다.

Warning: The following directories are not writable by your user:
/usr/local/share/man/man5
/usr/local/share/man/man7

그리고 이것이 해결책이었습니다.

You should change the ownership of these directories to your user.
  sudo chown -R $(whoami) /usr/local/share/man/man5 /usr/local/share/man/man7

cd /usr/local && sudo chown -R $(whoami) bin etc include lib sbin share var opt Cellar Frameworks

내 경우에는 SaltStack을 제거하고 다시 설치하는 데 문제가 있습니다.

실행 후 :

ls -lah /usr/local/Cellar/salt/

그룹 소유자가 "직원"인 것을 알았습니다. (BTW, macOS Mojave 버전 10.14.3을 실행하고 있습니다.) 직원 그룹은 내 직장 구성과 관련이있을 수 있지만 실제로는 모릅니다. 어쨌든, 나는 더 이상 아무것도 깨지 않도록 그룹을 보존했습니다.

나는 다음을 달렸다.

sudo chown -R "$USER":staff /usr/local/Cellar/salt/

그 후, 루트가 아닌이 명령으로 성공적으로 제거 할 수있었습니다.

brew uninstall --force salt

최신 Homebrew가없는 경우 : Homebrew를 루트로 실행하여 Homebrew 실행 파일의 소유권을 root로 변경해야만 가능합니다. 어느 시점에서 그들은이 기능을 제거했습니다.

그리고 그들이 루트로 실행해서는 안된다는 경고를 많이 줄 것입니다. 그러나 c'mon, 그렇지 않으면 제대로 작동하지 않습니다.


이 페이지의 모든 것을 시도했지만이 솔루션을 사용했습니다.

brew uninstall --force brew-cask; brew untap $tap_name; brew update; brew cleanup; brew cask cleanup;

내 상황은 OP와 비슷했지만 문제는 특히 brew cask로 sudo를 실행 한 다음 암호가 잘못되어 발생했습니다. 그 후 설치를 방해하는 권한이 붙어있었습니다.


폴더 실행에 대한 BREW 권한 오류를 해결하려면

brew prune

이렇게하면 문제가 해결되며 디렉토리를 숨길 필요가 없습니다.


MacOS Mojave chown에서 / usr / local 폴더 ( sudo chown -R "$USER":admin /usr/local) 대한 권한이 없습니다 .

sudo chown -R "$USER":admin /usr/local/*그러나 로컬 폴더 내의 모든 권한을 변경하여 나를 위해 일했습니다 .

잘하면 이것은 같은 문제를 가진 다른 사람들을 도울 것입니다.


이 명령을 실행 해보십시오

sudo chmod + t / tmp

참고 URL : https://stackoverflow.com/questions/16432071/how-to-fix-homebrew-permissions



반응형