리눅스(Linux)/일반 운영 관리

사용자 관리

백코딩 2024. 1. 9. 13:40
728x90

열심히 블로그를 작성하고 있습니다. 제 글에 오타가 있다면, 댓글로 알려주시면 정말 감사하겠습니다. 여러분에게 유용한 정보를 제공하기 위해 항상 최선을 다하겠습니다. 여러분의 소중한 피드백을 기다리겠습니다! ^^

 

사용자(User)의 분류

리눅스의 사용자는 크게 root 사용자와 일반 사용자로 구분하고, 일반 사용자는 로그인이 가능한 사용자와 로그인은 되지 않고 시스템의 필요에 의해 생성된 시스템 계정으로 나눈다.

 

보통 root라는 계정 자체를 슈퍼 유저라 인식하는데, 리눅스 시스템 내부에서는 사용자를 흔히 말하는 ID(Identity)로 관맇는 것이 아니라 숫자값 형태의 UID(User Identity)로 관리한다. 사용자의 UID는 0부터 정수값으로 배분되는데, root는 0이 할당되고 0번 사용자를 슈퍼유저로 인식한다. 시스템 계정을 포함하여 일반 사용자는 1번부터 부여되는데, 배포판에 따라 차이가 있다. CentOS 7 버전은 사용자 생성 시에 부여되는 UID의 시작 번호를 1000번부터 할당한다. 

 

시스템 계정

리눅스 사용자 계정의 정보는 /etc/passwd 파일에 기록되는데, 이 파일에 등록된 계정을 보면 root 이외에 bin, daemon, adm, game 등 관리자가 생성하지 않는 계정들이 존재한다. 이러한 계정을 시스템 계정이라 하는데, 말 그대로 시스템의 필요에 의해 생성된 계정이다. 리눅스는 유닉스의 영향을 받아 파일 생성할 때나 프로세스 생성 시에 반드시 소유자를 명시하도록 되어 있고, 해당 소유자의 권한을 승계하는 형태로 운영된다.

 

 

리눅스 운영체제에서 사용자 보안은 관리자 게정인 root를 잘 관리하느냐에 따라 크게 좌우된다. 

1. root 계정 이외에 다른 슈퍼유저가 존재하는 지 점검한다. 즉, root 이외에 다른 사용자의 UID가 0인지를 점검한다.

2. PAM(Pluggable Authentication Modules)를 이용하여 root 계정으로 직접 로그인하는 것을 막는다. 특히 텔넷, ssh와 같은 원격 서비스를 통한 접근은 확실히 통제하도록 한다.

3. 관리자라고 하더라도 일반 계정으로 로그인하도록 하며, root 권한이 필요한 경우에 su 명령의 사용을 유도한다.

4. 환경 변수인 TMOUT를 설정하여 무의미하게 장시간 로그인하는 것을 막는다.

5. 일반 사용자에게 특정 명령어 권한만 할당해줄 경우에는 su보다는 sudo를 이용하도록 한다.

 

 

사용자 계정 생성 : useradd

계정이란 시스템에 ID(Identity)와 암호(Password)를 생성하여 사용권을 부여하는 것을 말한다. 이 때 사용자의 ID를 생성하는 명령이 useradd이다. root 권한자가 root 이외의 사용자를 생성할 때 사용하는 명령어로 adduser라고 입력해도 된다.

 

 

# useradd red 

-> red이라는 계정을 생성한다.

 

# useradd blue -d /home/color/blue -g color

-> blue이라는 사용자를 생성하면서 홈 디렉터리의 경로 및 그룹을 지정한다. 

 

위의 명령실행 전에 아래와 같은 명령을 수행해서 미리 디렉터리와 그룹을 생성해야 한다.

# mkdir /home/color

# groupadd color

 

사용자 암호 부여 : passwd

등록된 사용자의 암호를 지정하거나 변경하는 명령어이다. 리눅스에서는 useradd로 계정을 생성한 후에 암호를 지정하지 않으면 로그인이 되지 않으므로 반드시 지정해야 한다. passwd만 입력하면 현재 로그인 사용자의 암호가 변경되고, root만 다른 사용자의 암호를 변경할 수 있다.

 

$ passwd [사용자명]

-> # passwd red

-> red 라는 사용자의 암호를 변경한다.

 

 

[red@localhost ~ ]$ passwd

-> 현재 로그인한 red 사용자 본인의 암호를 변경한다.

 

 

사용자 전환 : su

su(substitute user)는 대리 유저라는 뜻의 약어로 시스템에 로그인되어 있는 상태에서 다른 사용자의 권한으로 셸(shell)을 실행할 수 있도록 전환하는 명령이다. 대부분의 리눅스 배포판에서는 텔넷과 같이 원격에서 접속할 때 직접 root 계정으로 로그인이 불가능하도록 설정되어 있다. 따라서 관리자라고 하더라고 일반 사용자로 로그인한 뒤에 root로 전환해야 하는데, 이 때 필요한 명령이 su이다.

 

$ su [option] [사용자명]

-> 사용자명을 입력하지 않으면 root로 사용자 전환을 한다.

 

옵션 

-, -ㅣ su 명령을 옵션 없이 실행하며 로그인한 사용자의 환경 변수 값을 가지고 다른 사람의 권한만 갖는다. 전환하려는 사용자가 실제 로그인한 것처럼 셸을 이용하려면 반드시 이 옵셥을 지정해야 한다. (--login)
-c 사용자를 전환하지 않고 다른 사용자의 권한으로 명령을 일시적으로 수행할 때 사용한다.(--command)

 

 

 

 

 

728x90