리눅스 OS에서 파일 소유권과 접근 권한을 변경하는 명령어 chmod / chown에 대해 알아본다.

chmod

1. 알파벳 표현

[file path]의 파일에 대해 소유 수준이 [owner]인 유저에게 [permission level] 수준의 권한을 추가 또는 제거([action])한다.

1
chmod [option] [owner][action][permission level] [file path]
  • option
    • -R : 하위 모든 파일에 적용 (recursive)
  • 소유 수준 owner
    파일에 대한 소유 수준은 3가지 문자로 표현된다.
    명령어에는 소유 수준이 1개 이상 연속해서 올 수 있다. 즉, 명령어에 ug라고 쓸 경우 파일을 소유한 usergroup에게 같은 권한을 부여한다.

    소유 수준 표현 문자 설명
    u 파일을 소유한 유저
    g 파일을 소유한 그룹
    o 파일을 소유한 유저와 그룹이 아닌 유저
  • action
    • + 일 경우, 권한을 추가
    • - 일 경우, 권한을 제거
    • = 일 경우,
      +, -는 명령어로 지정한 권한을 추가 또는 제거하고 기존 권한들은 그대로 둔다.
      반면에 =는 명령어로 지정한 권한을 추가(+)하되 지정하지 않은 권한들은 모두 제거한다.
  • permission level
    파일에 대한 권한 수준은 3가지 문자로 표현된다.
    명령어에는 권한 수준이 1개 이상 연속해서 올 수 있다. 즉, 명령어에 rw라고 쓸 경우 읽기쓰기 2개 권한을 부여한다.

    권한 수준 표현 문자 설명
    r 읽기 권한
    w 쓰기 권한
    x 실행 권한

  • ./file/path.csv 파일에 대해 파일 소유 유저그룹에게 읽기쓰기 권한 부여

    1
    
    chmod ug+rw ./file/path.csv
    

2. 숫자 표현

[file path]의 파일에 대해 [permission level]을 이용하여 소유 수준 별로 권한 수준을 설정한다.

1
chmod [option] [permission level] [file path]
  • option
    • -R : 하위 모든 파일에 적용 (recursive)
  • permission level
    3개 숫자로 소유 수준과 권한 수준을 모두 표현 할 수 있다.
    • 숫자 자리수로 소유 수준 표현

      숫자 자리수 설명
      첫째 자리 파일을 소유한 유저
      둘째 자리 파일을 소유한 그룹
      셋째 자리 파일을 소유한 유저와 그룹이 아닌 유저
    • 숫자 크기로 권한 수준 표현
      2개 이상의 권한을 부여하려면 아래 숫자의 합으로 나타낸다. 즉, 읽기(4)와 쓰기(2) 권한을 모두 부여하려면 4+2=6으로 설정한다.

      숫자 크기 설명
      4 읽기 권한
      2 쓰기 권한
      1 실행 권한

  • ./file/path.csv 파일에 대해 유저에게 읽기, 쓰기, 실행 권한을 모두 부여, 그룹에게 읽기, 실행 권한을 부여, 소유한 유저와 그룹이 아닌 유저에게 실행 권한만 부여

    1
    
    chmod 751 ./file/path.csv
    

chown

파일의 소유자를 변경한다.
특정 소유 수준에 속하는 유저는 파일에 대해 그 소유 수준에 설정된 수준 만큼의 권한을 행사 할 수 있다.
이때 소유 수준 별 권한 수준은 위 섹션 chmod 명령어로 설정할 수 있다.

1
chown [option] [owner]:[group] [file path]
  • option
    • -R : 하위 모든 파일에 적용 (recursive)
  • owner
    파일의 소유자를 [owner]로 변경

  • group
    파일의 소유 그룹을 [group]으로 변경
    :[group] 이라고 쓰면 owner 변경 없이 group만 변경 할 수 있다.

  • file path
    소유권 변경 대상 파일 경로 (상대 경로 가능)

./file/path.parquet 파일에 대해 소유자를 deep으로 소유 그룹을 machinelearn으로 변경한다.

1
chown deep:machinelearn ./file/path.parquet

Meta Info

Categories: ,

Published At:

Modified At:

Leave a comment