[Linux] 파일 권한과 쓰기 작업

Posted by Euisuk's Dev Log on January 25, 2024

Linux 파일 권한과 쓰기 작업

리눅스 시스템에서 파일 작업을 수행하기 위해서는 적절한 권한이 필요합니다. 사용자는 파일이나 디렉토리에 대해 읽기(read), 쓰기(write), 실행(execute) 권한을 가질 수 있으며, 이 권한들은 파일 소유자(owner), 그룹(group), 그리고 기타 사용자(others)에게 다르게 설정될 수 있습니다.

권한 확인하기 (ls -l)

파일이나 디렉토리의 권한을 확인하기 위해 ls -l 명령어를 사용합니다.

예시

1
ls -l /path/to/directory

출력:

1
drwxr-xr-x 2 user group 4096 Jan 25 10:00 directory

이 출력에서 첫 번째 문자 d는 디렉토리임을 나타냅니다. 그 뒤에 나오는 rwxr-xr-x는 권한을 나타내며, 순서대로 소유자, 그룹, 기타 사용자의 권한을 의미합니다.

권한 변경하기 (chmod)

chmod 명령어는 파일이나 디렉토리의 권한을 변경하는 데 사용됩니다.

예시

1
chmod 755 /path/to/file

이 명령은 소유자에게 읽기, 쓰기, 실행 권한을 주고, 그룹과 기타 사용자에게는 읽기와 실행 권한만 부여합니다.

소유자 변경하기 (chown)

chown 명령어는 파일이나 디렉토리의 소유자나 그룹을 변경합니다.

예시

1
chown user:group /path/to/file

이 명령은 /path/to/file의 소유자를 user로, 그룹을 group으로 변경합니다.

파일 쓰기

파일에 쓰기 작업을 수행하기 위해서는 쓰기 권한이 필요합니다. echo와 리디렉션(>)을 사용하여 파일에 텍스트를 쓸 수 있습니다.

예시

1
echo "Hello, World!" > /path/to/file

이 명령은 “Hello, World!”라는 문자열을 /path/to/file에 쓰게 됩니다. 만약 해당 파일이 존재하지 않으면 새로 생성됩니다.

권한 오류 해결하기

권한 오류가 발생했을 때는 chmod 또는 chown을 사용하여 해결할 수 있습니다.

예시

1
chmod 644 /path/to/file

이 명령은 소유자에게 읽기와 쓰기 권한을, 그룹과 기타 사용자에게는 읽기 권한만 부여합니다.

리눅스 파일 권한 이해 및 설정 예시

리눅스 시스템에서 파일과 디렉토리는 특정 권한 설정을 통해 관리됩니다. 각 파일 또는 디렉토리에는 세 가지 유형의 사용자가 각기 다른 권한을 가질 수 있습니다: 소유자(owner), 그룹(group), 그리고 기타(other) 사용자들입니다.

권한의 종류

  • 읽기(Read, r): 파일의 내용을 읽을 수 있는 권한이나 디렉토리 내의 파일 목록을 볼 수 있는 권한
  • 쓰기(Write, w): 파일의 내용을 변경하거나 삭제할 수 있는 권한이나 디렉토리 내에 파일을 생성하거나 삭제할 수 있는 권한
  • 실행(Execute, x): 파일을 프로그램으로서 실행할 수 있는 권한이나 디렉토리에 접근하여 그 내용을 탐색할 수 있는 권한

권한 설정 (chmod 명령어)

chmod 명령어는 파일이나 디렉토리의 권한을 설정하는 데 사용됩니다. 권한은 숫자 혹은 문자로 표현할 수 있습니다.

숫자로 권한 설정하기

각 권한은 다음과 같은 숫자로 표현됩니다:

  • 읽기: 4
  • 쓰기: 2
  • 실행: 1

세 가지 유형의 사용자에 대한 권한을 합산하여 표현합니다.

예시

  • chmod 700: 소유자에게 모든 권한을 주고, 그룹과 기타 사용자에게는 권한을 주지 않음.
  • chmod 770: 소유자와 그룹에게 모든 권한을 주고, 기타 사용자에게는 권한을 주지 않음.
  • chmod 777: 모든 사용자에게 모든 권한을 줌.

문자로 권한 설정하기

문자를 사용하여 권한을 설정할 수도 있습니다:

  • u: user(소유자)
  • g: group(그룹)
  • o: others(기타 사용자)
  • a: all(모든 사용자)

예시

  • chmod u=rwx,g=rx,o=rx: 소유자는 모든 권한, 그룹과 기타 사용자는 읽기와 실행 권한만 부여.
  • chmod u+w: 현재 설정에 소유자의 쓰기 권한만 추가.

하위 디렉토리(nested directory)의 권한 설정

하위 디렉토리(예: nested 디렉토리)에 대해 특정 권한을 설정할 때는 chmod 명령어에 -R 옵션을 사용하여 하위 파일과 디렉토리에 동일한 권한을 적용할 수 있습니다.

예시

1
chmod -R 755 /path/to/nested_directory

이 명령은 nested_directory와 그 안의 모든 파일과 하위 디렉토리에 대해 소유자에게 모든 권한을 부여하고, 그룹과 기타 사용자에게는 읽기 및 실행 권한만 부여합니다.

이렇게 설정하면 nested_directory 내의 파일이나 디렉토리에도 동일한 권한이 적용되어, 일일이 권한을 설정할 필요 없이 간편하게 관리할 수 있습니다.

권한 설정 시 주의 사항

  • 보안: 모든 사용자에게 실행 권한을 부여하는 chmod 777 설정은 편리할 수 있지만 보안에 취약해질 수 있습니다. 특히, 민감한 정보가 포함된 파일이나 중요한 시스템 파일의 경우에는 주의가 필요합니다.
  • 유효성 검사: 디렉토리의 권한을 설정할 때는 특정 파일이나 하위 디렉토리에만 예외적으로 다른 권한을 주고자 한다면, chmod -R 옵션을 사용할 때 유의하여야 합니다.

이와 같은 파일 권한 및 쓰기 작업에 대한 이해와 실습을 통해 리눅스 시스템에서의 파일 관리가 보다 쉬워질 것입니다. 각 파일과 디렉토리의 권한을 적절히 설정하는 것은 시스템의 안정성과 보안을 지키는 데 매우 중요합니다.