사용자 정보 관리
- UID: 사용자가 로그인할 때 사용한 계정의 UID
- EUID: 현재 명령을 수행하는 주체의 UID
- 실행 파일에 setuid가 설정되어 있는 경우
- 해당 실행 파일을 실행한 프로세스의 UID는 사용자 계정의 UID가 아닌 파일 소유자의 UID
- 실행 파일 소유자의 UID = EUID
- su 명령을 사용하여 다른 계정으로 전환한 경우
- 사용자가 로그인하면 처음에는 UID와 EUID가 같은 값을 가짐
- su 명령을 사용하여 다른 사용자로 전환하면 UID와 EUID가 달라짐
who
- who [옵션]
- 옵션없이 사용할 경우 사용자 이름, 접속한 단말기 번호, 로그인한 시간 출력
- 외부 네트워크에서 접속했을 경우 외부 컴퓨터 이름이나 IP 주소 출력
- -q: 사용자명 출력
- -H: 출력 항목의 제목도 함께 출력
- -b: 마지막으로 재부팅한 날짜와 시간 출력
- -m: 현재 사용자 계정의 정보 출력
- -r: 현재 런레벨 출력
- 현재 시스템을 사용하는 사용자의 정보 출력
w
- w [사용자명]
- 현재 시스템을 사용하는 사용자의 정보와 작업 정보 출력
- who 명령에서 나온 출력 외에 활동에 대한 정보와 CPU 사용량, 시스템 로드 정보 등이 추가로 출력
last
- 시스템에 로그인하고 로그아웃한 정보 출력
- 사용자의 이름과 로그인한 시간, 로그아웃한 시간, 터미널 번호나 IP 주소를 출력
UID와 EUID 확인
- UID 출력: whoami, who -m
- EUID 출력: whoami, id
groups
- groups [계정명]
- 사용자 계정이 속한 그룹 출력
- 특별히 사용자를 지정하지 않고 실행하면 현재 사용자 계정이 속한 그룹 출력
- 사용자 계정을 인수로 지정하면 해당 사용자 계정이 속한 그룹 정보 출력
root 권한 사용
- su 명령을 사용하여 root 계정으로 전환: 모든 권한 부여
- sudo 명령 사용: 특정 작업만 수행할 수 있는 권한만 부여
- sudo 권한 설정: /etc/sudoers 파일에 설정
- root ALL=(ALL:ALL) ALL
- 수정 권한을 부여한다면 명령은 절대 경로로 표시
- 명령이 여러 개일 경우 쉼표로 구분
- sudo 명령 사용 시 주의사항
- 일반 사용자에게 모든 권한을 부여하는 것은 매우 위험 (해당 계정 암호 유출 시 root 계정 암호 유출과 마찬가지)
- sudo 명령을 사용할 수 있는 사용자의 선정과 명령 선택은 매우 신중하게 처리해야 함
passwd
- passwd [옵션] [사용자계정]
- -l 계정: 지정한 계정의 암호 잠금
- -u 계정: 암호 잠금 해제
- -d 계정: 지정한 계정의 암호 삭제
- 사용자 계정의 암호 수정
- /etc/shadow 파일에서 암호의 맨 앞에 !가 있을 경우 암호가 잠긴 상태
chown
- chown [옵션] 사용자계정 파일or디렉터리명
- -R: 서브 디렉터리의 소유자와 소유 그룹도 변경
- 파일과 디렉터리의 소유자와 소유 그룹 변경
chgrp
- chgrp [옵션] 그룹명 파일or디렉터리명
- -R: 서브 디렉터리의 소유 그룹도 변경
- 파일과 디렉터리의 소유자와 소유 그룹 변경
디스크 쿼터 관리
- 디스크 쿼터: 디스크 사용량을 제한하는 것
- 하드디스크에서 사용자가 사용할 수 있는 파일의 전체 용량을 설정하는 방법
- 사용자가 사용할 수 있는 총 파일 수로 설정하는 방법
- 하드 리미트: 사용자가 절대로 넘을 수 없는 최대치를 명시한 값
- 소프트 리미트: 일정 시간 내에는 넘을 수 있는 한계 값
- 우분투에서 디스크 쿼터를 설정하려면 쿼터 패키지 설치 필요
- sudo apt install quata
쿼터 속성 설정
- usrquota: 개별 사용자의 쿼터를 제한할 수 있는 속성
- grpquota: 개별 그룹의 쿼터를 제한할 수 있는 속성
- 파일 시스템의 마운트 옵션은 /etc/fstab 파일에 설정
- usrquota 옵션이 설정되었는지는 mount 명령으로 확인 가능
쿼터 데이터베이스 파일 생성
- quotacheck [옵션]
- -a 대신 특정 파일 시스템을 스캔하게 할 수 있음
- -a: 전체 파일 시스템 스캔
- -u: 사용자 쿼터 확인
- -g: 그룹 쿼터 확인
- -m: 파일 시스템을 리마운트하지 않음
- -v: 명령 진행 상황을 상세하게 출력
- 쿼터 파일을 생성, 확인, 수정하기 위해 파일 시스템 스캔
- 데이터베이스 파일이 있는 경우 디스크 사용량 수정
- 데이터베이스 파일이 없는 경우 쿼터 파일 생성
쿼터 설정을 위한 사전 준비
- 저널 쿼터를 사용하려면 /etc/fstab 파일 수정 필요
- 사용자 쿼터만 지정: usrjquota=aquota.user, jqfmt=vfsv0
- 그룹 쿼터만 지정: grpjquota=aquota.grp, jqfmt=vfsv0
- 둘 다 지정: usrjquota=aquota.user, grpjquota=aquota.grp, jqfmt=vfsv0
- /etc/fstab 파일 수정 후에는 다시 마운트를 해줘야 함
- aquota.user: 사용자 쿼터 데이터베이스 파일
- aquota.grp: 그룹 쿼터 데이터베이스 파일
쿼터 사용 활성화
- quotaon [옵션]
- -a 대신 특정 파일 시스템의 쿼터 기능을 활성화하게 할 수 있음
- -a: 전체 파일 시스템의 쿼터 기능 활성화
- -u: 사용자 쿼터 활성화
- -g: 그룹 쿼터 활성화
- -v: 명령 진행 상황을 상세하게 출력
- 파일 시스템의 쿼터 기능 활성화
- 쿼터의 비활성화는 quotaoff
쿼터 설정
- edquota [옵션] 사용자계정or그룹명
- -u: 사용자 쿼터를 설정
- -g: 그룹 쿼터를 설정
- -p: 쿼터 설정을 복사
쿼터 정보 확인
- quota [옵션] 사용자계정or그룹명
- -u: 사용자 쿼터 정보 출력
- -g: 그룹 쿼터 정보 출력
쿼터 정보 요약 출력
- repquota [옵션]
- -a 대신 특정 파일 시스템의 쿼터 정보 출력 가능
- -a: 전체 파일 시스템의 쿼터 정보 출력
- -u: 사용자 쿼터 정보 출력
- -g: 그룹 쿼터 정보 출력
- -v: 사용량이 없는 쿼터의 정보도 출력