본문 바로가기
Server&OS/Linux

usermod ( 생성된 계정사용자 설정변경 )

by 백룡화검 2010. 5. 13.

usermod 명령어는 생성한 계정 사용자 설정을 변경하는 명령어 입니다.

 

usradd 는 계정을 생성하는 명령이고

useradd -D 는 계정을 생성하였을 때 기본적으로 적용되는 사항이라면

usermod 는 이미 생성 되어있는 계정사용자 설정사항을 변경하는 명령입니다.

 

usermod 명령어에도 많은 옵션 명령어들이 있는데 한번 보도록 하겠습니다.

 

-c : comment 사용자의 설명을 변경한다.

-d : homedirectory 사용자 홈 디렉토리 위치를 지정한다.

-e : date 사용자의 사용기간을 제한한다. (YYYY_MM_DD)

-f : 남은 날수 임시 사용자의 사용 제한

-l : 사용자 ID : 사용자의 ID를 변경한다.

-p : 패스워드 : 사용자의 패스워드를 지정한다.

-s : shell : 사용자의 쉘을 지정한다.

-L : 사용자의 패스워드를 막아놓아 접근을 막는다.

-U : 사용자의 접근을 막은 패스워드를 풀어준다.

 

 

 

-c (사용자의 설명을 변경한다.)

 

useradd 명령어에 있는 옵션 명령어와 비슷한 옵션 명령어입니다.

단지 usermod -c 는 이미 설정되어 있는 Comment 를 변경하는 것이지요.

 

아래 그림에는 grep 명령을 통해 이미 생성된 계정 사용자의 정보를 출력하여 보여주고 있습니다.

kangsinkyu 계정 사용자에는 Comment 가 적혀있지 않네요..  아마 생성할 때 -c 명령을 통해 Comment 를 설정하지 않은 것 같습니다.

 

kangsinkyu:x:502:504: 이부분 :/home/kangsinkyu:/bin/csh

 

 

이것을 usermod -c 명령을 통해 변경을 해보도록 하겠습니다.

아래와 같이 명령을 입력하여 Comment 설정을 변경합니다.

 

명령어 형식 -  ( usermod -c [Comment 명] [계정ID] )

 

 

 

-d ( 계정 사용자의 홈 디렉토리 위치를 변경한다. )

 

네... 말그대로 사용하고 있는 계정 사용자의 홈 디렉토리 위치를 변경하는 명령어입니다.

현재 kangsinkyu 라는 계정사용자는 홈 디렉토리를 /home/kangsinkyu 로 되어 있습니다.

 

 

현재 위 홈 디렉토리를 usermod -d 명령으로 변경해보도록 하겠습니다.

아래 그림에 보시면 홈 디렉토리가 변경된 것을 확인할 수 있습니다.

 

명령어 형식 - ( usermod -d [변경할 디렉토리] [계정 ID] )

 

 

 

 

-e ( 계정 사용자의 사용기간을 변경한다. )

 

생성된 계정 사용자의 사용기간을 변경하여 사용 제한을 하는 명령입니다.

사용기간을 8월 26일로 설정해 둔다면 그 이후로 해당 계정에 대해서는 8월 26일이 지나면 사용에 제한을 받게 됩니다.

 

아래 그림과 같이 usermod -e 명령을 사용하여 계정을 제한해보도록 하겠습니다.

 

명령어 형식 - ( usermod -e YYYY-MM-DD [계정ID] )

 

아래 그림에는 현재 날짜보다 하루 전 날짜인 2009-08-25 로 변경하여 로그인을 시도해 본 것입니다.

사용기간을 제한해둔 후에 grep 명령을 통해 /etc/shadow 파일을 보니 기간만료 날짜가 14476 일로 설정되어 있군요...

 

 

네... 사용기간을 2009-08-20 일로 변경해둔 후에 로그인을 시도하니 위와같이 계정이 만료 되었다는 에러메시지가 출력되면서 로그인이 되지 않는군요.

 

 

 

 

-f ( 남은 날수, 임시 사용자의 제한 )

 

임시 사용자의 사용 기간을 제한하는 것입니다.

 

기본값은 -1 이며, -1 은 기능을 비활성화 하겠다는 것을 뜻합니다.

0 으로 설정하게 되면 패스워드 만료기간이 되자마자 바로 패스워드를 잠궈버리게 되어 더이상 사용할 수 없게 되고 -30 은 패스워드 만료기간이 30일이 남았다는 것을 뜻합니다.

 

 

 

-l ( 계정ID 변경 )

 

사용자 계정 ID 를 변경합니다.

 

사용자 계정 ID 만을 변경하게 되면 이에 따른 문제가 발생됩니다,

그것은 계정 ID 를 변경한다 해도 홈 디렉토리와 그룹, 그리고 /etc/skel 에 있는 정보들이 전부 변경되는 것이 아니기 때문에 단순히 계정 ID만을 변경하는 것은 좋지 않으며, 일일이 다 변경해 주어야 합니다.

 

명령어 형식 - ( usermod -l [변경할 계정ID] [변경전 계정ID] )

 

 

 

-p ( 패스워드 변경 )

 

사용자 계정에 대한 패스워드를 변경합니다.

 

명령어 형식 - ( usermod -p `openssl passwd [변경할 password]` [계정ID]

 

여기서 한가지 주의하셔야 할 점은 앞에 useradd 명령어에 대해 소개할 때에도 언급 하였듯이 그냥 -p 옵션을 넣어서 변경할 패스워드를 입력하게 되면 전혀 다른패스워드로 변경이 되어 버린다는 점입니다.

 

따라서 -p 옵션으로 패스워드를 변경할 때에도 `openssl passwd [변경할 password]`  이 형식으로 명령어를 입력해야 합니다.

 

아래 그림은 패스워드를 변경한 후에 grep 명령어를 통해 /etc/shadow 파일을 참조한 것입니다.

맨 아랫줄을 보시면 k1yvPp2pP0n.w  이 부분이 12345 로 변경한 패스워드가 암호화되어 보이는 것을 나타냅니다.

 

 

 

 

-s ( 사용자 쉘을 변경하여 지정 )

 

해당 계정사용자의 쉘을 변경하는 옵션 명령어입니다.

 

명령어 형식 - ( usermod -s [로그인 쉘] [계정ID] )

 

현재 kangsinkyu 계정 사용자는 bash 쉘을 사용하고 있는데 이것을 csh 로 변경하여 보겠습니다.

아래 그림은 변경후에 정상적으로 적용이 되었는지를 나타내고 있습니다.

 

 

 

 

 

-L ( 계정 사용자의 패스워드를 막아놓아 로그인을 할 수 없도록 접근을 막는 명령어 )

 

네... 사용자 계정의 패스워드를 막아서 로그인을 할 수 없도록 하는 명령입니다.

이 명령을 사용하면 해당 사용자는 정상적인 패스워드를 입력하여도 로그인을 할 수 없게됩니다.

 

명령어 형식 - ( usermod -L [대상 계정ID]

 

아래 그림은 로그인을 하지 못하게 kangsinkyu 사용자 계정에 대한 패스워드를 막는 과정입니다.

 

이제 kangsinkyu 계정으로 로그인을 시도해보면 Login incorrect 라는 메시지가 출력되면서 로그인이 되지 않게됩니다.

 

 

 

 

-U ( 사용자 계정의 접근을 막은 패스워드를 풀어주는 명령 )

 

네... 위에서 -L 옵션으로 사용자계정의 패스워드를 막았다면 이번 옵션 명령어인 -U 는 막은 패스워드를 풀어주는 옵션 명령어입니다.

 

명령어 형식 - ( usermod -U [대상 ID]

 

아래 그림은 막은 패스워드를 풀어주는 과정입니다.

 

자.. 이제 다시 로그인을 시도해볼까요?

이전까지만해도 막혀있던 패스워드가 다시 풀려서 로그인이 가능하게 되었습니다.