리눅스에서는 파일 및 디렉터리에 대한 권한을 효과적으로 관리하기 위해 사용자, 그룹, 기타(다른 사용자들) 세 가지 범주에 대한 권한을 지원한다.
기본적으로, 각 파일 및 디렉터리는 소유자, 그룹 및 기타 사용자에 대해 읽기, 쓰기 및 실행의 세 가지 권한으로 구성된다.
리눅스 명령어 ls
의 -l
옵션을 통해 현재 위치에 있는 전체 파일들을 자세하게 볼 수 있다.
-rw-rw-r-- 1 myuser myuser 0 Dec 1 08:39 perm.txt
(파일 권한 정보) (링크수) (소유자) (소유 그룹) (용량) (생성 날짜) (파일 이름)
-
: 일반 파일d
: 폴더 / 디렉토리l
: 심볼릭 링크r
), 쓰기(w
), 실행(x
)에 해당하며, -
는 해당 권한이 없음을 나타냄-rw-rw-r--
→ - : 일반 파일, rw- : 소유자 권한, rw- : 소유그룹 권한, r-- : 기타 사용자 권한
Permission denied
라는 메시지가 뜬다chmod
)권한의 변경이 필요한 경우 chmod
(change mode) 명령어를 사용하여 변경한다.
chmod
명령어의 사용법은 크게 두 가지가 있다.
chmod [변경하고자 하는 권한 값] [파일 혹은 디렉토리]
chmod [옵션] [사용자] [설정기호] [권한] [파일 혹은 디렉토리]
+
: 권한 추가
-
: 권한 제거
=
: 권한 부여
u
: user, 소유자
g
: group, 소유 그룹
o
: other, 기타 사용자
a
: all, 모든 사용자
chmod o-r
chmod u+x
각 권한마다 부여된 고유 숫자가 있다. 각 그룹을 대표하는 숫자는 r
, w
, x
권한 여부를 모두 더한 값을 나타낸다.
r
: 4 (읽기)
w
: 2 (쓰기)
x
: 1 (실행)
-R
옵션 : 하위 디렉토리와 그 안의 파일 권한까지 변경 가능
chmod 777
여러 사용자들에게 권한을 부여하고 싶을 경우, 권한을 주고 싶은 사용자들끼리 그룹 형성하여 특정 권한을 부여한다. 권한을 변경할 때는 마찬가지로 chmod
를 사용한다.
cat /etc/group
groups [사용자명]
groupadd [옵션] [그룹명]
-r
: 0~499 사이에 할당되어 있지 않은 GID 중 가장 높은 번호 할당
-g
: 그룹 ID (GID) 명시하여 할당
sudo usermod -a -G [그룹명] [사용자명]
groupdel [그룹명]
groupmod [그룹명]
-g
: 그룹 ID변경
-n
: 그룹명 변경
gpasswd [옵션(사용자명)] [인자값] [그룹명]
-a
: 사용자를 그룹에 추가시킨다.
-d
: 사용자를 그룹에서 제거한다.
파일 소유자 변경은 root만 가능하다.
-R
옵션 : 하위 디렉토리와 그 안의 파일 권한까지 변경 가능
chown [변경할 소유자] [변경할 파일]
chown [소유자]:{그룹명} [변경할 파일]
생활코딩-리눅스 강좌
Linux 리눅스 파일 권한에 대한 이해와 권한 변경(chmod)
[리눅스] 계정/그룹/권한