2009년 10월 15일 목요일

07 - 리눅스 로그인 과정, 수동 계정 생성, 허가권과 소유권

계정 로그인 과정
/sbin/mingetty 에 의해서 로그인 폼이 나타난다.
/etc/inittab 의
'1 : 2345 : respawn : /sbin/mingetty tty1' 중
respawn 에 의해서 프로세스가 실행되었다가 죽어도 다시 살아나게 한다(절대 죽일 수 없음).


login :     계정 입력(아무 값이나 넣어도 다음 과정으로 넘어감)
password :  패스워드 입력


 입력된 계정명은 /etc/passwd 에서 존재 여부 확인하고, 존재 한다면 입력된 암호를 MD5로 변경을 해서 /etc/shadow 와 비교한다.
 맞으면 /bin/bash (/etc/passwd 의 7번 필드(쉘)) 를 실행하고 틀리면 다시 로그인 폼을 띄운다.
(입력된 계정명이 없을때에도 로그인폼을 다시 띄운다.)


수동으로 계정 만들기
/etc/passwd 에 아래와 같은 정보를 입력하고 저장.
계정명 : X : UID : GID : comment : home_dir : shell
/etc/group 에 아래와 같은 정보를 입력하고 저장.
그룹명 : X : GID :
/etc/shadow 에 아래와 같은 정보를 입력하고 저장.
계정명 : $1$xxxxxxxx$~ : 최종암호변경일수(1970년1월1일기준) : 암호변경 최소일수 : 암호변경 유예기간 : 암호변경 경고일수 : 계정정지 사용여부 : 만기일사용여부 : 예약
* 여기서 $1$xxxxxxxx$~ 이것은
# perl -e 'print crypt("1234","\$1\솔트값\$"),"\n"' 해서 1234가 솔트값에 의해서 변경된 암호를 적어야함.
ex)
coderillla@localhost:~$ perl -e 'print crypt("1234","\$1\SaltValue\$"),"\n"'
$1CH2LCw5hraY => "1234" 라는 패스워드가 "SaltValue" 와 융화되어 만들어진 암호화된 값(?)
사용자 홈디렉터리의 뼈대 구성

# cp /etc/skel /home_dir
 이제 다른 터미널로 이동해서 만든계정명으로 로그인하면 로긴이 되는데 root로 사용자의 홈디렉터리를 만들었을 경우에는 만든 계정의 홈디렉터리 소유권을 변경해주어야 한다.

PS : ) 수동으로 계정 생성하는 것은 비추이다.  root 권한의 파일들을 수정하는 작업을 수행함으로써 자칫 잘못하다간 다른 계정의 정보를 날려 버릴 위험이 있다.

허가권 부여 및 제거

# chmod u(ser),+(추가)rwx,g(roup)-(삭제)rwx,o(rder)=(유지)rwx 파일경로
ex) # chmod u+rw-x,g+r-wx,o-rwx /etc/passwd
위 방식 보다 절대모드 권장한다.
rwx(421)rwx(421)rwx(421) = 777
rw-(420)r--(400)---(000) = 640
ex) # chmod 640 /etc/passwd
권한 테스트 디렉터리 / 파일
디렉터리
r - 디렉터리정보출력
w - 디렉터리내에서 파일을 쓰거나 삭제
x - 디렉터리진입

일반 파일
해당폴더의 권한이 rwx 일때
r - 파일을 출력한다. /삭제, 이동, 복사/
w - 출력한 파일을 입력(편집) 한다. /삭제, 이동/

실행 파일
해당디렉터리의 권한이 rwx 일때
r - 삭제, 이동, 복사
w - 삭제, 이동
x - 삭제, 이동, 실행

댓글 없음:

댓글 쓰기