운영체제실습 사용자계정관리 2017. 6 표월성 wspyo74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 사용자계정관리 1. 사용자계정관리 2. 그룹관리 3. 사용자계정관련파일 4. 패스워드관리 5. 사용자신분확인
사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) - 일반사용자 리눅스 u 그룹 (group) - 모든사용자는 1 개이상의그룹에소속 - 사용자이름의그룹을만든후, 해당그룹에소속시킴 root 시스템관리자 /root 일반사용자 /home/superkidd /home/ropun /home/gogostar superkidd ropun gogostar
1. 사용자계정관리 사용자생성관련명령어 u 사용자생성 : useradd / adduser u 사용자삭제 : userdel u 사용자정보변경 : usermod u 패스워드설정및변경 : passwd 1. 사용자계정관리 useradd / adduser u 사용자계정생성 - $sudo useradd [ 계정명 ] - $sudo adduser [ 계정명 ] u 패스워드설정및변경 - $passwd [ 계정명 ] u 사용자계정생성확인 - /etc/passwd 파일 - /etc/shadow 파일 - /etc/group 파일
1. 사용자계정관리 useradd / adduser u 사용자계정생성 : - 생성할 ID : evergreen 1. 옵션없이계정생성 $sudo useradd evergreen - evergreen 계정생성 - evergree 의홈디렉토리가생성되지않음 (/home/evergreen) 1. 사용자계정관리 useradd / adduser u 사용자계정생성 : - 생성할 ID : superkidd 2. 계정생성시, 홈디렉토리생성 (-m 옵션 ) $sudo useradd -m superkidd - superkidd 계정생성 - superkidd 의홈디렉토리가생성 ( 기본경로 : /home/superkidd)
1. 사용자계정관리 useradd / adduser u 사용자계정생성 : - 생성할 ID : flower 4. 계정생성시, 사용자설명 " 추가 (-c 옵션 ) $sudo useradd < 계정명 > -c [ 설명내용 ] $sudo useradd -c 010-xxxx-xxxx flower - flower 계정생성 - flower 에대한설명추가 u /etc/passwd 파일의 5 번째필드에내용추가 1. 사용자계정관리 useradd / adduser u 사용자계정생성 : - 생성할 ID : ropun 5. 계정생성시, UID 지정 (-u 옵션 ) $sudo useradd -u <UID> < 계정명 > $sudo useradd -u 2000 ropun - flower 계정생성 - flower 에대한설명추가 6. 계정생성시, GID 지정 (-g 옵션 ) $sudo useradd -g <GID> < 계정명 > $sudo useradd -g 3000 ropun 단, 그룹은이미존재하고있어야함
1. 사용자계정관리 useradd / adduser u 패스워드설정및변경 $sudo passwd superkidd 1. 사용자계정관리 u 계정삭제 userdel - $sudo userdel [ 계정명 ] 예 ) flower 사용자계정삭제 flower 계정삭제 flower 의홈디렉토리삭제여부? flower 의홈디렉토리삭제
1. 사용자계정관리 userdel u 계정삭제시, 사용자홈디렉토리 " 까지삭제 - $sudo userdel -r < 계정명 > 예 ) ropun 사용자계정삭제 - 홈디렉토리까지삭제 1. 사용자계정관리 ( 계정정보변경 ) u 계정정보변경 usermod $sudo usermod [ 옵션 ] < 계정명 > - /etc/passwd 혹은 /etc/shadow 파일의내용을변경
1. 사용자계정관리 ( 계정정보변경 ) u 사용자 UID 변경 usermod $sudo usermod -u <UID> < 계정명 > - /etc/passwd 파일의 3 번째필드 (UID 필드 ) 정보변경 1. 사용자계정관리 ( 계정정보변경 ) usermod u 사용자계정사용종료일지정 $sudo usermod -e <xxxx-xx-xx> < 계정명 > - /etc/shadow 파일의 8 번째필드 (disable 필드 ) 정보변경 (1970 년 1 월 1 일부터계산 )
1. 사용자계정관리 ( 계정정보변경 ) usermod u 사용자의 홈디렉토리변경 $sudo usermod -d < 홈디렉토리경로 > < 계정명 > - /etc/passwd 파일의 6 번째필드 ( 홈디렉토리필드 ) 정보변경 ( 실제홈디렉토리가변경되는것은아님!) 실제홈디렉토리가변경되는것은아님 1. 사용자계정관리 ( 계정정보변경 ) usermod u 사용자의 로그인쉘변경 $sudo usermod -s < 변경할 shell> < 계정명 > - /etc/passwd 파일의 7 번째필드 ( 로그인쉘필드 ) 정보변경 시스템에서사용할수있는쉘정보 vi( 편집기 ) 로 /etc/passwd 파일을직접변경해도동일한효과
그룹관리 2. 그룹관리 그룹생성관련명령어 u 그룹생성 : groupadd u 그룹삭제 : groupdel u 그룹정보변경 : groupmod
2. 그룹관리 u 그룹생성 groupadd - $sudo groupadd [ 옵션 ] < 계정명 > u 그룹생성확인 - $sudo /etc/group 파일 ( 그룹이름 : 비밀번호 : 그룹 ID : 그룹에속한사용자이름 ) u 관련파일 - /etc/login.defs 파일 (GID 시작번호 ) 2. 그룹관리 u 그룹생성 groupadd - $sudo groupadd [ 옵션 ] < 그룹명 > 예 ) testgroup 그룹생성 $sudo groupadd testgroup u 그룹생성시, GID 설정 - $sudo groupadd -g [GID] testgroup1 u 그룹생성시, 시스템그룹설정 - $sudo groupadd -r testgroup2
2. 그룹관리 u 그룹삭제 groupdel - $sudo groupdel < 삭제할그룹 > 예 ) testgroup2 그룹삭제 2. 그룹관리 ( 그룹정보변경 ) u 그룹정보변경 groupmod - $sudo groupmod [ 옵션 ] < 그룹명 >
2. 그룹관리 ( 그룹정보변경 ) groupmod u 계정에그룹추가 : $sudo usermod -G < 그룹 A> < 그룹 B> < 계정명 > 예 ) green 계정에 colors 그룹추가 => $sudo usermod -G colors green colors 그룹생성 ( 참고 ) $sudo groups < 계정명 > - 계정이속한그룹들출력 u 계정에기본그룹변경 $sudo usermod -g < 그룹 A> < 계정명 > green 계정에 colors 그룹추가 예 ) green 계정의기본그룹을 colors 로변경 => $sudo usermod -g colors green 사용자계정관련파일
3. 사용자계정관련파일 사용자관련파일 u /etc/default/useradd u /etc/login.defs u /etc/skel 디렉토리 u /etc/passwd u /etc/shadow u /etc/group u /etc/gshadow 3. 사용자계정관련파일 사용자생성시, 관련파일 u /etc/default/useradd - 새로계정을생성할때, 참조하는파일 - default 쉘 (SHELL) - 기본소속그룹 (GROUP) - 기본사용자 홈디렉토리 경로 (HOME) - 패스워드만료후, 유효기간 (INACTIVE) - 계정종료일자 (EXPIRE) - 홈디렉토리에복사될초기파일들이있는디렉토리
3. 사용자계정관련파일 사용자생성시, 관련파일 u /etc/default/useradd 3. 사용자계정관련파일 사용자생성시, 관련파일 u /etc/login.defs 파일 - 사용자계정의설정과관련된기본값을정의한파일 - useradd가새로운계정을생성할때, 반드시참조하는파일
3. 사용자계정관련파일 사용자생성시, 관련파일 u /etc/skel 디렉토리 - 사용자계정을생성할때, 홈디렉토리가자동으로생성하고, - /etc/skel디렉토리의파일들을해당사용자의홈디렉토리에복사 3. 사용자계정관련파일 u /etc/passwd /etc/passwd - 사용자계정정보가저장된기본파일 u 구조 - 로그인 ID : 패스워드 : UID : GID : 설명 : 홈디렉토리 : 로그인쉘 참고 ) - 로그인 ID( 계정 ID) 가다르더라도, UID 가같은경우, 동일한사용자로인식함 예 ) root 의 UID = 0 user1 의 UID = 0 // root 계정으로인식함
3. 사용자계정관련파일 /etc/shadow u /etc/shadow - 초기 UNIX/Linux시스템에서 /etc/passwd에저장해킹위험증가암호만 /etc/shadow파일에별도저장 3. 사용자계정관련파일 /etc/shadow u /etc/shadow 구조 - 로그인 ID : 패스워드 : 최종변경일 (Last changed) : Minimum : Maximum : Warn : Inactive : expire : reserved
3. 사용자계정관련파일 Shadow 패스워드시스템 u shadow 패스워드시스템해제 #pwunconv $sudo pwunconv u Shadow 패스워드시스템시작 #pwconv $sudo pwconv 패스워드관리
4. 패스워드관리 로그인방지 u 로그인일시금지 1. /etc/passwd 파일의 로그인쉘 필드수정 - /bin/false - /usr/sbin/nologin ( /sbin/nologin ) 2. /etc/passwd 파일의 패스워드 필드를수정 - x 를 * 로수정 3. /etc/shadow 파일의 패스워드 필드앞에! 를추가 4. 패스워드관리 로그인방지 u 로그인일시금지 1. /etc/passwd 파일의 로그인쉘 필드수정 - /bin/false - /usr/sbin/nologin ( /sbin/nologin ) 2. /etc/passwd 파일의 패스워드 필드를수정 - x 를 * 로수정 3. /etc/shadow 파일의 패스워드 필드앞에! 를추가
4. 패스워드관리 로그인방지 u 로그인일시금지 1. /etc/passwd 파일의 로그인쉘 필드수정 - /bin/false - /usr/sbin/nologin ( /sbin/nologin ) 2. /etc/passwd 파일의 패스워드 필드를수정 - x 를 * 로수정 3. /etc/shadow 파일의 패스워드 필드앞에! 를추가 4. 패스워드관리 로그인방지 u 패스워드 locking / unlocking 1. 사용자패스워드 locking $sudo passwd -l [ 계정ID] 2. 사용자패스워드 unlocking $sudo passwd -u [ 계정 ID]
4. 패스워드관리 로그인방지 u 로그인이불가능하도록계정생성 1. 계정생성할때, 로그인할수없도록계정생성 $sudo useradd -s /bin/false [ 계정ID] $sudo useradd -s /usr/sbin/nologin [ 계정ID] 사용자신분확인
5. 사용자신분확인 u 로그인계정확인 로그인계정확인 $whoami // who am i u UID, GID 값확인 $id // UID 값, GID 값, 속해있는그룹 u 나 or 다른사람이속한그룹확인 $groups $groups [ 계정 ID] 5. 사용자신분확인 현재사용자변경 (su) u su (substitute user) $su [ 계정ID] $su - [ 계정ID] 시스템관리자 (root) 로변환 $su - root $su root
5. 사용자신분확인 u su 와환경변수 su 와환경변수 1. 변경할사용자의변경변수적용 #su - [ 계정명 ] 예 1) #su - black Þ black 으로사용자를전환하면서 Þ black 의환경변수적용 5. 사용자신분확인 u su 와환경변수 su 와환경변수 1. 변경할사용자의변경변수적용 #su - [ 계정명 ] 예1) #su black Þ black으로사용자를전환 Þ black의환경변수적용하지않음 Þ 즉, 전환전 root의환경변수를그냥사용함