#1. 사용자 및 그룹 관리

1. 리눅스 사용자의 종류

  • 리눅스는 다중 사용자용 운영체제이다.
  • 사용자 계정을 임의로 생성하고 삭제할 수 있다.

1) 슈퍼유저 (Super User)

  • 슈퍼유저는 고정된 아이디(root)를 갖기 때문에 root라는 아이디가 슈퍼유저라는 의미로 사용되기도 한다.
  • 운영체제의 모든 권한을 갖기 때문에 root로 직접 로그인은 권장되지 않는다.
    • 일반 사용자가 root의 권한을 빌려서 사용하는 것이 좋다.

 

2) 시스템 내부 사용자

  • 시스템내부 사용자는 운영체제의 각종 기능들을 관리할 목적으로 존재하기 때문에 관리자(사람)이 직접적으로 사용하지는 않는다.
  • 시스템 내부 사용자의 권한은 root 계정의 권한에도 포함되어 있다.
    • 즉, 시스템 내부 사용자가 할 수 있는 것은 root 계정에서도 할 수 있다.

 

3) 일반 사용자

  • 설치과정에서 구성된 아이디가 일반 사용자이다.
  • 리눅스 운영체제에 로그인하여 사용할 수 있는 사용자를 뜻한다.
  • 대부분의 경우 시스템 관리를 목적으로 하더라도 일반 사용자로 로그인한다.
    • su 명령어를 사용하여 일반 사용자가 일시적을 root로 로그인 할 수 있다.
    • 또는 sudo 라는 명령어를 사용하여 1회에 한해서 root 권한을 사용 할 수 있다.
  • 개발자가 구현한 프로그램을 구동하기 위한 용도로 사용된다.

 

2. 사용자 그룹 관리

1) 사용자 그룹이란?

  • 사용자를 효과적으로 관리하기 위해서 시스템 내의 사용자들을 그룹으로 묶어 일괄적으로 관리하기 위한 목적이다.
  • 사용자 그룹을 관리하기 위한 기능은 슈퍼유저만 사용 가능하다.
  • 사용자 그룹별로 권한을 부여하여 시스템 접근을 제한할 수 있다.

 

2) 설정 파일

  • 시용자 및 그룹 관리를 위한 설정 파일들
  • 리눅스를 운영하면서 이 파일들을 직접적으로 다루는 일은 드물다. (파일을 편집하는 명령어가 따로 있음)
사용자 및 그룹 정보를 저장하는 시스템 파일
/etc/passed 파일 사용자 계정 정보 파일
/etc/shadow 파일 사용자 암호 파일
/etc/group 파일 사용자 그룹이 저장되어 있는 파일

※ 시스템 파일이므로 함부로 수정하게 되면 로그인 할 수 없는 경우가 발생 할 수 있다.

 

3) /etc/passwd 파일  

  • 사용자의 계정 정보 파일
  • 이 파일은 root 권한으로만 접근 가능하다.
    • 명령어 앞에 sudo를 붙여서 접근할 수 있고, root 비밀번호가 설정되어 있으면 su 명령어 만으로 접근할 수 있다.
  • 이 파일에 명시된 하나의 행이 한 명의 사용자를 의미한다.

sudo 명령어를 통해 접근

※ 사용자 정보에 따른 각 항목의 의미

chanco:x:1000:1000:chanCo:/home/chanco:/usr/bin/zsh
아이디:비밀번호:사용자번호:그룹번호:설명문:홈디렉토리:쉘
내용 설명
chanco 사용자 id로 로그인시 사용하는 사용자 이름
x 암호는 /etc/shadow 파일에 저장됨
1000 사용자 번호
1000 사용자 그룹번호
/home/chanco 홈 디렉토리
/usr/bin/zsh 사용 쉘(shell)
  • 위 내용은 사용자 환경 설정에 따라 다름
  • 비밀번호는 shadow 파일에 의해 별도로 관리 됨으로 항상 x로 표시된다.

 

4) /etc/shadow 파일  

  • 각 사용자별 로그인 비밀번호가 별도로 저장되어 있는 파일
  • 암호는 별도의 함호화 알고리즘에 의해 알아보지 못하도록 저장되어 있다.

sudo 명령어를 통해 접근
사용자 암호

 

5) /etc/group 파일

  • 사용자 그룹 정보가 저장되어 있는 파일

sudo 명령어를 통해 접근
그룹이름:비밀번호:그룹번호:

 

3. 사용자 정보 보기 명령어

1) 명령어

명령어 설명
whoami 로그인한 사용자  id 확인
who am i 로그인 정보
id 로그인한 사용자의 id 정보
groups 로그인한 사용자 그룹 확인
pwd 현재 디렉토리 확인

 

2) 사용 예시

 

4. 사용자 계정 관리 명령어

1) 사용자 그룹 추가하기

  • root 계정 외에서 사용하려면 sudo 명령어를 사용해야 한다.
groupadd [-g 그룹번호] 그룹명
# 그룹번호를 지정하지 않을 경우 자동으로 부여된다.
groupadd example

또는

groupadd -g 2001 example

root 계정 외 에서 사용 사용자 그룹을 생성하면 다시 시도하라는 메세지가 나온다.

그럴때는 앞에 sudo 명령어를 붙여서 사용하면된다.

example 그룹이 생성된 것을 볼 수 있다.

 

2) 사용자 그룹 삭제하기

groupdel 그룹명

마찬가지로 root 계정 외에서 사용할 경우 sudo를 붙여준다.

 

3) 사용자 그룹 생성/삭제 결과 확인

  • vi 에디터로 group 파일을 열어 전체 내용을 확인할 수 있지만, grep 명령어로 group 파일의 일부에서 원하는 내용이 존재하는지 검색하는 방법도 사용할 수 있다.
 grep 검색어 검색할파일경로

 

4) 사용자 계정 생성하기

- 사용자 계정 생성

  • 기본 설정 상태로 사용자 계정을 만드는 명령어
  • 이 또한 root 계정이 아니라면 sudo 명령어를 사용해야 한다.
 useradd [-g 그룹명] 사용자명

 

- 생성된 사용자의 비밀번호 설정

 passwd 사용자명

 

useradd로 계정 생성, passwd로 비밀번호 설정

 

- 사용자를 그룹에 연결하기

  • useradd 명령을 사용하면서 -g 옵션을 명시하지 않았다면 아래 명령을 통해서 그룹에 연결 할 수 있다.
 groupmod -g 그룹명 사용자명

 

- 사용자 계정 삭제

userdel 사용자아이디
  • passwd 파일과 shadow 파일의 내용은 삭제되지만, 홈 디렉토리는 삭제되지 않는다.
  • 그래서 아래 명령어로 홈 디렉토리를 삭제해줘야 한다.
rm -rf /home/사용자계정명

 

※ 주의!

rm -rf 명령어는 상당히 위험한 명령어이다. 묻지도 따지지도 않고 바로 즉시 삭제해버리기 때문에 사용시 주의가 필요하다. 안전하게 삭제하려면 rm -r을 사용하면 된다. 이 명령어는 하나하나 물어보고 삭제한다.

"rm -rf / " 는 최상의 디렉토리 밑의 모든 내용을 즉시 삭제한다.. 즉, 윈도우로 예를 들자면 C드라이브 전체를 삭제한것과 같은 말이다.

 

5. 사용자 계정 전환을 위한 su 명령어

1) su 명령어란?

  • 로그아웃 하지 않고, 사용자 계정을 전환하는 명령어이다.
    • 일반 사용자가 슈퍼유저로 전환하여 작업하는 경우
    • 슈퍼유저가 일반 사용자로 전환하여 작업하는 경우

 

2) root 계정에 접속(비민번호 설정)

passwd 명령어를 사용해서 비민번호를 설정할 수 있다.
su 명령어 입력 후 설정한 비밀번호를 입력하면 root 계정에 접속할 수 있다

  • root 계정에 접속하면 시스템의 모든 권한을 사용할 수 있다.
  • 하지만 그만큼 잘 못 건드렸다가는 문제가 생긴다.
    • su 명령어를 사용해서 root 계정에서 명령어 사용하는 것과 sudo를 사용해서 명령어를 사용하는 것은 동일 하기 때문에 1회성으로 사용 가능한 sudo가 더 안전하다고 볼 수 있다.

 

3) 사용자 전환 명령어

명령어 설명
su 현재 작업중인 디렉토리에 그대로 머무른 상태에서 root 계정으로 전환
su - root 계정으로 전환한다. root의 홈 디렉토리 위치에서 새로 시작. (/root)
su 사용자계정명 현재 작업중인 디렉토리에 그대로 머무른 상태에서 지정된 사용자 계정으로 전환
su - 사용자계정명 지정된 사용자의 홈 디렉토리 위치에서 새롭게 시작하는 상태로 사용자 전환

 

6. 파일 접근 권한 관리

1) 접근권한 (숫자사용)

  • r = 4
  • w = 2
  • x = 1
  • 권한이 있는곳: 1 / 권한이 없는 곳: 0
권한 r  w  - r  -  x r  -  -
2진수 1  1  0 1  0  1 1  0  0
10진수 6 5 4

 

2) 파일 접근 권한 변경

chmod 접근권한숫자 사용자명
# ex)
chmod 654 test

 

3) 파일 소유자 변경

  • chown: 소유자 변경 명령
  • chgrp: 소유그룹 변경 명령

+ Recent posts