728x90
사용자(User) 관리 명령어
사용자 계정
- 시스템 관리자의 중요한 역할 중 하나는 사용자 계정을 만들고 관리하는 일
- 사용자 계정의 구성 요소
- 로그인 ID : 시스템에 로그인할 때 사용자를 구분하기 위해 사용하는 이름. 사용자 이름. 시스템에서 유일해야 함
- 비밀번호 : 시스템에 로그인 허가를 받기 위해 사용자임을 증명하는 문자열. 6~8자 사이의 영문자, 숫자, 특수 문자의 조합으로 구성
- 홈 디렉토리 : 사용자가 로그인한 직후 위치하는 디렉토리. 자신의 파일과 디렉토리 저장
- 로그인 쉘 : 로그인할 때 자동으로 실행되는 쉘. 사용자의 명령을 입력받아 처리
- 사용자 초기화 피일 : 각 사용자가 자신의 작업 환경을 구성하는 파일. 로그인할 때마나 로그인 쉘이 자동으로 실행
/etc/passwd 파일
- 패스워드 파일은 시스템 보안을 위해 필수적인 파일
- 사용자가 로그인할 때 올바른 사용자임을 평가하는데 기준이 되는 파일
- 시스템의 모든 사용자에 대한 계정이 기록되어 있음
- 패스워드 파일의 목록
- username : 등록된 사용자 계정. 8자 이하의 영문자와 숫자로 이루어짐. 콜론, 마침표, -, +로 시작하는 이름을 가질 수 없음
- password : 암호화된 패스워드의 문자열. 아무런 데이터가 없으면 로그인할 때 패스워드가 필요없다는 의미
- uid : username에 할당된 번호. 시스템이 부여한 사용자 식별자. 65535이하의 양수 값.
- 0 : 관리자
- 1-10 : 숙련된 사용자들과 가상의 사용자
- 11-99 : 시스템과 예약된 사용자와 famous 사용자 (famous 사용자는 시스템에 관련된 특별한 일을 하는 사용자 ID로 시스템 관리자가 잘 알고 있는 사용자 ID)
- 100 + : 일반 사용자
- 60001 : nobody (root가 시키는 일만 하는 계정)
- 60002 : noaccess (아무 일도 할 수 없는 계정)
- gid : username이 소속된 그룹을 나타내는 숫자 값. /etc/group 파일의 목록에 있는 숫자와 동일한 정보
- full_name : 사용자에 대한 완전한 이름이나 설명 정보. finger 명령을 사용하면 이 정보를 보여줌
- directory : 사용자의 홈 디렉토리. 사용자가 로그인한 후 놓이게 될 위치
- shell : 사용자가 로그인하여 사용하는 쉘의 종류
username:password:uid:gid:full_name:directory:shell
/etc/shadow 파일
- 패스워드 파일로는 시스템을 안전하게 보호할 수 없음
- 패스워드를 shadow 파일로 옮김
- root만 접근할 수 있도록 설정되어 있음
- /etc/shadow 파일의 형식
- username : /etc/passwd에서 복사해 온 사용자 계정
- passwd : 암호화된 패스워드 문자. 비어 있는 경우 패스워드가 필요없음을 나타냄. ‘:*:’라고 되어 있으면 그계정의 접속을 막아두었다는 의미
- last : 1970년 1월 1일 이후 패스워드를 마지막으로 바꾼 날이 몇 일째의 날인지 나타냄
- may : 최소 며칠이 지난 뒤에 패스워드를 바꿀 수 있는지 나타냄. 0이면 언제든 바꿀 수 있다는 의미
- must : 패스워드를 반드시 변경해야 하는 날로부터 며칠이나 경과되었는지를 나타냄. 99999는 오랫동안 패스워드를 바꾸지 않았다는 것을 나타냄
- warn : 패스워드가 만기되었음을 며칠 동안 사용자에게 계속 주의를 줄 것인지를 나타냄. 1주일 동안 알려주려면 7을 지정
- expire : 패스워드가 만기가 되어서 계정이 사용불가가 된 지 며칠이나 지났는지를 나타냄
- disable : 계정이 사용불가가 된 것이 1970년 1월 1일부터 계산하여 몇 일째였는지 나타냄
- reserved : 후에 사용하기 위해 미리 잡아둔 항목
username:passwd:last:may:must:warn:expire:disable:reserved
/etc/group 파일
- 계정을 가진 사용자는 하나의 그룹에 속함
- /etc/group 파일의 형식
- groupname : 그룹의 이름
- password : 그룹의 암호화된 패스워드. 대부분 null 값(패스워드가 없다는 의미)
- group_id : 그룹에 대한 고유값. /etc/passwd 파일에서 사용자가 갖는 gid 값과 같음
- list : 이 그룹에 속한 사용자 계정을 나열. 각 사용자들을 콤마(,)로 나열
groupname:password:group_id:list
가상의 사용자
- 일반 계정처럼 고유의 이름을 가지지만, 시스템의 특정한 일을 하기 위한 시스템 고유의 계정
- /etc/shadow 파일의 패스워드 부분에 “*”로 표시된 계정
- 로그인할 수 없는 계정
- 자신들과 관계된 프로세스와 파일들에서 사용됨
사용자 추가하기
- useradd 명령
- 사용자 계정을 생성
- 형식 : useradd [옵션] 로그인명
- 옵션
- -u uid : UID 값을 지정
- -g gid : GID 값을 지정
- -d dir : 홈 디렉토리의 절대 경로를 지정
- -m : 사용자 홈 디렉토리가 없으면 생성
- -s shell : 로그인 쉘의 절대 경로를 지정
- -c comment : 사용자 정보를 기술
- 사용 예 : # useradd –m user1
사용자 정보 수정하기
- usermod 명령
- 이미 생성한 사용자 계정 정보를 수정
- 형식 : usermod [옵션] 로그인명
- 옵션
- -u uid : UID 값을 지정한 값으로 변경
- -g gid : GID 값을 지정한 값으로 변경
- -d dir : 홈 디렉토리 변경
- -s shell : 로그인 쉘 변경
- -c comment : 사용자 정보 변경
- -l 새 로그인 이름 : 로그인명 변경
- 사용 예 : # usermod –s /bin/csh user10
사용자 삭제하기
- userdel 명령
- 사용자 계정을 삭제
- userdel [-r] 로그인명
- 옵션 : -r : 사용자 홈 디렉토리 삭제
- 사용 예 :# userdel –r user10
사용자에게 메시지 전달하기
- 시스템에 접속 중인 전체 사용자에게 메시지 전달하는 방법
- 접속 중인 모든 사용자에게 즉시 메시지를 전달하는 방법
- 사용자가 로그인할 때 메시지가 보이게 하는 방법
- 긴급 메시지 전달 : wall
- write all users의 약자
- 접속 중인 모든 사용자에게 메시지를 보냄
- 긴급하게 전달할 내용이 있을 때 사용
- 형식 : walll [옵션] [파일 이름]
- 옵션
- -a : 가상 터미널을 포함한 모든 터미널로 메시지를 전송
- -g 그룹명 : 지정한 그룹에게만 메시지를 전송
- file : 메시지 내용을 파일에서 읽음
- 사용 예 : # wall –a, # wall –g other letter
- 공지사항 전달 : /etc/motd
- 모든 사용자가 알아야 하지만 긴급한 내용이 아니면, 로그인할 때 메시지 출력
- /etc/motd 파일 : message of today의 약자
- 모든 사용자에게 보낼 공지사항을 저장
# more /etc/motd
그룹(Group) 관리 명령어
그룹
- 파일과 시스템 자원을 공유할 수 있음
- 유닉스 시스템의 사용자들은 모두 하나 이상의 그룹에 속함
- 사용자가 생성한 파일은 사용자 기본 그룹에 속함
- /etc/passwd 파일의 4번째 필드인 그룹 ID는 기본 그룹의 ID
/etc/group 파일을 이용해 그룹 정보 관리하기
- 모든 사용자 그룹 정보가 있는 파일
- root : 시스템 관리자 계정이면서 시스템이 관리하는 그룹 이름. bin, sys, adm, uucp, daemon 등이 계정과 그룹 이름으로 동시에 사용됨
- 그룹 비밀번호 : 정보 유출이 생길 수 있어 최근에는 사용하지 않음
- GID : group id. 시스템이 각 그룹에 붙인 일련번호
- 사용자 목록 : 그룹에 속한 사용자의 로그인 이름
root::0:root
그룹 생성하기 : groupadd
- 새 그룹은 groupadd 명령을 이용하거나 /etc/group 파일을 직접 수정
- 형식 : groupadd [옵션] 그룹명
- 옵션
- -g gid : gid 값을 지정
- -o : gid의 중복을 허용
- 사용 예 : #groupadd classa
- 시스템이 자동으로 부여하는 GID 값을 사용
# groupadd class1
# grep class1 /etc/group
class1::100:
#
그룹 수정하기 : groupmod
- 생성된 그룹 정보를 수정하는 명령
- GID 값과 그룹 이름 변경 가능
- 형식 : groupmod [옵션] 그룹명
- 옵션
- -g gid : gid 값을 수정
- -o : gid 중복을 허용
- -n 새 이름 : 그룹 이름을 변경
- 사용 예 : #groupmod –n class1 classa
- GID 값을 수정할 때는 기존의 값과 중복되지 않는지 확인. 중복을 원하는 경우 –o 옵션 사용
# groupmod –n classa class1
Found group in files repository
# grep class1 /etc/group
# grep classa /etc/group
classa::100:
#
그룹 삭제하기 : groupdel
- groupdel 명령을 사용하거나 /etc/group 파일에서 해당 그룹의 항목을 삭제
- 형식 : groupdel 그룹이름
- 사용 예 : #groupdel class1
# groupdel classa
Found group in files repository
# grep classa /etc/group
#
728x90
'프로그래밍 > Unix' 카테고리의 다른 글
[유닉스] 시스템 백업과 복구 명령어 (0) | 2020.05.20 |
---|---|
[유닉스/unix] 시스템 성능 관리 명령어 (0) | 2020.05.19 |
[유닉스] 시스템 부팅과 종료 (0) | 2020.05.17 |
[유닉스] 시스템 관리자 (0) | 2020.05.16 |
쉘 스크립트(Shell Script) 디버깅 (0) | 2020.05.14 |