액세스 권한이없는 디렉토리가 있다고 가정 해 봅시다. 모든 쉘에 쉘이 내장되어 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실제로 루트 쉘에 있지 않은 한 왜 루트로 사용 하고 싶 습니까?