액세스 권한이없는 디렉토리가 있다고 가정 해 봅시다. 모든 쉘에 쉘이 내장되어 sudo cd foo
있기 때문에 분명히 작동하지 않습니다 cd
.
지금까지 sudo bash
루트 프롬프트를 얻기 위해 방금 사용했습니다 (예 더 나은 방법이 있음을 알고 있습니다). 그런 다음 cd
디렉토리로 찔러 볼 수 있습니다.
더 좋은 방법이 있습니까?
cd
.
sudo ls
.
액세스 권한이없는 디렉토리가 있다고 가정 해 봅시다. 모든 쉘에 쉘이 내장되어 sudo cd foo
있기 때문에 분명히 작동하지 않습니다 cd
.
지금까지 sudo bash
루트 프롬프트를 얻기 위해 방금 사용했습니다 (예 더 나은 방법이 있음을 알고 있습니다). 그런 다음 cd
디렉토리로 찔러 볼 수 있습니다.
더 좋은 방법이 있습니까?
cd
.
sudo ls
.
답변:
아니, cd
루트 가 아닌 루트 만 허용하는 디렉토리 로가는 방법은 없습니다 . 이 제한이있는 디렉토리가 너무 많으면 안됩니다. 대부분의 경우 /etc/shadow
파일 또는 아래의 특정 로그 파일 과 같이 제한된 특정 파일에 대한 액세스 권한 /var/log
입니다.
sudo ls <dir>
대신에 그들을 볼 수 있습니다 bash
. 또한 sudo
루트가되기 위해 사용할 때 일반적으로 su
대신에 사용자 ( 명령) 를 설정하려고 bash
하므로 대신이 명령을 사용하십시오.
$ sudo su -
sudo -i
스위치를 사용하여 동일한 작업을 수행 할 수도 있습니다 .
$ sudo -i
맨 페이지에서 발췌 sudo -i
-i (초기 로그인 시뮬레이션) 옵션은 대상 사용자의 passwd (5) 항목에 지정된 쉘을 로그인 쉘로 실행합니다. 이는 .profile 또는 .login과 같은 로그인 특정 자원 파일을 쉘에서 읽음을 의미합니다. 명령이 지정되면 실행을 위해 셸로 전달됩니다. 그렇지 않으면 대화식 쉘이 실행됩니다.
액세스 할 수없는 파일의 경우 다음 sudo
명령 중 하나를 사용할 수 있습니다 .
$ sudo tail /var/log/messages
$ sudo less /etc/shadow
sudo su -
대신에 사용 sudo -i
하시겠습니까? CAP_DAC_READ_SEARCH 기능 만 있으면 모두 수퍼 유저 권한을 모두 부여합니다.
sudo
것은 Solaris 환경을 통한 sudo
것이 었으며 해당 버전 에는이 스위치가 포함되어 있지 않았습니다. sudo changelog를 살펴보면 2004 년에 해당 옵션이 추가 된 것 같습니다. 둘 다 포함하도록 답변을 수정하겠습니다. 감사합니다!
sudo -Hi
홈 디렉토리도 설정하기 때문에 선호합니다 (디스플레이에서 기본적으로 홈을 설정하지 않으므로 기본값이 다를 수 있음). 그렇지 않으면 집에 루트 소유 파일이 생길 수 있습니다 (새 파일이 생성 될 경우).
cd
실제로 루트 쉘에 있지 않은 한 왜 루트로 사용 하고 싶 습니까?