본문 바로가기

에러 해결/Server

[에러 해결] Linux - tar (압축 해제) 허가 거부

* 편의상 계정명: test , 파일명:  test.tar.gz , 파일은 /home/test/ 디렉토리에 저장돼있는 상태로 가정한다.

(root 폴더는 home 폴더와 동일한 트리에 존재하는 상태)

 

* test 계정 생성시 /home/test/ 디렉토리가 자동 생성되고, test 계정은 기본적으로 자기 디렉토리(/home/test/) 에 대한 권한을 모두 갖고 있다. (물론 관리자 계정인 root 권한으로 특정 계정 권한 변경 가능하다.)

 

su -test: test 계정으로 계정 변경, 이때 현재 디렉토리는 /home/test/ 로 변경된다.

su test(계정명 앞에 - 를 생략하는 경우): 이전 계정이 있었던 경로에 그대로 남으면서 로그인 계정만 변경 / 그래서 위 이미지의 경우 계정이 바꼈어도 root 에 있다.

 

위의 경우 su test 로 계정 변경 후 -> tar -zxcf test.tar.gz 로 해당 파일을 압축해제 했더니 -> 파일 실행 허가 거부 라는 에러가 발생했다.

 

에러 발생 이유)

1. su test 명령어를 사용했기 때문에

2. 계정은 관리자(root)에서 특정 계정(test)로 변경됐지만, 현재 디렉토리는 root 에 그대로 남아있다.

3. 그런데, test 계정은 root 디렉토리 대한 권한이 없고

4. /root/ 디렉토리에는 test.tar.gz 라는 파일이 존재하지도 않는다.

 

해결)

따라서 특정 계정으로 특정 디렉토리에 있는 파일에 대해 권리(읽기,쓰기,실행하기)를 행사하기 위해서는

1. 먼저 그 계정의 권한(해당 디렉토리 또는 파일에 대한)이 어떤지,

2. 현재 위치가 알맞은 디렉토리인지,

3. 접근하려는 파일 또한 알맞은 디렉토리에 위치해있는지 확인해야한다.