강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

시스템사용자 계정정보 수정하는 usermod 실무

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

시스템사용자 계정정보 수정하는 usermod 실무

 

 

 

 

 이번 강좌에서는 사용자 계정정보를 변경하는 방법에 대해서 배울 것이다.

 

 

 

 사용자의 계정정보를 변경하는 방법은 vi 또는 필요한 명령어들을 이용하여 /etc/passwd, /etc/shadow, /etc/group등의 파일을 변경하면 된다.

 

 

 

 하지만 사용자의 계정정보를 직접 변경하기 위한 별도의 명령어가 있으니 그것이 바로 usermod라는 것이다.

 

 

 

 , usermod는 사용자 계정정보를 수정할 수 있는 명령어이다.

 

 

 

  ,  기존에 생성되어 있는 계정사용자의 다음과 같은 계정정보들을 수정 할 수 있다.

 

 

 

  아래 usermod로 변경할 수 있는 정보들을 확인하기 바란다.

 

 

 

 

 

   . 홈디렉토리정보

   . 계정종료일자정보

   . 기본그룹정보

   . 추가그룹정보

   . 사용자 계정ID정보변경

   . 사용자 패스워드

   . 사용자 기본사용쉘변경

   . 사용자 UID정보변경

   . 코멘트정보

 

 

 

, usermod를 사용하면 사용자계정의 ID뿐 아니라 /etc/passwd내에 있는 거의 모든 정보를 변경할 수 있다.

 

 

 

 , 특정 계정사용자의 계정정보변경을 위해 유용하게 사용할 수 있는 명령어이다.

 

 

 

  , 그럼 이제부터 usermod명령어를 이용하여 특정 계정사용자의 계정정보를 변경하는 예를 보도록 하겠다.

 

 

 

 

 

먼저, usermod를 이용하여 특정 계정사용자의 계정정보를 변경해 보도록 하겠다.

 

 

 

 다음은  sspark5라는 계정사용자의 /etc/passwd, /etc/shadow, /etc/group내에 설정된 기본 설정내용이다.

 

 

 

 

 

[root@sulinux  root]# grep sspark5 /etc/passwd
sspark5:x:506:508::/home/sspark5:/bin/bash
[root@sulinux  root]#
[root@sulinux  root]# grep sspark5 /etc/shadow
sspark5:$1$/H.bOlGk$jasdfadseEdF1g7naK9vVe4v5i/s/:12314:0:99999:7:::
[root@sulinux  root]#
[root@sulinux  root]# grep sspark5 /etc/group
sspark5:x:508:
[root@sulinux  root]#

 

 

 

위의 초기 설정 값을 간단히 보면 UID 506, GID 508, 코멘트는 현재 없으며, 홈디렉토리는 /home/sspark5이며, 사용하는 기본쉘은 bash쉘임을 알 수 있다.

 

 

 

 


이제 이 값들을 usermod를 이용하여 수정해 보겠다.

 

 

 

 

 

먼저, sspark5사용자의 코멘트를 입력해 보겠다.

 

 

 

 

 

[root@sulinux  root]# usermod -c 박성수 sspark5
[root@sulinux  root]#

 

 

 

위의 예와같이 코멘트를 수정하는 usermod의 옵션은 -c이다.

 

 

 

 다음은 /etc/passwd내에 sspark5의 변경된 코멘트를 확인한 것이다.

 

 

 

 

 

[root@sulinux  root]# grep sspark5 /etc/passwd
sspark5:x:506:508:
박성수:/home/sspark5:/bin/bash
[root@sulinux  root]#



 

, 위의 결과를 보면 /etc/passwd내의 sspark5계정의 코멘트정보가 박성수로 설정되어있다는 것을 알 수 있다.

 

 

 

 

 

이번에는 sspark5사용자의 홈디렉토리를 변경해 보겠다.

 

 

 

  usermod에서 홈디렉토리를 변경하는 옵션은 -d이다.

 

 

 

 

 

[root@sulinux  root]# usermod -d /usr/sspark5 sspark5
[root@sulinux  root]#

 

 

 

위와 같이 홈디렉토리를 변경하였다.

 

 

 

  다음은 변경된 값을 확인한 것이다.

 

 

 

 

 

[root@sulinux  root]# grep sspark5 /etc/passwd
sspark5:x:506:508:
박성수:/usr/sspark5:/bin/bash
[root@sulinux  root]#

 

 

 

여기서 한가지 의문점이 생길 수 있다.

 

 

 

  , “홈디렉토리의 위치가 변경이 되면 기존 홈디렉토리에 있던 파일들이 새로운 홈디렉토리로 복사되어지는가?”라는 의문점이 발생한다.

 

 

 

하지만, 너무 복잡하게 생각할 것 없다.

 

 

 

  usremod는 단지 /etc/passwd파일내의 홈디렉토리위치값만을 변경해 줄 뿐이며 실제 홈디렉토리내에 존재하고 있는 파일들은 그대로 존재하고 있다.

 

 

 

 


그리고 새로 지정된 홈디렉토리도 자동생성되지 않는다.

 

 

 

  결론적으로 usermod로 변경되는 값은 /etc/passwd내의 값임을 알 수 있다.

 

 

 

 

 

이번에는 -e옵션을 사용하여 sspark의 계정 종료일을 설정해보겠다.

 

 

 

 

 

[root@sulinux ~]# usermod -e 2023-12-31 sspark

[root@sulinux ~]#

 

위와 같이 설정한 후에 /etc/shadow파일을 확인한 것이다.

 

 

 

  계정 종료일의 설정값이 “19500”으로 설정되어 있다는 것을 알 수가 있다.

 

 

 

 

 

[root@sulinux ~]# grep sspark /etc/shadow

sspark:$6$Gx1wxTTg$ZTFyCP1g0G1TSWR6qpflN4xaiQRFtI25N0SKv53dR1:14209:0:99999:7::16800:

[root@sulinux ~]#

 

 

 

이번에는 sspark의 기본사용쉘(로그인쉘)을 변경해보겠다.

 

 

 

  sspark의 원래 사용했던 기본사용쉘(로그인쉘) /bin/bash(Bash Shell)이었다.

 

 

 

 이것을 usermod로 다음과 같이 /bin/sh(본쉘)로 변경한 것이다.

 

 

 

 

 

[root@sulinux ~]# usermod -s /bin/sh sspark

[root@sulinux ~]#

 

이를 확인하기 위하여 /etc/passwd의 내용을 확인하였다.

 

 

 

 

 

[root@sulinux ~]# grep sspark /etc/passwd

sspark:x:501:501::/home/sspark:/bin/sh

[root@sulinux ~]#

 

 

 

, 위의 결과를 보면 /etc/passwd내의 sspark계정의 기본사용쉘(로그인쉘)“/bin/sh”로 변경되어있다는 것을 알 수 있다.

 

 

 

 

 

이번에는 sspark5 UID를 변경해 보자.  UID를 변경하기 위해서는 -u옵션을 사용한다.

 

 

 

 

 

[root@sulinux  root]# usermod -u 508 sspark5    
[root@sulinux  root]#

 

 

 

원래 sspark5 UID 506이었던 것을 508로 변경한 것이다.

 

 

 

 다음은 변경된 UID값을 확인한 것이다.

 

 

 

 

 

[root@sulinux  root]# grep sspark5 /etc/passwd
sspark5:x:508:508:
박성수:/usr/sspark5:/bin/csh
[root@sulinux  root]#

 

 

 

, 위의 결과를 보면 /etc/passwd내의 sspark5계정의 UID값이 “508”로 변경되어있다는 것을 알 수 있다.

 

 

 

 

 

이번에는 sspark이라는 계정사용자의 ID와 패스워드를 변경해 보자.  usermod로 계정 사용자의 ID를 수정하려면 -l옵션을 사용한다.

 

 

 

 그리고 패스워드를 변경하려면 -p옵션을 사용한다.

 

 

 

 

 

[root@sulinux ~]# usermod -l bible7 -p 12345678 sspark

[root@sulinux ~]#

 

 

 

위와 같이 사용자의 ID를 바꾸는 것은 무리가 따르는 작업일 것이다.

 

 

 

 리눅스에서 사용자를 구분할 수 있는 가장 기본값이 ID인데 이를 변경한다는 것은 완전히 다른 사용자로 바뀐다는 것을 의미하므로 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋을 것이다.

 

 

 

 ID가 바뀐다고 해서 UID값이 바뀌는 것은 아니다.

 

 

 

 리눅스 커널은 ID값으로 사용자를 인식하는 것이 아니라 UID값으로 사용자를 인식하기 때문에 파일의 중복소유같은 문제는 발생하지 않는다.

 

 

 

 

 

다음은 위의 명령의 결과로 ID자체가 바뀐 /etc/passwd내의 내용을 확인한 것이다.

 

 

 

 

 

[root@sulinux ~]# grep bible7 /etc/passwd

bible7:x:501:501::/home/sspark:/bin/sh

[root@sulinux ~]#

[root@sulinux ~]# grep bible7 /etc/shadow

bible7:12345678:14211:0:99999:7::16800:

[root@sulinux ~]#

 

 

 

, 위의 결과를 보면 /etc/passwd내의 sspark계정의 ID bible7로 변경되었다는 것을 알 수 있다.

 

 

 

 또한 /etc/shadow파일에 보면  패스워드가 12345678로 변경되어 있다.

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,056 명
  • 현재 강좌수 :  35,912 개
  • 현재 접속자 :  254 명