본문 바로가기

DEVELOP_NOTE/Linux

[Linux]파일 또는 디렉토리 권한/소유자 수정하기(chown, chmod)

로컬의 파일을 서버에 올리려고 했는데,

 

로컬서버에 파일을 올리려고 했는데, 권한관련 에러가 난다.

원인은 파일을 옮기려는 서버 디렉토리에 대한 권한이 '없어서'이다.

 

그래서 오늘은 리눅스에서 파일 또는 디렉토리의 사용권한을 수정하는 방법에 대해서 간단히 정리해보려한다.

 

1) 현재 유저의 권한 확인해보기

먼저 파일을 이동하려는 서버 및 디렉토리에 접속한 뒤 파일 또는 디렉토리의 권한상태를 확인할 수 있다.

ls -l # or ls -al

# [output] drwxr-xr-x 2 user group 4096 Mar 29 12:34 example_directory

output으로 출력되는 내용을 보고 파일 또는 디렉토리의 권한을 확인할 수 있는데, 아래와 같이 이해하면된다.


d:

디렉토리임을 나타낸다. 파일의 경우 -로 표시됩니다.


rwxr-xr-x: 

권한 정보를 나타낸다. 여기서 r은 읽기, w는 쓰기, x는 실행 권한을 나타내며,

각 문자는 순서대로 소유자, 그룹, 기타 사용자에 대한 권한을 나타낸다.

권한이 없는 경우 -로 표시


2: 

해당 파일 또는 디렉토리의 하드 링크 수입니다.


user: 

소유자의 이름입니다.


group: 

그룹의 이름입니다.


4096: 

파일 또는 디렉토리의 크기(바이트)입니다.


Mar 29 12:34: 

최근 수정된 시간입니다.


example_directory:

파일 또는 디렉토리의 이름입니다.


 

 

2) 현재 파일 또는 디렉토리의 소유자 변경하기

현재 파일 또는 디렉토리의 소유자를 변경하려면 어떻게 해야할까?

 

sudo chown username /home/data

- 소유자와 그룹을 동시에 변경하려면 다음과 같이 입력한다.

sudo chown newuser:newgroup file.txt

 

- 디렉토리의 경우에는 '-R' 옵션을 사용하여 재귀적으로 소유자와 그룹을 변경할 수 있다.

sudo chown -R newuser:newgroup /path/to/directory

 

 

 

 

3) 현재 파일 또는 디렉토리의 권한 변경하기

리눅스에서 파일 또는 디렉토리의 권한은 chmod를 통해 수정할 수 있다

 

아래는 file.txt파일의 권한을 수정하는 명령문의 예시이다.

# 권한변경
sudo chmod 700 file.txt

# 디렉토리의 경우 '-R'옵션을 사용하여 재귀적으로 권한을 변경할 수 있다.
sudo chmod -R 700 /path/to/directory

파일 또는 디렉토리에 권한을 설정하는 주체가 있는데,

첫번째, 소유자(u)는 파일 또는 디렉토리의 소유자를 의미한다.

두번째, 그룹(g)은 파일 또는ㅈ 디렉토리의 그룹에 속한 사용자를 의미한다.

세번째, 기타(o)는 소유자와 그룹 이외의 사용자를 의미한다.

 

그리고, 각 주체별로 부여할 수 있는 권한은

'읽기(r)', '쓰기('w)', '실행(x)' 세가지 권한이 있는데,

위의 chmod 명령어 사용 시 숫자 또는 문자로 권한을 설정할 수 있다.

 

숫자로 권한을 설정하는 경우, 각 권한에 대응하는 숫자를 사용하여 설정하게 된다.

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

예를들어 'chmod 700'은 다음과 같이 권한을 설정한다는 의미이다.

 

  • 소유자 : 읽기, 쓰기, 실행 권한(4+2+1 = 7)
  • 그룹 : 권한없음(0)
  • 기타 : 권한없음(0)