리눅스 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
라고 쓸 경우 파일을 소유한user
와group
에게 같은 권한을 부여한다.소유 수준 표현 문자 설명 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
Leave a comment