Action disabled: source

리눅스 사용자 관리

시스템에 사용자가 많건 적건, 이것은 리눅스 하에서 사용자를 관리하는 형태를 이해하는 것은 중요하다. 심지어 당신이 유일한 사용자라 할지라도, 아마도 자신을 위한 몇 개의 계정을 가져야 할 것이며, 그 계정에서의 작업은 root보다 더 많이 사용할 것이다.

개념

사용자 관리에 필요한 몇가지 용어들을 먼저 알아보자.

username

username은 시스템의 모든 사용자에게 주어지는 단일 이름이다. 예를 들어, username은 soonshin, gildong2, jspark 등의 문자나 숫자도 사용될 수 있으며, "_", "."도 가능하다. Username은 보통 8글자로 제한되어 있다.

user ID

User ID 또는 UID는 시스템의 모든 사용자에게 주어지는 단일 번호이다. 시스템은 username이 아닌 UID 정보로써 사용자를 관리한다.

group ID

Group ID또는 GID는 사용자의 디폴트 그룹의 ID이다. 각 사용자는 시스템 관리자에 의해 하나나 그 이상의 그룹에 속할 수 있다.

password

시스템은 또한 사용자의 암호화된 패스워드를 저장하고 있다. 명령어 passwd는 사용자의 패스워드를 설정하거나 변경할 때 사용된다.

full name

사용자의 "real name" 또는 "full name"은 username과 함께 기록된다.

home directory

Home directory는 사용자가 login했을 때 처음으로 있게 되는 디렉토리이다. 모든 사용자는 반드시 그 자신의 home directory는 가지며, 보통 /home 하위에 위치하게 된다.

login shell

사용자의 login shell은 login시에 실행되는 shell이다. 예를 들면, /bin/bash와 /bin/tcsh가 있다.

/etc/passwd

사용자에 대한 정보는 /etc/passwd 파일에 담고 있으며, 그 형식은 아래와 같다.

  username:encrypted password:UID:GID:full name:home directory:login shell

예를 보이면,

  foo:Xv8Q981g71oKK:102:100:Laura Poole:/home/foo:/bin/bash
사용자명 : 패스워드 : 유저아이디 : 그룹아이디 : 사용자 정보 : 디렉토리명 : 사용하는 쉘

위에서 볼 수 있는 것처럼 첫번째 필드 foo는 username이며, 다음 필드의 "Xv8Q981g71oKK" 는 암호화된 패스워드이다. 패스워드는 시스템이 사용자가 읽을 수 있는 형식으로는 저장되어 있지 않다. 패스워드는 비밀 키를 사용하여 그 자신을 암호화한다. 달리 말하면, 패스워드를 알기 위해서는 암호화된 코드를 본래 입력한 것으로 변환해야 한다. 이 암호화된 형태는 효율적인 보안의 방법이다.

어떤 시스템은 패스워드 정보를 /etc/shadow 파일에 위임하는 shadow password 를 사용한다. /etc/passwd는 읽혀질 수 있고, /etc/shadow는 읽을 수 없기 때문에 보다 강한 보안을 제공한다.

3번째 필드 102 는 UID이다. 이것은 각각의 사용자에게 하나씩 있어야 한다. 4번째 필드 100은 GID이다. 이 사용자는 그룹 번호 100에 속해 있다. 그룹 정보는 /etc/group에 저장되어 있다.

다섯 번째 필드는 사용자의 full name Laura Poole이다. 마지막으로 두개의 필드는 사용자 홈 디렉토리(/home/foo)와 login shell(/bin/bash)이다. 디렉토리는 username 과 같이 따로 요구되는 것은 아니며, 단지 디렉토리를 알리는 데 도움이 될 뿐이다.

사용자 추가

 useradd -d /www/Hosting/test/ -G users
  • /www/Hosting/test/ 를 홈디렉토리로 하고 users 그룹에 속하는 test 라는 유저를 추가
  1. m /home/test 홈폴더 생성

암호 설정

  passwd test

사용자 삭제

 userdel test

기존 사용자를 기존 그룹에 추가

 adduser 사용자 그룹  

그룹의 사용자 제거

deluser 사용자 그룹

사용자 암호 보기

/etc/passwd에 저장되며 다음의 명령으로 볼 수 있다.

각 사용자의 암호와 소속 가 저장된 파일.

cat /etc/passwd

모둠 (group) 보기

/etc/group에 저장되며 다음의 명령으로 볼 수 있다.

cat /etc/group

group:password:GID:사용자목록(컴마로 구분) 의 형식이다.

그룹

그룹은 사용자들을 집단으로 묶는 것이며, 이렇게 함으로써 그 그룹에 속한 사용자들의 파일을 특정 그룹에 속하는 사용자 모두가 공유할 수 있게 해준다. 또한, 사용자는 복수의 그룹에 속할 수 있다. 일반적인 그룹 이외에 시스템에 정의되는 bin, mail, sys 같은 몇 개의 특수한 그룹이 있다. 이런 그룹 중에는 사용자가 어느 곳에도 속할 수 없으며, 그것들은 시스템 파일 사용 허가에 사용된다.

/etc/group는 그룹에 관한 정보가 담겨 있으며, 그 형식은 아래와 같다.

  group name:password:GID:other members

이 파일의 예를 보인다.

  root::0:
  users::100:mdw,larry
  guest::200:
  other::250:kiwi

첫 번째 그룹 root는 root 계정을 위해 예약된 특별한 시스템 그룹이다. 다음 그룹 users는 일반 사용자들을 위한 것이다. 현재 이것은 GID 100을 갖으며, 사용자 mdw와 larry 는 이 그룹을 액세스 할 수 있다. 어쨌든, 사용자는 /etc/group의 다른 그룹 라인에 username을 추가함으로써 하나 이상의 그룹을 가질 수 있다. 명령어 ‘groups’ 는 사용자가 액세스 할 수 있는 주어진 그룹의 목록을 열거한다.

3번째 그룹 guest는 손님 사용자를 위한 것이며, 다른 것은 “other” 그룹들이다. 사용자 kiwi는 이 그룹을 액세스 할 수 있다. 여기서, /etc/group의 “password” 필드는 아주 드물게 사용된다. 이것은 때때로 그룹 액세스를 설정할 때 사용하지만 좀처럼 쓰이지 않는다.

명령어 ‘addgroup’나 ‘groupadd’ 는 시스템에 그룹을 추가할 때 사용된다. 일반적으로, 이것은 /etc/group안에 추가시키면 되며, 다른 설정들이 필요치 않다. 그룹을 지우기 위해서는 /etc/group 파일의 내용에서 사용자를 삭제하면 된다.

역링크