리눅스명령어 / / 2024. 8. 1. 13:16

리눅스 권한 설정 및 관리 명령어

728x90
반응형

리눅스 시스템에서 파일과 디렉토리의 접근 권한을 설정하고 관리하는 것은 보안의 중요한 요소입니다. 이번 포스트에서는 chmod, chown, chgrp, umask 등의 명령어를 중심으로 리눅스에서 파일 권한을 설정하고 관리하는 방법을 자세히 설명하겠습니다.

 


파일 권한 설정

리눅스 파일 시스템에서 파일과 디렉토리의 권한은 읽기(read), 쓰기(write), 실행(execute) 권한으로 나뉩니다. 이를 설정하고 관리하는 데는 주로 chmod 명령어를 사용합니다.

chmod 명령어

chmod는 파일 및 디렉토리의 권한을 변경하는 명령어입니다. 권한은 기호 모드와 숫자 모드 두 가지 방식으로 설정할 수 있습니다.

기호 모드

기호 모드에서는 u(사용자), g(그룹), o(기타 사용자), a(전체 사용자)를 사용하여 권한을 설정합니다.

chmod u+x file.txt # 사용자에게 실행 권한을 부여
chmod g-w file.txt # 그룹에서 쓰기 권한을 제거
chmod a+r file.txt # 전체 사용자에게 읽기 권한을 부여
chmod u=rwx,g=rx,o= file.txt # 사용자에게 읽기, 쓰기, 실행 권한 부여, 그룹은 읽기, 실행 권한 부여, 기타 사용자 권한 제거

숫자 모드

숫자 모드에서는 각 권한을 8진수로 표현하여 설정합니다. 읽기는 4, 쓰기는 2, 실행은 1입니다. 예를 들어, 744는 사용자에게 모든 권한(읽기, 쓰기, 실행), 그룹과 기타 사용자에게 읽기 권한을 부여합니다.

 
chmod 755 file.txt # 사용자에게 모든 권한, 그룹과 기타 사용자에게 읽기 및 실행 권한 부여
chmod 644 file.txt # 사용자에게 읽기, 쓰기 권한, 그룹과 기타 사용자에게 읽기 권한 부여
chmod 600 file.txt # 사용자에게만 읽기, 쓰기 권한 부여

주요 옵션

  • -R : 디렉토리와 그 하위의 모든 파일과 디렉토리에 대해 권한을 재귀적으로 변경합니다.
  • -v : 변경된 파일에 대해 상세한 출력을 제공합니다.
  • -c : 변경된 파일에 대해서만 출력합니다.
  • -f : 오류 메시지를 출력하지 않습니다.
chmod -R 755 directory_name # 디렉토리와 그 하위 모든 파일 및 디렉토리에 대해 권한을 755로 설정
chmod -v 644 file.txt # 파일 권한 변경 후 상세 출력

파일 소유권 변경

파일 소유권은 chown과 chgrp 명령어를 사용하여 변경할 수 있습니다. chown은 파일 소유자와 그룹을 변경하고, chgrp는 파일의 그룹만 변경합니다.

chown 명령어

chown은 파일이나 디렉토리의 소유자와 그룹을 변경하는 명령어입니다. 이 명령어는 주로 시스템 관리자(root)가 사용합니다.

chown user:group file.txt # 파일의 소유자를 user로, 그룹을 group으로 변경
chown user file.txt # 파일의 소유자만 user로 변경
chown :group file.txt # 파일의 그룹만 group으로 변경

주요 옵션

  • -R : 디렉토리와 그 하위의 모든 파일과 디렉토리에 대해 소유권을 재귀적으로 변경합니다.
  • -v : 변경된 파일에 대해 상세한 출력을 제공합니다.
  • -c : 변경된 파일에 대해서만 출력합니다.
  • --reference : 다른 파일의 소유자와 그룹을 참조하여 변경합니다.
chown -R user:group directory_name # 디렉토리와 그 하위 모든 파일 및 디렉토리에 대해 소유자를 user, 그룹을 group으로 변경
chown --reference=reference_file target_file # reference_file의 소유자와 그룹을 target_file에 적용

chgrp 명령어

chgrp는 파일이나 디렉토리의 그룹 소유자를 변경하는 명령어입니다.

chgrp group file.txt # 파일의 그룹을 group으로 변경

주요 옵션

  • -R : 디렉토리와 그 하위의 모든 파일과 디렉토리에 대해 그룹 소유자를 재귀적으로 변경합니다.
  • -v : 변경된 파일에 대해 상세한 출력을 제공합니다.
  • -c : 변경된 파일에 대해서만 출력합니다.
  • --reference : 다른 파일의 그룹 소유자를 참조하여 변경합니다.
chgrp -R group directory_name # 디렉토리와 그 하위 모든 파일 및 디렉토리에 대해 그룹을 group으로 변경
chgrp --reference=reference_file target_file # reference_file의 그룹을 target_file에 적용

기본 권한 설정

새로 생성된 파일이나 디렉토리에 대한 기본 권한을 설정하려면 umask 명령어를 사용합니다. umask 값은 파일과 디렉토리의 기본 권한을 제한하는 데 사용됩니다.

umask 명령어

umask는 파일과 디렉토리의 기본 권한을 설정하는 명령어입니다. 기본적으로 파일은 666(읽기 및 쓰기), 디렉토리는 777(읽기, 쓰기, 실행) 권한을 갖습니다.

umask 022 # 기본 권한에서 그룹과 기타 사용자에게 쓰기 권한을 제거 (파일: 644, 디렉토리: 755)
umask 077 # 기본 권한에서 그룹과 기타 사용자의 모든 권한을 제거 (파일: 600, 디렉토리: 700)

주요 옵션

  • -S : 현재 umask 값을 기호 모드로 출력합니다.
umask -S # 현재 umask 값을 기호 모드로 출력 (예: u=rwx,g=rx,o=rx)
umask 0022 # umask 값을 0022로 설정

특수 권한 설정

리눅스 파일 시스템에서는 추가적인 특수 권한을 설정할 수 있습니다. 주요 특수 권한으로는 SetUID, SetGID, Sticky Bit가 있습니다.

SetUID

SetUID 비트는 파일 소유자의 권한으로 프로그램을 실행할 수 있도록 합니다.

chmod u+s file.txt # SetUID 비트를 설정
chmod 4755 file.txt # SetUID 비트를 숫자로 설정

SetGID

SetGID 비트는 파일이 실행되는 동안 파일 소유 그룹의 권한을 갖도록 합니다.

chmod g+s file.txt # SetGID 비트를 설정
chmod 2755 file.txt # SetGID 비트를 숫자로 설정

Sticky Bit

Sticky Bit는 디렉토리에서 설정되며, 디렉토리 내 파일을 소유자만 삭제할 수 있도록 합니다.

chmod o+t directory_name # Sticky Bit를 설정
chmod 1777 directory_name # Sticky Bit를 숫자로 설정

결론

리눅스 시스템에서 파일과 디렉토리의 권한을 설정하고 관리하는 것은 시스템 보안을 유지하는 데 필수적입니다. chmod, chown, chgrp, umask 등의 명령어를 사용하여 파일 권한과 소유권을 효율적으로 관리할 수 있습니다. 

728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유