SLOW but STEADY

리눅스 계정 관련 명령어(useradd, usermod, userdel, chmod, chown) 본문

2020 AWS기반 아키텍처 설계 전문가 양성 과정/리눅스

리눅스 계정 관련 명령어(useradd, usermod, userdel, chmod, chown)

ㅁ윤지ㅁ 2020. 3. 1. 16:22

useradd

계정 생성 명령어입니다.

-u옵션: UID를 직접 지정해 줄 수 있습니다.
-g옵션: GID를 직접 지정해 줄 수 있습니다.
-c옵션: 코멘트 부분을 지정해 줄 수 있습니다.
-d옵션: 홈 디렉터리 위치를 지정해 줄 수 있습니다.
-s옵션: 쉘을 지정해 줄 수 있습니다.(절대 경로로 적어줘야 합니다)

 

* 여러가지 옵션을 사용해서 다음 조건을 만족시키는 user2 계정을 만들어 봅시다.

조건)
UID는 1200
g1이라는 그룹에 속하기
코멘트는 testuser
홈 디렉터리의 위치는 /test밑에 만들기
쉘은 sh

답)
useradd -u 1200 -g g1 -c testuser -d /test/user2 -s /bin/sh user2

 

 

 


 

 

usermod

계정 수정 명령어

-l옵션: 사용자의 계정명을 변경하는 옵션입니다.
-L옵션: 계정을 lock상태로 바꿔서 비밀번호를 입력해도 그 계정으로 접속할 수 없게 해주는 옵션입니다. 예를 들어, 회사에서 장기간 출장을 가게 되었을 때 계정을 지우기는 너무 비효율적이니까 사용하는 옵션입니다.

 

L옵션을 한번 사용해 보겠습니다. 먼저, 실습에 필요한 user1계정을 생성해줍니다.

생성한 다음, passwd명령어를 이용해 암호도 설정해 줍니다. 암호를 설정한 다음, tail -1 /etc/shadow를 통해 확인하면 잘 생성된 것을 확인할 수 있습니다. L옵션을 사용해서 user1 계정을 lock 해보겠습니다.

lock 한 다음, tail -1 /etc/shadow파일을 확인해보면 user1의 암호 부분에 맨 앞에! 가 추가된 것을 확인할 수 있습니다.
user1 계정으로 접속을 시도해 보겠습니다.

올바른 암호를 입력해도 접속이 되지 않는 것을 확인할 수 있습니다.

 

-p옵션: 사용자의 패스워드를 변경하는 옵션입니다.
-u옵션: 사용자의 UID를 변경하는 옵션입니다.
-U옵션: lock 되었던 계정을 unlock 하는 옵션입니다.

 

U옵션을 사용해서 방금 lock 했던 user1 계정을 다시 unlock 해보겠습니다.

unlock해준 다음 user1 계정으로 접속을 하면 잘 됩니다.

 

-g옵션: 사용자의 GID를 변경하는 옵션입니다.
-G옵션: 사용자에게 추가 그룹을 지정할 수 있게 하는 옵션입니다.(a옵션과 함께 사용합니다.)

 

g1, g2이라는 그룹을 생성한 다음 tail -2 /etc/group을 통해 확인하면 아직 g1, g2그룹에 속해있는 계정이 없습니다. G옵션을 사용해서 user1은 g1그룹에 넣고 user2는 g2그룹에 속하게 만들었습니다. 그다음 tail -2 /etc/group을 통해 확인하면 g1그룹에 user1이 속해있고 g2그룹에 user2가 속해있는 것을 확인하실 수 있습니다.

 

-c옵션: 사용자에게 설명을 부여하는 옵션입니다.
-d옵션: 사용자의 홈 디렉터리의 위치를 변경하는 옵션입니다. 이 d옵션을 사용해서 홈 디렉터리의 위치를 옮겨준다고 선언한 뒤 tail명령어로 확인해보면 실제로 옮겨지진 않는 것을 확인하실 수 있습니다. 그래서 d옵션은 m옵션과 같이 사용해야 합니다. m옵션과 같이 사용하면 위치도 바뀌고 실제로 옮겨집니다.
-s옵션: 사용자의 쉘을 변경하는 옵션입니다.

 

**그룹은 왜 사용하는 것일까?
권한을 관리하기 위해서입니다. 여러 사용자의 권한을 효과적으로 관리하기 위해 그룹을 쓰는 것입니다.

 

 

 


 

 

userdel

계정 삭제 명령어입니다.

-r옵션: 아무 옵션을 사용하지 않으면 계정과 홈 디렉터리, 메일을 다 따로 삭제를 해주어야 하는데 r옵션을 사용하면 한 번에 다 없애줍니다.

 

 

 


 

 

허가권

허가권은 owner, group, other부분으로 이루어져 있습니다. 또, 각각의 부분은 read, write, execute부분으로 이루어져 있습니다.

 

빨간색 박스 부분이 owner부분이고 이 owner부분에는 r, w, x를 다 할 수 있습니다.
파란색 박스 부분이 group부분이고 이 group부분에서는 r, x를 할 수는 있지만 w에 대한 허가권이 없기 때문에 w작업은 하지 못합니다.
노란색 박스 부분이 other부분이고 이 execute부분에도 w에 대한 허가권이 없기 때문에 w작업은 하지 못합니다.

우리는 문자를 읽을 수 있지만 컴퓨터는 그렇게 못하기 때문에 컴퓨터가 이 허가권을 쉽게 이해할 수 있게 우리는 이 허가권 부분을 숫자로 치환할 수 있습니다. r을 4, w를 2, x를 1로 치환해서 각 박스 부분이 가질 수 있는 최댓값을 7이 됩니다. 
따라서, 지금 보고 계신 /home디렉터리의 허가권은 owner부분 7 group부분 5 other부분 5 해서 총 755의 허가권을 가지게 되는 것입니다.

 

read
디렉터리: read허가권이 있으면 ls 같은 명령어를 사용해서 리스트를 볼 수 있습니다.
파일: cat, tail, head 등의 명령어를 사용해서 파일의 내용을 볼 수 있습니다.

write
디렉터리: touch, mkdir, rm 같은 명령어를 사용할 수 있습니다.
파일: vi에디터를 사용해서 w(저장)을 할 수 있습니다.

execute
디렉터리: cd명령어를 통해 그 디렉터리 안에 들어갈 수 있습니다.
파일:./file(파일 이름)을 통해 파일을 실행시킬 수 있습니다.

 

 

 


 

 

소유권

UID, GID부분으로 이루어져 있습니다.
UID부분은 실질적인 소유자를 가리킵니다.
파일이나 디렉터리도 그룹을 가집니다.

 

빨간색 박스 부분이 소유권의 UID부분입니다.
파란색 박스 부분이 소유권의 GID부분입니다.

 

 


 

 

허가권과 소유권을 보고 작업할 수 있는지 확인하는 방법

 

1) 기준 잡기
현재 내가 로그인한 계정이 항상 기준이 됩니다.

2) 소유권 확인하기
내가 작업할 대상의 소유권을 확인합니다.

3) 허가권 확인하기
기준 잡은 계정과 작업대상의 UID가 일치하면 owner
기준 잡은 계정과 작업대상의 GID가 일치하면 group
기준 잡은 계정과 작업대상의 소유권이 일치하는 곳이 없으면 other가 되는 것입니다.
내가 owner인지 group인지 other인지 확인하고 허가권 부분을 확인합니다.

 

user1 계정으로 접속해서 /home디렉터리의 정보를 확인합니다. 소유권을 확인하니 root root입니다. 기준 잡은 계정(user1)과 UID, GID부분 모두 일치하지 않으므로 user1은 other이 되고 /home디렉터리의 other부분의 허가권을 확인하니 r-x라고 되어있습니다. 따라서 user1은 /home디렉터리를 read, execute만 할 수 있고 write는 하지 못하게 되는 것입니다.

 




 

 

chmod

허가권을 조정하는 명령어입니다.

 

현재 login.defs파일의 허가권은 644입니다.

 

chmod명령어를 사용해서 login.defs파일의 허가권을 655로 바꿔주었습니다.

 

숫자를 적어줘서 허가권을 바꿀 수도 있지만
g부분에 어떤 허가권을 더하고 뺄 건지, o부분에 어떤 허가권을 더하고 뺄건지 등 직접 적어줘도 됩니다.

 

 


 

 

chown

소유권을 조정하는 명령어입니다.

 

소유권을 바꾸는 여러 가지 방법

첫 번째 방법

 

두 번째 방법

 

세 번째 방법

 

네 번째 방법