만자의 개발일지

[Linux] 리눅스 파일 및 폴더 권한 본문

Linux

[Linux] 리눅스 파일 및 폴더 권한

박만자 2021. 11. 5. 18:36

권한(Permission)

리눅스는 멀티유저 시스템이기 때문에 아무 사용자가 시스템의 중요한 파일에 접근할 수 없도록 권한을 설정해줘야 합니다.  리눅스에는 이 권한을 사용자와 그룹이라는 단위로 지정해 줄 수 있습니다.
예를 들어 소유자는 파일을 읽고,쓰고,실행 할 수 있게 권한을 설정해주고 그 외에 나머지는 파일을 읽을 수 만 있게끔 지정해 줄 수 있다는 얘기입니다.

권한 확인

# ls -l

위 명령어로 현재 디렉토리에 있는 파일들에 대한 정보를 가져올 수 있습니다.

이제 하나하나씩 각 정보가 무엇을 의미하는지 살펴봅시다.

 

-|rw-|rw-|r--

 이렇게 4부분으로 나눠져 있습니다. 앞에서 부터 파일 타입|소유자권한|그룹권한|모든사용자권한(other) 으로 구분할 수 있습니다.

 

파일 타입

  • d (디렉토리)
  • l (링크)
  • - (파일)

권한 종류

  • r (읽기,4)
  • w (쓰기,2)
  • x (실행,1)

권한 사용자 지정

  • u (소유자)
  • g (소유그룹)
  • o (모든사용자)
  • a (전체)

rwx 각 자리를 이진수로 표현했을시 각 값을 421 로 표현할 수 있습니다. 

7은 rwx 이고 5 는 r-x 3은 -wx 이런식으로 표현이 가능합니다.

1 | manja | manja | 3

앞에서 부터 링크수|소유자|소유그룹|용량 을 나타냅니다.

 

Nov 4 05:09 | perm.txt

보시다시피 생성날짜와 파일명입니다.


권한 변경하기(chmod)

파일 및 디렉토리의 권한을 변경할 떄는 chmod 라는 명령어를 사용합니다.

# chmod o-r perm.txt

위 명령어를 입력하면 perm.txt 의 other(모든사용자) 의 권한중 읽기 권한을 제거하겠다는 뜻입니다.

 

# chmod a=rwx perm.txt

perm.txt 파일을 모두가 읽고,쓰고,실행 시킬 수 있게 하고싶다면 위와같이 명령할 수 있습니다.

 

# mkdir perm
# mv perm.txt perm

perm이라는 디렉토리를 만들고 perm.txt 를 perm 디렉토리안으로 옮겼습니다.

 

# chmod 755 perm

perm 디렉토리의 권한을 소유자에겐 rwx 그룹은 rx 그외사용자에게는 rx 의 권한을 부여하겠다는 뜻입니다.

여기서 perm 디렉토리의 하위에 위치한 모든 파일 및 디렉토리의 권한을 바꾸고 싶다면 -R 옵션을 붙이면 됩니다.

 

# chmod -R 755 perm

이렇게 하면 perm 디렉토리를 포함한 모든 perm 디렉토리의 하위에 위치한 모든 파일 및 디렉토리의 권한이 755로 변경됩니다.

 

이번엔 실행 파일을 한 번 만들어 봅시다.

# vi hello.sh

vi로 hello.sh라는 파일을 열고 입력모드로 아래와 같이 명령어를 입력해줍니다.

 

#!/bin/bash
echo 'hello'

그 다음에 ls -l 로 확인해보면 아마 실행권한이 없다고 뜰 것 입니다. 만약 실행 시킨다한들 Permission denied를 띄울 것입니다.

 

# chmod u+x hello.sh
# ./hello.sh

아래와 같이 소유자에게 실행 권한을 부여한후 실행을 시키면 잘 작동 되는것을 보실 수 있을겁니다.

파일을 실행 시킬떄에는 앞에 ./ 를 붙여줘야합니다.

 

참고

 

Comments