LISTORY

[기초 리눅스] 사용자 계정 관리 본문

IT/리눅스

[기초 리눅스] 사용자 계정 관리

LiStoryTeller 2018. 10. 19. 12:43


이번에 회사에서 난생 처음으로 리눅스 서버를 구축하는 업무를 맡았다.


기존에도 리눅스는 사용한 적이 있지만, 이렇게 관리자로 전체적인 설정과 사용자 관리를 하는 것은 처음이라 


다시 책을 보며 기초부터 공부하기로 하였다ㅜㅜ


아래 내용을 책을 많이 참고한.... 리눅스 기초 내용 정리이다 .




사용자 계정 관리


리눅스는 한대의 시스템에서 여러 사용자가 사용할 수 있는 환경을 지원한다.


관리자가 아닌 다른 사용자가 시스템을 사용하려면 계정이라는 것이 있어야 하는데, 이 계정은 관리자가 생성 및 수정, 삭제 가능하다.



계정 생성


리눅스에서 계정을 생성하기 위해선 adduser, 또는 useradd 명령어를 사용한다.


# adduser [옵션] 계정명


명령어에는 여러 옵션을 사용할 수 있다.


옵션

기능 

-c 설명

암호 파일에 새로운 사용자에 대한 설명 추가 

 -d 디렉토리

사용자의 홈 경로 위치 지정 

-e 유효기간 

사용자의 계정 만기일 설정 

-f 비활성일수  

만기일까지 계정을 사용할 수 있는 일 수 설정 

-u uid 

사용자의 id 설정 

-s shell

사용자의 로그인쉘 설정 

-n 

사용자의 계정 추가 기본 모드를 지정하지 않을 때 

-G [그룹, ...] 

사용자를 다른 그룹에 추가 

-g 그룹 

사용자의 기본 그룹 설정 

-M 

사용자의 홈 경로를 생성하지 않음 


사용자 생성 시, 기본적으로 홈경로가 home 디렉토리에 생성되는데, 로그인을 필요로 하지 않는 사용자(메일 계정, 삼바 계정 등)에게는 굳이 홈 경로를 생성해 줄 필요가 없다.


UID/GID

사용자의 ID(UID), 그룹의 ID(GID)를 의미한다. 새로운 사용자 계정을 추가할 때, 사용자의 UID는 일반적으로 500부터 시작된다.


이렇게 adduser 명령으로 계정생성 명령을 내리면, /etc/default/useradd/와 /etc/login.defs 파일의 설정을 기준으로 사용자 계정이 만들어지게 된다.


계정을 생성했을 경우, 정보는 'etc/passwd', 'etc/group'에 추가된다.




계정 삭제


계정을 삭제하기 위해선 userdel 명령어를 사용한다.


# userdel [옵션] 사용자계정


만일, 아무 옵션도 주지 않고 계정을 삭제했다면, 계정은 삭제되지만 연관된 디렉토리는 지워지지 않는다.


계정과 계정 디렉토리를 전부 지우려면 다음의 명령어를 사용하면된다.


# userdel -r 사용자계정




계정 암호 지정 및 변경


계정의 추가 정보는 '/etc/passwd' 파일에 기록된다. 


계정의 비밀번호를 변경하는건 관리자가 할 수도 있고 사용자가 직접 할 수도 있다.


관리자가 변경할 경우에는 반드시 변경하고자 하는 계정 이름을 명시해야 한다. 그렇지 않으면 root의 비밀번호가 변경된다.


관리자가 변경


# passwd [계정 이름]


사용자가 변경


# su [계정 이름]

$ passwd




계정 사용자 정보 변경


사용자의 계정을 변경할 때엔 usermod 명령어를 사용한다.


# usermod [옵션] [계정 이름]


 옵션

기능 

-c 내용 

사용자 설명 필드의 내용 

-d 홈 디렉토리 

사용자의 홈 디렉토리 변경 

-e 만료일 

암호의 만기일 변경 

-G 그룹 

사용자의 그룹 변경 

-s 기본 쉘 

로그인 쉘 변경 

-u UID 

사용자의 UID 변경 

-l 사용자명 

사용자의 계정명 변경 




사용자 전환


한 사용자 계정에서 다른 계정으로 전환을 위해선 su 명령어를 사용한다.


# su [계정 이름]


이때, 그냥 root 계정으로 전환하고자 하면 뒤에 계정 이름을 붙이지 않아도 된다.


su는 로그인된 상태에서, 다른 계정을 권한을 얻는 명령어이다.


즉, 사용자 계정에서 root 계정을 권한을 얻어야 할 일 이 있다면


$ su


명령어를 쓴 뒤, 권한을 얻어 일을 수행하면 된다.


여기서 다시 원래의 사용자로 되돌아가려면 exit 명령어를 사용하면 된다.

 

⊙ 사용자에 따른 명령어 프롬프틑

루트 계정일 때와 사용자 계정일 때, 명령어 프롬프트 기호가 다르다.

루트 계정일 때 : '#'

사용자 계정일 때 : '$'


su 명령어로 루트 권한을 얻을 수 있지만, 환경 변수 설정은 바뀌지 않는다.


그래서 가끔 루트 권한을 얻어도 루트권한의 실행 파일을 실행할 경우 파일을 찾을 수 없는 경우가 존재한다.


이는 su 권한을 얻는다 해도 PATH 경로 변수 설정을 포함하고 있는 '.bashrc', '.bash_profile' 파일 등을 읽어들일 수 없기 때문이다.


그럼 필요한 경로를 export 해주어야 하는데, 필요한 경로를 일일이 export하기는 힘들다.


그래서 일반적인 리눅스 배포판에서는 '-' 옵션을 주어 경로 환경 변수가 적용되도록 한다.


$ su - 




Comments