리눅스서버

[기본] 리눅스의 사용자 계정 관리하기

리눅스란 운영체제는 본디 혼자 단독으로 사용하도록 개발된 게 아니라 여러 사용자가 같이 사용할 수 있도록 개발되어졌답니다.

그러면 하나의 리눅스 운영체제를 A사용자, B사용자,C사용자 등..의 여러사용자들이 같이 쓸 수 있습니다.

이때 각 사용자는 본인만의 개인계정을 갖고, 컴퓨터의 자원을 사용할 수 있는 거지요.. (계정이란 쉽게말하면 "얼굴"같은 그런 거죠.. 본인 얼굴을 갖고..)

 

하지만 사용자들이 시스템을 함부로 좌지우지하면 손상될 수도 있고, 기밀문서(?)같은 거를 함부로 볼 수도 있습니다.

그래서 "root"계정이란 것이 존재합니다.

root계정은 시스템에서 최고권력(?)을 가지고 있습니다. 한마디로 사용자와 시스템을 총 관리하는 최고관리자입니다.

또 root계정은 시스템에서 단 한개만 있습니다. 나머지는 다 일반사용자계정이고, 접근과 행동에 제한이 있습니다.

- 여기서 root계정은 시스템을 함부로 좌지우지할 수 있는 힘을 갖고 있어, root 계정의 패스워드가 유출되지않도록 각별히 신경써주세요.

 

이제부터 리눅스에서 얼굴 같은 "사용자 계정"을 어떻게 추가하고, 삭제,관리하는 알아봅시다.

 

1) /etc/passwd 파일은 사용자계정!

제일먼저 /etc/passwd파일에 대해 아셔야 합니다.

먼저 /etc/passwd파일의 내용물을 한번 봅시다. (vi편집기를 이용해 보면 되겠지요..  vi /etc/passwd)

 

 1.png

 

알 수 없는 문구가 많이 담겨있는 데요.. 찬찬히 봅시다.

/etc/passwd파일은 사용자계정이 저장되는 파일입니다.. 즉 이 파일에서 계정추가,삭제,관리를 다 할 수 있다는 소리입니다.

먼저 각 한줄이 한계정입니다. 맨 위에 보시면 root: ~ 머 이런식으로 적혀있지요.. 예..맞습니다.. 맨 윗줄은 root계정의 정보이지요..

잘 한번 살펴보면 별별 계정이 다 있습니다.. (bim,sync,mail,halt 등..) 사실 이 계정들의 실제 사용자는 프로그램입니다.

프로그램도 리눅스에서 행동하려면 계정을 만들어야 됩니다. 권한문제때문에.. 프로그램 설치시 자동으로 계정이 추가 됩니다.

 

이제 계정정보를 자세히 봅시다. (root계정을 한번 볼까요..)

root:x:0:0:root:/root:/bin/bash

계정ID : 계정의 패스워드 : UID : GID : 사용자 설명 : 사용자 홈디렉토리 :

이런식으로 ":"로 구분하고 있지요..

  1. 계정ID : 이 계정 ID를 이용해 계정에 접속할 수 있지요.. 계정의 이름입니다.
  2. 계정의 패스워드 : 원래는 여기에 패스워드가 기록되어있는 데 보안상 문제로 인해 현재는 패스워드 존재여부만 나타냅니다. (x는 있음)
  3. UID : 시스템상에서 사용되는 사용자계정의 고유 식별번호입니다. 겹치면 심각한 오류가 납니다.100번까지는 시스템이 사용합니다..
  4. GID : 시스템상에서 사용되는 사용자그룹의 고유 식별번호입니다.  499번까지는 시스템이 사용합니다.. 그룹에 대해 나중에 설명하겠습니다.
  5. 사용자 설명 : 해당 계정에 대해 설명을 적습니다. 없다면 비워두셔도 됩니다.
  6. 사용자 홈디렉토리 : 사용자의 개인폴더입니다. 계정에 로그인시 이 경로로 이동됩니다. 기본은 "/home/계정ID"로 지정됩니다.
  7.  : 사용자 로그인시 사용되는 쉘입니다. 기본으로 /bin/bash (Bourne Again Shell) 이 지정됩니다.

 

2) /etc/shadow 파일의 비밀

/etc/passwd파일에는 패스워드가 저장되있지않은 데 패스워드는 도데체 어디에 저장하고 있을까라는 의문이 듭니다.

특이하게도 패스워드는 /etc/shadow파일에 암호화되어 저장되어있습니다.

먼저  /etc/shadow파일의 내용물을 확인해보겠습니다.

 

2.png

 

이런 내용물이 담겨있습니다. (패스워드가 암호화된 부분을 일부 가렸습니다.)

이것도 역시 한줄이 한 계정입니다.

자세히 살펴보도록 하죠... (root 계정을 살펴보겠습니다.)

root:$6$dPW2Rd$pV1iW7FMPBND0:15919:0:99999:7:::
계정ID : 암호화된 패스워드 : 암호생성일자 : 암호변경가능 최소시간 : 유효기간 : 경고 일수 :::

이것도 역시 ":"로 구분하고 있습니다..

 

  1. 계정ID : 계정이름(ID)입니다.
  2. 암호화된 패스워드 : "$암호화방식$키값$키값으로 암호화"형식입니다.
  3. 암호생성일자 : 1970년 1월 1일 이후로 지난간 날짜의 수로된 생성일자입니다.
  4. 암호변경가능 최소시간 : 암호변경가능 최소시간입니다.
  5. 유효기간 : 암호변경없이 사용가능한 유효기간입니다.
  6. 경고 일수 : 계정만료 지정시 만료 경고 일수입니다.

 

 3) 계정관리 명령어

이번에는 명령어를 이용해 사용자계정을 추가,삭제,관리해보겠습니다.

  • useradd [옵션] [계정ID]

사용자계정을 추가합니다.

 

[옵션]

-u [UID] : 입력한 UID로 계정을 추가합니다.

-g [GID] : 입력한 GID로 계정을 추가합니다.

-d [경로] : 입력한 경로로 홈디렉토리를 지정후 계정을 추가합니다.

 

[계정ID]

추가할 계정ID를 입력합니다.

  • passwd [옵션] [계정ID]

사용자계정 패스워드를 부여하거나 변경합니다.

useradd명령은 단순히 계정을 추가하는 역활밖에 하지못합니다.

이때 추가된 계정에는 패스워드가 걸려있지않아 passwd명령으로 패스워드를 부여해줘야합니다.

 

[옵션]

-d : 계정에 부여된 패스워드를 삭제합니다.

-l : 패스워드를 잠급니다. (잠그면 사용자가 계정에 접속하지못합니다.)

-u : 패스워드 잠금을 해제합니다.

-S : 현재 패스워드 상태를 출력합니다.

 

[계정ID]

패스워드를 부여하고 싶은 계정ID를 입력합니다.

  • usermod [옵션] [계정ID]

사용자계정의 요소를 수정합니다.

 

[옵션]

-u [UID] : 입력한 UID로 계정을 변경합니다.

-g [GID] : 입력한 GID로 계정을 변경합니다.

-d [경로] : 입력한 경로로 계정의 홈디렉토리를 변경합니다.

-l [변경할 계정ID] : 계정ID를 변경합니다.

 

[계정ID]

수정할 계정ID를 입력합니다.

  • userdel [옵션] [계정ID]

사용자계정을 삭제합니다.

 

[옵션]

-f : 해당계정을 강제로 삭제합니다.

-r : 계정 홈디렉토리와 계정과 관련된 모든정보를 삭제합니다.

-h : 도움말

 

[계정ID]

삭제할 계정ID를 입력합니다.

 

※ 실습

conory라는 계정을 추가후 계정관리해봅시다.

 

3.png

 

Atachment
첨부 3
?