정보보안공부

Linux_리눅스 사용자와 그룹 useradd / userdel 본문

Linux

Linux_리눅스 사용자와 그룹 useradd / userdel

Steady_sp 2018. 7. 6. 03:57

리눅스 사용자와 그룹 useradd / userdel

- 오라클 가상 머신 사용

- CentOS6

 

<useradd / userdel>

 

#1 사용자와 그룹

- /etc/passwd : 사용자에 대한 정보

- /etc/group : 그룹에 대한 정보

- /etc/shadow : 사용자에 대한 비밀번호 정보

- /etc/skel : 사용자 생성시 홈 디렉토리에 기본적으로 생성되는 파일이 있는 디렉토리

 

*** /etc/passwd 파일

 

 

-> 관리자의 UID : 0 ( root )

-> 일반유저 UID : 500부터 시작한다.

 

*** /etc/group 파일

 

 

-> 기본그룹 GID 옆에 설정이 안 되어있지만 그룹에 포함된 멤버에 목록이있다.

-> 그룹은 기본그룹과 보조그룹으로 되어있다.

 

*** /etc/shadow 파일

 

 

-> 암호화된 패스워드는 $id$salt$encrypted_password 형식으로 되어있다.

-> id : 일방향 해시 알고리즘의 id 로 1:MD5 , 2:BlowFish , 5:SHA-256 , 6:SHA-256 을 의미한다. 최근에는 SHA-256이상 해시 알고리즘 권장

-> salt : 패스워드 암호화 강도를 높이기 위한 값으로 사용자가 지정한 패스워드에 salt (난수값)을 추가하여 암호화된 패스워드(해시값)를 생성한다.

 

#2 사용자 생성시 지정되는 홈디렉토리 변경

- 원래 사용자 생성시 지정되는 홈디렉토리는 /home이지만 변경할 수 있다.

- 홈디렉토리가 꽉차거나 해당디렉토리를 변경하게되면 아래처럼 변경할 수 있다.

- 사용자 생성시 변경된 홈디렉토리안에 사용자가 생성된다.

 

 

-> 홈디렉토리 변경시 해당디렉토리를 만들고 진행해야한다.

-> user -D -b /home2로 변경하거나 vi /etc/default/useradd 편집기창을 이용해 수정할 수 있다.

-> useradd 사용자로 사용자 생성시 변경된 디렉토리안에 사용자가 생성된다.

 

#3 사용자생성

- 사용자 생성은 useradd 명령어를 이용해 생성한다.

 

*** 사용자 생성 useradd

 

 

-> 사용자를 생성후 만들어지는 3개의 파일을 살펴보자

-> /etc/shadow파일에 비밀번호 부분이 !! 로 설정되어있는데 이것은 사용자 생성후 비밀번호를 부여하지 않았을 때 !! 로 표시된다.

-> 비밀번호가 없어 로그인될거 같지만 패스워드가 잠긴상태이므로 모든 로그인이 불가능한 상태이다.

 

*** 사용자 비밀번호 생성/변경 passwd

 

 

#4 사용자생성 - 다른방법

-> 실제로 이렇게 만드는 사람은 없다. useradd명령어를 실행했을때 동작되는 과정이 이러한 과정이라는것만 알아두자

 

 

-> 사용자를 이렇게 만들일이 없지만 이렇게 만들면서 useradd를 했을때 이런파일들이 생성된다는 것만 알아두자

-> /etc/passwd 파일과 /etc/group 파일, /etc/shadow파일에는 echo 를 이용해 >> 리다이렉션으로 해당문서에 사용자 정보를 추가하였다.

-> /etc/shadow 파일에 입력한 비밀번호는 root의 비밀번호를 복사해서 사용했다.

 

 

-> 로그인 성공

 

#5 사용자삭제 userdel

 

 

-> userdel을 이용해서 삭제하면 /etc/passwd , /etc/group , /etc/shadow 파일에서는 사용자가 삭제되지만 메일파일과 홈디렉토리에는 사용자와 관련된 파일들이 남아있다.

 

*** userdel -r 사용자

 

 

-> /etc/passwd , /etc/group , /etc/shadow 파일과 메일 , 홈디렉토리를 깨끗히 지운다. 해당 사용자와 관련된 파일은 완전히 사라진다.

 

#6 그룹관리

- 웹서버 접근시 사용자들을 그룹으로 관리하면 apache는 other권한으로 접근가능하고 사용자끼리는 다른사용자의 내용을 확인하지 못한다.

 

*** 웹서버 설치

 

 

-> yum -y install httpd를 이용해 웹서버를 설치한다.

 

*** 웹서버 실행

 

 

-> 설치후 웹서버 시작과 실습을 하기위해 방화벽을 중지시킨다.

 

*** 웹 디렉토리 생성 / 사용자 생성 / 웹페이지 생성

 

 

-> 실습에 사용할 사용자 계정들을 만들기 전에 /etc/skel 디렉토리 안은 사용자 생성시 자동으로 만들어지므로 public_html디렉토리를 미리 만들어놓는다.

-> 리다이렉션을 이용해 웹서버에서 사용될 페이지인 index.html에 간단한 문구를 입력한다.

 

*** 웹서버 설정

 

 

-> /etc/httpd/conf/httpd.conf 파일을 이용해 UserDir disabled에 주석을 입력하고 UserDir public_html에는 주석을 제거한다.

-> 저장후 웹서버를 재시작해야한다. service httpd restart

 

*** 사용자 홈디렉토리 퍼미션 변경

 

 

-> 사용자가 웹서버 접근시에 other권한에 권한이 없으면 접근하지못해 해당페이지를 볼 수 없어 권한을 변경해야한다.

 

*** 웹서버 실행

 

-> url에 서버아이피/~사용자/index.html을 입력한다.

 

-> other권한이 --- 이라면 웹서버가 /~사용자/index.html 접근시에 other권한으로 접근하기 때문에 접근이 안된다.

 

*** 보안상 취약

 

 

-> 하지만 other 권한이 r-x라면 다른사용자의 웹페이지에 접근할 수 있는 보안상 단점이 있기 때문에 사용자들끼리 접근시에는 그룹을이용해 접근권한을 설정해야한다.

 

*** 그룹지정을 통해 보안문제 해결

 

 

-> /etc/passwd에 등록된 사용자별 GID(그룹아이디)를 기본 그룹인 users로 변경한다.

 

 

-> 해당 사용자의 홈디렉토리마다 사용자의 그룹을 users로 변경한다.

 

 

-> 다른사용자의 접근불가

 

==> 그룹을 지정해 해당그룹만 볼수 있게 할수 있다는 사실과 반대로 그룹에 속한 사용자들은 서로 접근하지 못하도록 할 수도 있다.

 

Comments