Linux/리눅스 시스템 관리

01-02-01 파일 및 디렉터리 관리

easyfly 2022. 2. 12. 08:00
반응형

파일 및 디렉터리 관리

소유권과 허가권

  1. 소유권과 허가권 확인하기
    • 파일이나 디렉터리의 소유권과 허가권을 확인하기 위해서는 'ls -l' 명령어나 'ls -n' 명령어를 사용한다.
    • # ls -l [file]
    • -rw-r--r-- 1 apple apple 60 Jan 31 20.21 [file]
  2. 파일 유형
    • -: 일반 파일
    • d: 디렉터리
    • l: 심볼릭 링크
    • b: 블록 디바이스
    • c: 캐릭터 디바이스
    • p: FIFO
    • s: 소켓
  3. 허가권(permission)
    • 허가권은 소유자 허가권, 그룹 허가권, 다른 사용자 허가권으로 구분된다.
      • 소유자 허가권: 파일이나 디렉터리를 소유한 사용자의 허가권을 의미한다.
      • 그룹 허가권: 파일이나 디렉터리를 소유한 그룹의 허가권을 의미한다. 즉 그룹에 속한 사용자에 대한 허가권이다.
      • 다른 사용자 허가권: 소유자나 그룹에 속하지 않은 사용자에 대한 허가권이다.
    • [파일] 소유자, 그룹, 다른 사용자에게 읽기, 쓰기, 실행 권한을 부여할 수 있다.
      • 읽기 권한(r): 파일의 내용을 확인하거나 복사할 수 있다.
      • 쓰기 권한(w): 파일의 내용을 수정할 수 있다.
      • 실행 권한(x): 실행 가능한 파일이라면 파일을 실행할 수 있다. 가령 읽기 권한과 실행 권한을 셸 스크립트에 부여하면 해당 스크립트를 실행할 수 있다.
    • [디렉터리] 소유자, 그룹, 다른 사용자에게 읽기, 쓰기, 실행 권한을 부여할 수 있다.
      • 읽기 권한(r): ls 명령어 등으로 디렉터리 내에 포함된 파일과 디렉터리를 확인할 수 있다.
      • 쓰기 권한(w): 디렉터리가 포함하고 있는 파일 등을 수정할 수 있다. 즉 파일을 생성하거나 삭제할 수 있다.
      • 실행 권한(x): 디렉터리 안으로 접근할 수 있는 권한이다. 실행 권한이 없다면 cd 명령어로 디렉터리 안으로 들어갈 수 없다.
  4. 소유권(ownership)
    • 리눅스는 다수의 사용자가 공동으로 사용할 수 있는 멀티 유저 시스템이다. 따라서 각 파일이나 디렉터리를 소유한 사용자나 그룹을 지정하여 시스템을 효과적을 이용할 수 있다.
    • 사용자 소유권: 파일이나 디렉터리를 소유한 사용자
    • 그룹 소유권: 파일이나 디렉터리를 소유한 그룹, 즉 그룹에 속한 사용자가 소유권을 갖는다.
  5. 허가권 변경하기
    •  파일이나 디렉터리에 대한 허가권을 변경하기 위해 chmod 명령어를 사용한다. chmod는 기호를 통하거나 8진수 숫자를 통해 허가권을 변경할 수 있다.
    • [기호]
      • 읽기는 'r', 쓰기는 'w', 실행은 'x'
      • 권한의 추가는 '+', 삭제는 '-', 지정은 '='
      • 사용자 허가권은 'u', 그룹 허가권은 'g', 다른 사용자 허가권은 'o'로 표기한다. 특별히 'a'는 사용자, 그룹, 다른 사용자 모두를 의미한다.
    • [8진수]
      • 읽기는 '4', 쓰기는 '2', 실행은 '1'로 표기한다. 권한을 주지 않으려면 '0'으로 표기한다. 이들은 조합으로 표현할 수 있는데, 읽기 및 쓰기의 경우는 4+2=6이 된다.
      • 8진수 중 4번째 자리는 특수 권한이고 3번째 자리는 사용자 허가권, 2번째 자리는 그룹 허가권, 1번째 자리는 다른 사용자 허가권을 의미한다. 
      • 예로서 '755'라면 사용사 허가권은 읽기, 쓰기, 실행 권한을 갖고, 그룹과 다른 사용자 허가권은 읽기, 실행 권한을 가진다는 것을 의미한다.
    • 형식: chmod [option] mode file(s)
    • 옵션
      • -R, --recursive: 특정 디레터리 내의 파일과 디렉터리에 대하여 재귀적으로 허가권을 변경한다.
      • -C, --changes: 변경된 파일이나 디렉터리에 대한 자세한 정보를 출력한다.
      • -f, --silent, -quite: 대부분의 에러 메시지의 출력을 제한한다.
      • --reference: 모드 대신에 파일에 지정한 모드를 사용한다.
      • chmod 644 t2
      • chmod -R 755 t
      • chmod u=rw t1예제
  6. 사용자 및 그룹 소유권 변경하기
    • 파일이나 디렉터리의 사용자 및 그룹의 소유권을 변경하기 위해 chown 명령어를 사용할 수 있다. 소유권 변경은 오직 루트 사용자만 가능하다.
    • 사용자 및 그룹의 소유권은 이름뿐 아니라 UID, GID를 의미하는 숫자로 지정이 가능하다.
    • 형식: chown [options] owner[:group] file(s)
    • 옵션
      • -R, --recursive: 특정 디렉터리 내의 파일과 디렉터리에 대하여 재귀적으로 소유자를 변경한다.
      • -C, --changes: 변경된 파일이나 디렉터리에 대한 자세한 정보를 출력한다.
      • -f, --silent, --quite: 대부분의 에러 메시지의 출력을 제한한다.
      • --reference: 지정한 파일에 설정되어 있는 사용자의 그룹으로 소유자를 설정한다.
    • 예제
  7. 그룹 소유권만 변경하기
    • 파일이나 디렉터리의 그룹 소유권만 변경할 때는 chown 대신 chgrp를 사용한다. chown은 루트 사용자만 가능했지만, chgrp는 본인이 소유한 파일에 대한 본인이 속한 그룹 내에서 소유권을 변경할 수 있다.
    • 형식: chgrp [options] group file(s)
    • 옵션
      • -R, --recusive: 특정 디렉터리 내의 파일과 디렉터리에 대해 재귀적으로 그룹 소유자를 변경한다.
      • -C, --changes: 변경된 파일이나 디렉터리에 대한 자세한 정보를 출력한다.
      • -f, --silent, --quite: 대부분 에러 메시지 출력을 제한한다.
      • -h, --no-dereference: 심볼릭 링크 자체의 파일 및 그룹의 소유권을 변경한다. 이 옵션을 설정하지 않으면 심볼릭 링크가 가리키는 파일의 소유권을 변경한다.
    • 예제
      • $ sudo chgrp fruit t1
      • $ sudo chgrp -R fruit t
  8. 기본 허가권 변경하기
    • 시스템상에 파일이나 디렉터리를 생성할 때 기본 허가권을 지정하기 위해 umask 명령을 사용한다. 리눅스의 기본 허가권 값은 파일의 경우 666(rw-rw-rw-)이고 디렉터리의 경우는 777(rwxrwxrwx)이다. 파일이나 디렉터리 생성 시 이 값에서 umask에 설정된 마스크 값을 뺀 결과값을 허가권으로 지정한다. 예를 들면 umask가 022라면 파일 생성 시 644가 기본 허가권이 되고 디렉터리의 경우는 755가 된다.
    • 형식: umask [option] [mask]
    • 옵션
      • -S: umask 값을 숫자 대신 문자(symbolic)로 표기한다.
    • 예제
반응형