명령어 구문은 끝 ~ 이나고
사용자계정/그룹 관리에 대해서 포스팅 하겠습니다.
계정 생성 명령어 관련 파일
root와 일반사용자에 관해 설명드린적이 있습니다.
일반사용자를 추가,삭제,관리 등의 명령어에 앞서 그와 관련된 파일에 관해 설명드리겠습니다.
Windows 에서 사용자 계정을 추가,삭제,관리하는 사용자 계정 탭은 제어판에 있습니다.
Linux도 마찬가지입니다. 제어판 , /etc 폴더에 들어 있습니다.
/etc/passwd
passwd 라고 해서 암호가 아니라 사용자 계정 정보의 저장소 입니다.
passwd는 파일이기 때문에 cat /etc/passwd 라고 입력하여 내용을 출력해 보겠습니다.
뭐가 주저리 주저리 많은데 짤라서 캡쳐 했습니다.
일단 root 계정 정보 입니다.
root : x : 0 : 0 : root : /root : /bin/bash
만약 사용자를 추가한다면 그 사용자 정보는 /etc/passwd를 입력하였을 때 젤 아래줄에 있게 됩니다.
제가 abc 라는 사용자를 하나 추가하였으므로 밑에 abc 라는 계정 정보가 저장되어 있는것이 보이시죠?
user : x : 500 : 500 : : /home/user : /bin/bash
user : 사용자 계정명을 나타냅니다. 첫번째 사진에서 저는 root 의 ID를 root 로 만들었기 때문에 root 로 표시됩니다.
abc라는 사용자 계정이 나타나 있는것도 보이시죠?
x : 패스워드를 나타냅니다. 아까도 말씀 드렸지만 /etc/passwd 는 사용자 계정정보를 보는곳이지, 암호를 보는곳이 아닙니다.
그래서 x 로 표시 되어 있습니다.
500 : 500 : 앞쪽의 500은 UID 이고 ,뒷쪽의 500은 GID 입니다.
Uid = User Id / Gid = Group id
리눅스 커널은 사용자의 계정명을 보고 사용자를 구분하지 않습니다.
바로 이 Uid와 Gid를 보고 구분합니다. 실제 id가 바로 이것이라고 생각하면 됩니다. user(계정 이름) 는 껍데기라고 생각하셔요.
루트는 왜 0:0 인가?
root 는 0부터 시작합니다. 일반 사용자의 uid와 gid가 500번 부터 시작합니다.
일반사용자의 UID/GID는 순차적으로 입력됩니다.
처음 추가된 사용자는 500 이겠고 2번째 사용자는 501 이 되겠네요.
/home/user : user의 홈디렉토리가 저장된 위치 경로 입니다.
/bin/bash : 사용자 시스템 로그인 시 shell 의 위치 입니다. 그냥 사용자의 명령어 파일 위치 경로 라고 생각하시면 될 듯 합니다.
/etc/shadow
이것이 진정 암호를 알수 있는 파일입니다.
암호화된 사용자의 정보가 저장되어 있는 파일 입니다.
제가 방금 추가한 user1에 대한 암호화된 정보 입니다.
user : !! : 15592 : 0 : 99999 : 7 : : :
user : 계정명입니다. 우리는 user1
!! : 이부분은 암호화된 암호가 들어가는 자리 입니다.
!! 라고 표시되어있는 것은 패스워드가 없는 계정이라는 뜻입니다.
그외에 저렇게 복잡한 문자가 들어가 있으면 패스워드가 있다는 뜻이구요.
저것을 md5 암호문이라고 합니다. 우리가 입력한 암호.. 저는 user1 에 대한 패스워드를 123으로 주었습니다.
그 123 이라는 패스워드를 저렇게 md5 암호문으로 암호화 하여 나타낸 것입니다.
저것을 해독하면 123 이 나오겠네요.. ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
일종의 보안입니다 이것도.
md5 암호문은 암호화는 되는데 복호화는 안되는 암호문 입니다.
암호화란 123 이란 패스워드를 저렇게 복잡한 암호문으로 암호화!
복호화란 저렇게 복잡한 암호문을 123 이라는 패스워드로 복구!
하지만 md5 암호문은 복호화가 되지 않습니다.
이정도만 알고 계시면 됩니다. 더 궁금하신 분은 검색 ㄱㄱ
그리고 위에서 언급 한 얘기 중,
!! 라고 표시되어있는 것은 패스워드가 없는 계정이라는 뜻입니다. 라고 하였습니다.
리눅스에서 패스워드가 없으면 그 계정으로 로그인을 할 수 없습니다.
사용자를 생성하면 비밀번호 없이 사용자만 생성하게 됩니다.
그리고 비밀번호를 입력하게 하는 명령어를 통해 사용자에게 패스워드를 부여하게 됩니다.
(패스워드 부여 명령문은 뒤에 언급)
즉, 사용자를 생성하고 패스워드를 부여하지 않으면 암호문 부분이 !! 로 표시되며,
그 계정으로는 로그인을 할 수 없습니다.
15592 : 이거는 1970년 1월 1일 이후로 지나간 날짜 의 수 입니다... 왜 1970년 1월 1일 인지는 저도 잘 모르겠네요. 중요하진 않아요.
0 : 암호 변경 가능 최소 시간 입니다.
99999 : 암호 변경없이 사용 유효 기간 입니다.
7 : 만료 지정시 만료 경고 일수
뒤에 4개는 중요하지 않으니 그냥 암호문의 개념만 기억 하시면 됩니다.
/etc/group
그룹에 관한 정보 파일 입니다.
그림은 첨부하지 않겠습니다.
mkdir 로 폴더를 생성 하신뒤, cat /etc/group 을 통해 확인 해 보세요.
group : x : 500 : NULL
group : group 명을 나타내며 , 우리의 그룹명은 group
x : 그룹 패스워드 입니다.
500 : GID !!!
NULL : 그룹 구성원 사용자 이름
사용자 계정 관련 명령어
이제 사용자 추가,관리,삭제 / 그룹 추가,삭제 명령어에 대하여 알아 보겠습니다.
useradd : useradd [옵션] [인자값] ... [계정명]
계정 생성 명령어 입니다.
옵션으로는
- -u : 사용자 UID 변경
- -g : 사용자 기본 그룹 지정
- -d : 사용자의 기본 홈 디렉토리 변경
이 있으나 .. 잘 쓰지 않아요.
계정을 추가하고 싶을시에는 그냥 useradd 계정명 만 하셔서 계정 추가만 하시면 됩니다. 뭐 복잡한 옵션이 다있네요.
생성하면 어쩌피 usermod 로 전부 수정 가능합니다.
usermod : usermod [옵션] [인자값] ... [계정명]
계정 수정 명령어 입니다.
옵션을 보시면
- -u : 사용자 UID 변경
- -g : 사용자 기본 그룹 지정
- -d : 사용자의 기본 홈 디렉토리 변경
- -l : 계정명 변경
useradd 랑 별 다를거 없네요. ㅎㅎ
-u 를 사용하여 UID 를 변경하고 싶다면 [인자값] 부분에 UID 값을 입력 하시면 됩니다.
-g 를 이용하면 계정의 그룹 이동을 할 수 있습니다.
:
user1은 이미 만들어 두었고, user2를 생성 한뒤,
usermod -g user1 user2
라고 입력 하시면,
user2 의 GUI 가 user1 의 GUI와 같아 졌습니다.
즉 user2 의 계정정보는 user1 의 그룹으로 이동하게 된 것 이고,
user2 의 그룹은 빈 그룹이 됩니다.
userdel : userdel [옵션] [계정]
이번엔 계정 삭제 명령어 입니다.
옵션은 두개만 아시면 되요.
- -f : 강제 삭제
- -r : 계정 생성시 모든 정보 삭제
그냥 userdel user1 이라고 입력 하시면 계정은 삭제가 되지만,
홈디렉토리에 user1 디렉토리는 그대로 남아 있게 됩니다.
그래서 -r 옵션을 사용합니다. 홈디렉토리 까지, 모든 정보를 삭제 하는데 쓰입니다.
passwd : passwd [옵션] [계정]
옵션은 거의 쓸 일 없습니다.
아까 /etc/shadow 구문 에서 잠깐 설명을 드렸었는데..
계정을 추가하고 그 계정에 비밀번호를 부여해주는 명령어 입니다.
비밀번호를 부여해 주지 않으면 그 계정으로는 로그인을 할 수 없습니다.
- -d : 패스워드 NULL 지정(암호삭제)
NULL 이라는 뜻은 아무것도 없다는 뜻이지요.
passwd -d user1
입력 하시게 되면 로그인 할때
localhost login : user1
입력하시면 패스워드 입력창 없이 바로 로그인이 됩니다.
암호 삭제 !!
패스워드를 삭제하게 되면
/etc/shadow 입니다. 원래는 암호문이 있어야 할 자리에 !! 도 없고 그냥 비어있지요?
groupadd / groupdel
: groupadd [옵션] 그룹명
groupdel 그룹명
그룹 추가,삭제 명령어 입니다.
빈그룹을 추가 해줍니다.
-f : 그룹 강제 생성
-g : 그룹 생성 시 GID 지정
groups 계정명
: 계정이 어느 그룹에 속해 있는지 알려줍니다.
groups user1
하시면 그룹을 옮긴적이 없는 한
user1 : user1
이 출력되겠네요 ^^
여기 까지 입니다.