사용자관리환경 사용자관리도구 시스템종료 실습 순천향대학교컴퓨터학부이상정 1 사용자관리환경 순천향대학교컴퓨터학부이상정 2
사용자 리눅스에서모든파일과프로그램은어떤사용자 (user) 에의해소유 사용자 ID(UID) 라불리는고유한숫자로식별됨. 각사용자는적어도하나의그룹 ( 시스템관리자가만드는사용자들의집합 ) 에소속 사용자의권한 일반사용자 자신이접근할수있도록허용된자원만접근가능 root 사용자 (root user): 슈퍼유저 모든자원에액세스가능 /etc/passwd 파일에사용자계정정보등록 순천향대학교컴퓨터학부이상정 3 홈디렉토리 (Home Directories) 각사용자가다른사용자의구성환경을방해하지않으면서 ( 비록여러사용자가시스템에동시에로그인할지라도 ) 자신만의환경에서실행할수있도록해주는역할 자신들의설정파일 / 일상적인작업파일을저장. 홈디렉토리의위치 일반적으로 /home 에각사용자들의로그인이름의디렉토리예 ) /home/lee 사용자의홈디렉토리는관리자가변경가능 /etc/passwd 파일에등록 useradd 명령의 d 옵션사용하여변경 순천향대학교컴퓨터학부이상정 4
셀 (shell) (1) 셀이란? 리눅스와사용자사이의매개체프로그램 사용자가시스템에로그인하면처음보는프로그램 윈도의 command.com이나프로그램관리자 (Program Manager) 또는윈도탐색기와유사 셀프로그램의종류 Bourne shell: /bin/sh Bourne-Again shell: /bin/bash Korn shell: /bin/ksh (Bourne Shell 포함 ) C shell: /bin/csh ( 대화형작업에유리 ) 일반적인프롬트구분 $ (Bourne shell, Korn shell) % (C shell) 순천향대학교컴퓨터학부이상정 5 셀 (shell) (2) 셀의선택 디폴트로그인셀은시스템관리자가지정 /etc/passwd 패스워드파일에등록되어있는셀프로그램의미 chsh (change shell) 명령으로디폴트셀 $ chsh s /bin/csh 로그아웃후다시로그인 $ ps로확인 $SHELL: 로그인 shell 절대경로저장 $ echo $SHELL 순천향대학교컴퓨터학부이상정 6
시작스크립트 시작스크립트 (Startup Scripts) 과거도스 (DOS) 의 autoexec.bat, config.sys 파일과유사 리눅스같은다중사용자환경에서는사용자는자신만을위한환경설정파일들을소유해야함 사용자별환경설정파일은셀스크립트의형태로존재 시작스크립트는사용자가로그인할때셀이실행할일련의명령들이저장 시작스크립트파일은사용자의홈디렉터리에존재 사용자계정을만들때는사용자가로그인시사용할기본닷파일들을관리자가제공해야한다. 리눅스에있는정식도구를사용하여사용자계정을만든다면이도구들이자동으로생성 순천향대학교컴퓨터학부이상정 7 bash 시작스크립트 Bourne-Again shell (bash) bash 는기본적인리눅스셀이며 root 셀 리눅스의 bash 는 Unix 의 Bourne Shell 문법을모두만족하며그외에더나은 C Shell 의일부분도포함 bash 시작스크립트.bash_profile 로그인셀로로그인시사용자인증후실행.bashrc 셀을실행하고명령의경로등지정.bashrc 비로그인셀로예를들어터미널을오픈하는경우처럼인증이없이실행 /etc/bashrc 셀을실행 프롬트등의사용자기본환경설정 순천향대학교컴퓨터학부이상정 8
/etc/passwd 파일 (1) /etc/passwd 파일은사용자의계정등록정보를저장하는파일 사용자의로그인이름 암호화된패스워드 UID ( 사용자 ID) GID ( 그룹 ID) 사용자이름이나코멘트 홈디렉토리 로그인셀경로명 한줄에한사용자의정보가모두들어있음 각항목은콜론 (:) 으로구분 sshah:boqavhhackaxg:100:102:steve Shah:/home/sshah:/bin/bash 순천향대학교컴퓨터학부이상정 9 /etc/passwd 파일 (2) 기존계정디스에이블하기 나중에다시인에이블할수있게패스워드엔트리뒤에별표 (*) 를삽입하는것 boqavhackaxg boqavhackaxg* 별표뒤에디스에이블의사유를붙여주는것도좋은방법 boqavhhackaxg*caught pirating 완전한예 root:agq/ijgasew1m:0:0:root:/root:/bin/bash bin:*:1:1:bin:/bin: daemon:*:2:2:daemon:/sbin: adm:*:3:4:adm:/var/adm: lp:*:4:7:lp:/var/spool/lpd: sync:*:5:0:sync:/sbin:/bin/sync shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown halt:*:7:0:halt:/sbin:/sbin/halt mail:*:8:12:mail:/var/spool/mail: news:*:9:13:news:/var/spool/news: uucp:*:10:14:uucp:/var/spool/uucp: operator:*:11:0:operator:/root: games:*:12:100:games:/usr/games: gopher:*:13:30:gopher:/usr/lib/gopher-data: ftp:*:14:50:ftp User:/home/ftp: pop:*:15:15:apop Admin:/tmp:/bin/tcsh nobody:*:99:99:nobody:/: sshah:kss9ere9b1ejs:500:500:steve Shah:/home/sshah:/bin/tcsh hdc:bfcablvzbibfm:501:501:h. D. Core:/home/hdc:/bin/bash jyom:*:502:502:mr. Yom:/home/jyom:/bin/bash 순천향대학교컴퓨터학부이상정 10
기타계정등록관련파일 /etc/shadow 파일 패스워드엔트리를 /etc/passwd 파일에서분리하여 /etc/shadow 파일에관리 /etc/passwd 파일은모든사용자들이읽을수있으나 /etc/shadow 파일은 root 권한이있는프로그램만읽을수있음 /etc/group 파일 각사용자는적어도하나의그룹에속해있어야함 사용자그룹에관한정보저장 순천향대학교컴퓨터학부이상정 11 사용자관리도구 순천향대학교컴퓨터학부이상정 12
사용자계정추가명령 useradd useradd [-c comment] [-d homedir] [-e expire date] [-f inactive time] [-g initial group] [-G group[,...]] [-m [-k skeleton dir]] [-M] [-s shell] [-u uid [-o]] [-n] [-r] login 예 로그인이름이 sshah인새로운사용자를추가 # useradd sshah 지정하지않은값들은디폴트값이사용 디폴트값알아보기 : useradd D 이름 : H.D. Core, 기본그룹 admin과보조그룹 support, 로그인이름 : hdc, 셀 : Turbo C 셀 계정추가 # useradd -c "H. D. Core" -g admin -G support -s /bin/tcsh hdc 옵션설명 : 표 5-1 참조.bash_profile에경로 /usr/bin이지정되어있지않으면 /usr/sbin/useradd와같이전체경로를기술해야함 순천향대학교컴퓨터학부이상정 13 사용자계정관련명령 userdel 기존사용자들을삭제하기위한명령 사용법 userdel [-r] username /etc/passwd 및 /etc/shadow 파일, /etc/group 파일에있는관련엔트리를자동으로제거 r 옵션 ( 예 : userdel r sshah) 사용자홈디렉터리내에있는사용자소유의모든파일까지완전히제거. usermod 기존사용자의등록정보를수정하는명령 사용법 : useradd 와유사 groupadd 어떤그룹을 /etc/group 파일에추가 groupdel /etc/group 파일에등록되어있는기존그룹을제거 groupmod 기존그룹의등록정보를변경할때사용 순천향대학교컴퓨터학부이상정 14
시스템종료 순천향대학교컴퓨터학부이상정 15 shutdown (1) /sbin/shutdown 여러가지필요 ( 시스템업그레이드및패치등 ) 에의해서시스템을종료시켜야하는경우에사용 관리자가시스템을종료할때의작업순서와 shutdown 을했을때커널에서내부적으로이루어지는작업은다음과같다. 1. 접속해있는사용자들에게시스템이종료된다는메시지를전송 2. 새로운사용자의로그인을금지 3. 지정된시간내에종료되지않은프로세스를강제종료 4. 지정된시간내에로그아웃하지않은사용자를강제종료 5. 메모리남아있는데이터를디스크에저장 ( 디스크동기화 ) 6. 시스템에종료에관련된정보를시스템로그파일에기록 7. mount 되어있는디바이스들을 umount 8. 시스템을종료 순천향대학교컴퓨터학부이상정 16
shutdown (2) /sbin/shutdown [-t sec] [-rkhncff] time [warning-message] -k : 실제로종료하지않고모든사용자에게경고메시지만을전송 -r : 시스템종료후에재부팅 (reboot) -h : shutdown 후에시스템을종료 (halt) -f : 재부팅할때 fsck(file system check) 를하지않음 -c : shutdown 명령어를취소 time : 몇분후에시스템을종료할것인가를지정 warning-message : 사용자에게보내질종료메시지 예 접속한사용자에게경고메시지를보내고 5 분후에시스템을종료 # shutdown -h -t 5 System down for regular maintenance 시스템을즉시종료 # shutdown -h now 시스템을즉시재부팅 # shutdown -r now 순천향대학교컴퓨터학부이상정 17 기타시스템종료명령 halt, reboot, poweroff 시스템을종료하는명령으로 reboot 과 poweroff 가 halt 명령에링크되어있음 형식 /sbin/halt [-n] [-w] [-d] [-f] [-i] [-p] [-h] /sbin/reboot [-n] [-w] [-d] [-f] [-i] /sbin/poweroff [-n] [-w] [-d] [-f] [-i] [-h] n : 재부팅이나종료전에 sync 를수행하지않음 현재메모리의내용등을디스크에저장하지않음 w: 재부팅이나종료하지않고 /var/log/wtmp 파일에종료기록만저장 d : wtmp 파일에기록을저장하지않음. -n 옵션은 -d 옵션을동반 f : 강제로 halt 나 reboot 수행. shutdown 을호출하지않음 i : 모든네트워크인터페이스종료 h : 종료전에하드디스크를준비모드로설정 p : 종료시전원을끔. 이는디폴트로세팅 순천향대학교컴퓨터학부이상정 18
실습 순천향대학교컴퓨터학부이상정 19 사용자로그인및디렉토리확인 윈도우시작메뉴 -> 실행선택 telnet xxx.sch.ac.kr 또는 telnet 209.69.xxx.xxx 사용자계정으로로그인 $ pwd /home/lee $ ls $ ls -al 합계 152 drwx------ 11 sjlee sjlee 4096 3월 8 17:25. drwxr-xr-x 5 root root 4096 3월 5 11:20.. -rw------- 1 sjlee sjlee 0 3월 8 15:17.ICEauthority -rw------- 1 sjlee sjlee 0 3월 8 15:17.Xauthority drwxr-x--- 2 sjlee sjlee 4096 3월 8 15:11.ami -rw------- 1 sjlee sjlee 708 3월 9 09:37.bash_history -rw-r--r-- 1 sjlee sjlee 24 2월 11 2003.bash_logout -rw-r--r-- 1 sjlee sjlee 201 3월 8 17:24.bash_profile -rw-r--r-- 1 sjlee sjlee 124 2월 11 2003.bashrc $ ls.. lee lost+found kim 순천향대학교컴퓨터학부이상정 20
시작스크립트보기 (1) $ echo $SHELL /bin/bash $ cat.bash_profile #.bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then. ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin:/usr/sbin export PATH unset USERNAME $ cat.bashrc #.bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then. /etc/bashrc fi 순천향대학교컴퓨터학부이상정 21 시작스크립트보기 (2) $ more /etc/bashrc # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile # by default, we want this to get set. # Even for non-interactive, non-login shells. if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then umask 002 else umask 022 fi 순천향대학교컴퓨터학부이상정 22
/etc/passwd 파일보기 $ more /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news: apache:x:48:48:apache:/var/www:/sbin/nologin squid:x:23:23::/var/spool/squid:/sbin/nologin webalizer:x:67:67:webalizer:/var/www/html/usage:/sbin/nologin xfs:x:43:43:x Font Server:/etc/X11/fs:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin mysql:x:27:27:mysql Server:/var/lib/mysql:/bin/bash postgres:x:26:26:postgresql Server:/var/lib/pgsql:/bin/bash lee:x:501:501::/home/lee:/bin/bash 순천향대학교컴퓨터학부이상정 23 사용자계정관리및종료 $ su => super user 모드로로그인 Password: ****** => 루트계정패스워드입력 # /usr/sbin/useradd kim # passwd kim # ls /home lee lost+found kim park # more /etc/passwd # /usr/sbin/userdel r park # ls /home lee lost+found kim # more /etc/passwd # shutdown -h now 순천향대학교컴퓨터학부이상정 24