리눅스 계열은 하나의 컴퓨터를 여러 사람이 사용 할 수 있는 멀티유저 운영체제 이기 때문에 각 폴더나 파일에 권한이 있고 이 권한 관리가 매우 중요하다.
권한 구별에 앞서 우리가 확인 해야하는 부분은 위 사진에서 빨간색, 파란색 부분이다.
빨간색 부분에서 d는 폴더를 의미하며 -일 경우 파일을 의미한다.
파란색 부분에서 r, w, x, -는 접근 권한을 나타낸다.
r : 읽기 권한으로 파일 및 폴더안에 있는 데이터, 속성, 서브 폴더 등에 접근이 가능하다.
w : 쓰기 권한으로 파일 및 폴더의 속성과 데이터를 변경할 수 있다.
x : 실행 권한으로 해당 파일을 실행하여 사용할 수 있다.
- : 권한 없음을 나타낸다.
파란색 부분을 아래 사진처럼 다시 3부분으로 나누어 본다.
빨간색 부분 : 파일 및 폴더를 소유하고 있는 유저가 가지는 권한
파란색 부분 : 그룹 유저가 가지는 권한
노란색 부분 : 다른 유저가 가지는 권한
위에서 권한이 필요한 이유에서 말하였듯이 리눅스 계열은 여러 사용자가 사용하는 시스템이다.
각 사용자들은 하나 이상의 그룹에 소속되어 있게 되어 사용자와 그룹에 대해서도 알고 있어야 한다.
여기에서는 사용자, 그룹 생성 및 관리에 대해서만 알아본다.
adduser 사용자명 : 새로운 사용자 추가
adduser --uid id값 사용자명 : 사용자 생성 및 userID 지정
adduser --gid groupid값 사용자명 : 사용자 생성 및 특정 그룹에 포함
adduser --home 디렉토리명 사용자명 : 사용자 생성 및 홈디렉토리 지정
passwd 사용자명 : 비밀번호 변경
userdel 사용자명 : 사용자 삭제
userdel -r 사용자명 : 사용자 삭제 및 홈디렉토리 삭제
groups 사용자명 : 소속된 그룹 확인
groupadd 그룹이름 : 그룹 생성
groupdel 그룹이름 : 그룹 삭제
gpasswd 그룹이름 : 그룹 비밀번호 설정
gpasswd -옵션 사용자명 그룹이름 : 그룹 사용자 설정(옵션은 필요에 따라 찾아서 사용하자)
파일 또는 디렉토리의 권한을 변경하기 위해서는 chmod 명령어를 이용해야한다.
chmod의 사용법은 개별적으로 파일 권한을 변경하는 방법과 숫자로 한번에 권한을 변경하는 방법이 있다.
개별적으로 파일 권한을 변경하는 방법은 복잡하기 때문에 대표적으로 숫자로 권한을 변경하는 편이다.
여기에서는 숫자로 권한을 변경하는 방법에 대해서 예시로 알아보자
chmod 777 test.txt : test.txt 파일의 사용자, 그룹, 다른 사용자의 모든 권한을 추가
chmod 700 test.txt : test.txt 파일의 사용자에게만 모든 권한을 주고 그룹, 다른 사용자의 모든 권한을 제거한다.
chmod 744 test.txt : test.txt 파일의 사용자에게는 모든 권한을 주고 그룹, 다른 사용자에게는 읽기 권한만 준다.
각 숫자별로 맨 앞에서부터 파일 및 폴더를 소유하고 있는 유저(사용자), 그룹, 다른 사용자 순이다.
chown을 사용하여 파일이나 폴더 또는 하위 경로의 소유자를 변경 할 수 있다.
chown 옵션 소유자:소유자그룹 파일또는폴더
옵션은 생략 가능하며 옵션의 명령어는 필요에 따라 찾아서 사용하자
만약 그룹만 변경하고 싶으면 소유자를 생략하고 콜론(:)을 생략하지 않고 소유자그룹을 적으면 된다.