리눅스에서 사용자 계정의 종류와 권한
리눅스 운영체제에서는 다수의 사용자 계정이 존재하며, 각 계정은 고유한 권한과 제한사항을 갖고 있어 시스템의 보안 및 안정성을 유지하는 데 중요한 역할을 한다.
root 계정
리눅스에서 최상위 권한을 가진 계정으로, 시스템의 모든 권한을 통제할 수 있다. root 권한으로 로그인하면 모든 파일과 디렉터리에 대한 제어와 수정이 가능하다. 따라서 root 계정은 시스템의 관리자나 시스템 운영을 담당하는 사람들만 사용해야 하며, 보안에 매우 민감한 계정이다.
사용자 계정
일반 사용자가 사용하는 계정으로, 파일과 디렉터리에 대한 접근 권한이 제한적이다. 일반 사용자로 로그인하면 자신이 속한 그룹과 권한에 따라 파일과 디렉터리를 사용할 수 있다. 일반적으로 개인 사용자나 일반 직원들이 사용하는 계정이다.
시스템 계정
리눅스 시스템에서 프로세스를 실행시키기 위한 계정으로 로그인이 불가능하며, 시스템 서비스나 백그라운드 프로세스 등을 실행할 때 사용된다.
사용자 계정에서 특정 명령어 또는 파일에 대한 명령어를 수행할 때 permission denied 에러가 발생하면 명령어 앞에 sudo
명령어를 붙여 root 계정 권한으로 명령어를 실행하거나 su
명령어를 통해 root 계정으로 변경할 수 있다.
권한 부여 및 수정
리눅스에서는 파일과 디렉터리에 대한 권한을 부여하거나 수정하는 명령어들이 존재한다.
chmod
chmod
명령어는 파일이나 디렉터리에 대한 권한을 수정할 때 사용된다. 권한은 읽기(r
), 쓰기(w
), 실행(x
)의 3가지 종류로 구성된다.
rw-r—r—를 보면 맨 앞에 -는 디렉토리인지 여부를 판별하고 그 뒤로 3개씩 나눠서 구분한다.
rw- / r— / r— 로 나눠서 보면 소유자, 특정 그룹, 나머지 사용자에 대한 권한을 나타낸다.
뒤에 두 root root 부분은 첫번째는 파일 소유자를 의미하며 두번째는 그룹을 의미한다. 즉 해당 파일에 대한 소유자의 권한은 rw- 이며 root 그룹에 소속된 계정의 경우 r— 의 권한을 가지며 이 둘에 해당되지 않는 계정은 r— 의 권한을 가진다.
chmod g+w stdout.txt
그룹에 쓰기 권한을 준다.
chmod o-r stdout.txt
다른 사용자에게 읽기 권한을 빼앗는다.
위와 같은 방식으로 사용자, 그룹, 다른 사용자를 구분하여 권한을 지정합니다. u 사용자, g 그룹, o 다른 사용자, a 전부 에게 권한을 지정할 수 있고, 더하기(+)를 사용하여 권한을 추가하고, 빼기(-)를 사용하여 권한을 제거할 수 있다.
읽기(r
), 쓰기(w
), 실행(x
)는 각각 숫자 4
, 2
, 1
로 대응된다. 예를 들어, 읽기와 쓰기 권한만 부여하고 실행 권한은 제거하려면 chmod 600 stdout.txt
와 같이 입력한다.
예시
chmod 777 stdout.txt
→ 모든 사용자에게 rwx의 권한을 부여한다.
위 -rw-r—r— 를 숫자로 표현하면 다음과 같다.
chmod 644
chown
chown
명령어는 파일이나 디렉터리의 소유자를 변경하는 데 사용된다. 예를 들어, chown user1 file.txt
와 같이 입력하면 file.txt
의 소유자가 user1
으로 변경된다.
chgrp
chgrp
명령어는 파일이나 디렉터리의 그룹을 변경하는 데 사용된다. 예를 들어, chgrp group1 file.txt
와 같이 입력하면 file.txt
의 그룹이 group1
으로 변경된다.