본문 바로가기
운영체제/macOS

권한 복구

by o테리o 2010. 3. 9.

권한복구는 유닉스와 같은 멀티유저 환경에서 파일을 보호하기 위한 수단입니다.

중요한 파일인데 동시에 여러명이 접속하면서 누군가 지워버린다면 큰일이 생길수 있습니다.

그래서 관리자에게는 읽고 쓰기가 다되는 권한을 주어도 일반 유저에게는 읽기 권한 만을 주어야 불상사를 없앨 수 있겠죠.

뭐 그런것이 권한이라고 보시면 될거구요..

그 걸 조정해주는 명령어가 chmodchown 이라고 보시면 되죠.

문제는 파일 마다 이 권한이 적당하게 주어지지않으면 실행이나 복사등에도 차질이 생기므로 언제나 정확히 해둘 필요가 있겠죠.

kext 파일은 시스템과 연결된 하드웨어 관리 드라이버들이므로 권한이 높게 설정 되어있고 이 권한이 다르면 실행시 문제가 생길 수 있으므로 임의로 복사해 넣어준 kext 파일들은 다시 알맞은 권한을 주어야 문제가 발생하지 않는다는 겁니다.

보통 이미 osx 상에 있다면 kext를 수정한 직후 터미널에서 바로 권한을 다시 설정하고 디스크 유틸리티에서 복구까지 하시면 되는데요.

처음 부팅하는 것이라 gui 진입이 안된다면 싱글모드에서 해주어야합니다.

부팅옵션은

-s: 
싱글모드 진입 옵션

-v: 진행과정을 터미널로 보여주게 해주는 옵션

-f: kext 파일을 강제로 다시 로드하여 부팅 하도록 해주는 명령


현재 kext 파일이 수정되어있는 상태라면 -f 로 다시 강제로 읽어올 필요가 있을 거구요,

그래서 제대로 로딩이 된다면 꼭 싱글모드로 들어가 권한을 수정 할 필요가 없겠죠.

하지만 임의로 넣은 파일들은 대부분 -f에 의해서도 로딩이 안될 수 있습니다.

그럼 강제로 권한을 수정하려면 -s 옵션으로 싱글모드로 들어가서 해주어야하는데요.

-s 로 진행을 하면 잠시후 도스화면과 같은 화면에서 멈추게 됩니다.

여기에 마지막 몇줄을 보면 싱글모드에서 사용하려면 

/sbin/fsck -fy 를 먼저 실행하고 

/sbin/mount -uw / 로 해당 볼륨을 마운트해야 한다고 나옵니다.

이걸 똑같이 하셔서 마운트하셔야 합니다.

그런 후 chmod -R 755 /System/Library/Extensions/aaa.kext 

aaa.kext는 해당 kext 이름. 반드시 대소문자도 구별하셔야 합니다.

chown -R root:wheel /System/Library/Extensions/aaa.kext 

일단 기본적인 권한은 설정 됩니다.

그런 후 kextload -t /System/Library/Extensions/aaa.kext 

권한을 설정한 kext 파일을 제대로 로딩되는지 확인해보시구요. (여기서 성공이라는 메세지가 나와야합니다.)

모든 kext 파일의 권한을 다 설정했다면 exit 엔터 하시면 바로 평상시와 같이 부팅이 진행될겁니다.(안되면 exit를 한두번 정도 더 입력하세요)

그 래서 gui 화면으로 진입에 성공하시면 처음 부팅이라면 계정을 만드셔야 할 거구요.

처음이 아니라면 평상시 처럼 나올텐데.

여기에서 디스크 유틸리티를 실행하여 해당 볼륨의 권한복구를 다시 실시해야 합니다.

그래야 각 kext 파일의 권한이 정확히 맞추어집니다.