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]
아래 그림은 막은 패스워드를 풀어주는 과정입니다.
자.. 이제 다시 로그인을 시도해볼까요?
이전까지만해도 막혀있던 패스워드가 다시 풀려서 로그인이 가능하게 되었습니다.
'Server&OS > Linux' 카테고리의 다른 글
solairs10 + openssh + rssh 설치 Linux (0) | 2010.05.19 |
---|---|
gcc 정적 라이브러리와 동적 라이브러리 (.a .so 파일) (0) | 2010.05.18 |
[보안] 자동공격 봇 막기.2 (0) | 2010.04.24 |
PHP 애플리케이션을 가장 빠르게, Part 3: Memcache 데몬을 사용하여 메모리에 데이터 저장(cache)하기 (0) | 2010.04.24 |
Qmail 설치 가이드 (0) | 2010.04.24 |