사용자 정보변경(usermod , group)

Posted by 주원이^^
2011. 2. 17. 09:22 리눅스/기본정보(OS)

 

★ 사용자 정보 변경

   => 현재 자신의 로그인에 대한 정보를 변경 해보자~!

       사용자의 정보를 변경하기 위해서는 "chfn"이라는 명령어를 이용한다.

       ( "chfn" 명령어를 입력하면 한 줄씩 정보를 입력하게 된다. 이름, 회사, 회사전화, 집전화 순이다. )

      ( 변경된 내용을 보고 싶은 경우에는 "finger"라고 입력하면 된다.

     

  ※ root는 "chfn"뒤에 사용자 이름을 넣어 사용자의 로그인 정보도 변경이 가능하다.

     (역쉬 변경된 정보를 보는 방법은 "finger" 다음 보고싶은 사용자 이름을 입력하면 된다.

 

   자, 그러면 이번에는 필드의 내용외에 홈 디렉터리나 그룹, 로그인 쉘등을 바꾸는 명령어에 대해 알아보자~!

   이러한 정보를 변경하는 명령어는 "usermod"라는 명령어를 사용한다.

   usermod -c  => 설명 필드의 내용을 변경 ( chfn과 같은 기능을 가진다.)

   usermod -d  => 홈 디렉토리를 변경

   usermod -e  => 만료일자 변경

   usermod -G ( -g) => 그룹 변경

   usermod -s  => 로그인 쉘 변경

   usermod -u => UID값 변경 ( 100이상으로만 가능 )

   usermod -l  => 계정명 변경

 

ex) localhost ~ ]# usermod -s /bin/tcsh test => test 사용자의 로그인 쉘을 /bin/tcsh로 변경

     localhost ~ ]# cat /etc/passwd | grep test => /etc/passwd에서 test만 보게함.

                                                                   grep앞에 지정한 기호는 파이프 기호이다.

     localhost ~ ]# mkdir /home/users/test

     localhost ~ ]# usermod -d /home/users/test test

                      => test사용자의 홈 디렉터리를 /home/users/test로 변경

     localhost ~ ]# cat /etc/passwd | grep test => /etc/passwd를 통해 변경된 사항 확인

 

  

★ 패스워드 입력

   => 사용자를 추가하였다고 하더라도, 패스워드를 만들어 주지 않는다면 이 사용자로 로그인이 불가능하다.

      UNIX계열 OS는 사용자의 패스워드를 만들어주기 위해 "passwd"라는 명령어를 사용한다.

 

  localhost ~ ]# passwd test1 => test1의 패스워드를 지정한다.

  changing password for user test1 => test1유저의 패스워드를 변경하겠다는 말이다.

  New UNIX password :   => 새로운 패스워드를 입력하자 ( 패스워드는 8자 이상 영문과 숫자의 혼합을 기본으로 한다.)

  Retype new UNIX password :      => 패스워드를 다시한번 입력하자 ( 맞는지 확인한다.)

  자~ 이 과정을 완료하면 패스워드가 생성된다.

  이제 "ctrl + alt + 2"를 눌러 다른 콘솔창으로 이동하자~!!

  그럼 다시 로그인 화면이 뜰 것이다. 그럼 이 로그인 화면에서 방금 패스워드를 지정해준 사용자로 접속해보자~!!

 

  ※ "passwd"란 명령어는 사용자도 사용 가능하다. 하지만 사용자는 다른 사용자의 패스워드를 변경하지 못하기에

      사용자로 로그인해서 "passwd"라고만 입력하면 지금 접속한 사용자의 패스워드를 변경하게 된다.

      root사용자의 경우는 다른 사용자의 패스워드도 변경가능하므로, "passwd"다음 사용자 이름을 입력하면

      사용자의 패스워드를 변경하게 된다. ( "passwd"뒤에 아무런 이름도 입력하지 않으면 "root"자신의 패스워드 변경)

 

 

★ 새도우 패스 워드

  => 보안을 위해서 /etc/passwd 라는 파일에 저장된 패스워드를 /etc/shadow 라는 파일에 암호화하여 저장

    일단 /etc/shadow라는 파일을 열어보자 ( root에서만 실행 가능 )

 

   localhost ~ ]# cat /etc/shadow => 아래쪽을 확인하면 이상한 문자들로 이루어져 있는 것을 확인 할 수 있다.

  ※ /etc/shadow파일을 보는 법

계정명:암호화된패스워드:최종암호변경일:암호변경최소일수:암호변경유예기간:암호변경경고일수:계정사용불가날짜:계정만료일:예약

  => 이 형식을 통해 본다면 암호화된 패스워드가 이상한 문자들의 조합으로 이루어지는 것을 볼 수 있다.

     ( 이 이상한 문자들의 조합이 바로 자신이 지정한 패스워드를 암호화 시킨것이다.)

   우리가 전에 살펴보았듯이 /etc/passwd에서는 이런 문자들이 보이지 않고 "x"라고만 표현되는데,

   만약에 /etc/passwd에서도 이러한 형식으로 보고자 한다면 새도우 패스워드를 해제하면 된다.

  localhost ~ ]# pwunconv => 새도우 패스워드를 해제하는 명령어다.

  localhost ~ ]# cat /etc/passwd => 이제는 "x"라고 표시되는 부분이 이상한 문자들의 조합으로 보이는 것을 확인

       => 그러나 이렇게 표현해 놓으면 일반유저들도 이 조합을 볼 수있는데, 보안상 툴을 이용해서 풀수도 있으므로 다시 설정해놓자

  localhost ~ ]# pwconv => 다시 새도우 패스워드를 설정하는 명령어다.

  localhost ~ ]# cat /etc/passwd => 이제는 다시 "x"라고 표기되는 것을 볼 수있다.

  자, 이제는 /etc/shadow의 정보를 변경해보자 (역쉬 root 사용자만이 가능하다. )

  정보를 변경하는 명령어로는 "chage"라는 명령어를 사용한다.

  chage -l => chage 설정 내용을 확인

  chage -m => 새로운 password를 변경할 수 있는 최소 일 수

                  ( 0값은 아무때나 password를 변경할 수 있다.)

  chage -M => 유효한 패스워드의 최대일 수.

  chage -W => 사용자가 패스워드를 바꿀때까지 경고할 일 수

  chage -I => 패스워드 유효기간 경과후 사용자 계정이 비활성화 될 일 수

  chage -E => 사용자가 계정을 사용할 수 있는 유효기간 (년/월/일) (-1은 영구적으로 사용)

  chage -d => 사용자가 패스워드를 변경한 마지막 일자

 

ex) localhost ~ ]# chage -M 3 test1  => 패스워드를 사용할 수 있는 기간을 3일로 변경한다.

     localhost ~ ]# chage -l test1 => test1의 chage 설정 내용을 확인

     localhost ~ ]# su test1 => "su"라는 명령어를 이용하여 test1으로 접속유저를 변경하자~!

 

※ "su" (substitute user)

    => 사용자 계정을 바꾸는 명령어이다. ( 권한만 이양한다. )

      root 사용자(관리자)가 좀더 편리하게 작업하기 위해 일반사용자의 권한이 필요할때나

      일반사용자가 다른 일반 사용자로 접속을 하고자 할 때 ( 권한이 필요 => 패스워드를 묻는다. )

      아니면 일반 사용자가 root의 권한이 필요로 할때 (역쉬 패스워드를 물어 권한을 이양 받는다) 사용한다.

 

ex) localhost ~ ]# su test1 => 권한만 이양한다.

     localhost ~ ]# su - test1 => 다른 콘솔에서 접속한 것과 같은 권한을 이양한다.

     localhost ~ ]$ su - => 다시 root로 접속한 것과 같은 권한을 이양받는다. ( 패스워드 필요 )

 

 

★ 그룹 관리

   => 그룹은 사용자를 하나로 묶는 역할을 한다. 사용자가 많은 경우 각각의 사용자에게 일일이 권한을 부여하는 일이 무지

      번거롭다. ( 간단히 말해서 귀찮다..ㅡㅡ;) 이런 경우 그룹으로 지정을 하고 여러 사용자를 한꺼번에 권한 부여한다면

      조금은 덜 번거로워 진다... 그래서 사용한다...ㅋㅋ

 

   ● 그룹 관련된 파일

     => groupadd(그룸 생성), groupmod(그룹 변경), groupdel(그룹 삭제), gpasswd (관리자기능) .

   ● 그룹 환경 파일

      => /etc/group , /etc/gshadow

   ※ /etc/gshadow의 파일을 알아보자~!

     localhost ~ ]# cat /etc/gshadow

    => 그룹이름 : 패스워드 : 관리자, 관리자, .... : 멤버, 멤버, ....

  

   자 그러면 그룹에 관리자를 지정해줘 보자~!

   그럼 일단 그룹을 하나 만들어서 test를 진해하자~!!

   localhost ~ ]# groupadd testgroup => test 그룹을 하나 만들어 보자~!

   localhost ~ ]# gpasswd -A test1 testgroup => test1 사용자를 testgroup의 관리자로 지정

   localhost ~ ]# cat /etc/gshadow | grep testgroup => gshadow파일을 열고 testgroup을 확인

                                                                       => 확인해보면 관리자에 test1이 추가되어있다.

 

   자 그룹 관리자를 만들어보았으니 지정된 그룹 관리자로 접속을 해보자~! ( ctrl + alt + 2 로 새로운 콘솔창 열어 접속 )

   그룹관리자인 test1으로 접속을 했다면 test1이 관리하는 그룹에 멤버들을 추가해 보자~!

   localhost ~ ]$ gpasswd -a test testgroup => -a 옵션은 멤버를 추가하는 옵션이다.

                                                                   => test란 유저를 testgroup에 추가한다.

   localhost ~ ]$ gpasswd -a test3 testgroup => test3 유저를 testgroup에 추가한다.

 

   일단 제대로 그룹 멤버로 추가되었는지 확인해 보기 위해 다시 root로 접속하자.

   (만약 "su"가 아닌 ctrl + alt + 2 로 접속한 사용자는 다시 ctrl + alt + 1 로 가면 root가 존재할 것이다.)

   localhost ~ ]# cat /etc/gshadow | grep testgroup => 출력되는 화면을 보고 잘 추가되었는지 확인

   확인이 되었다면 이번엔 testgroup에 있는 사용자들을 제거해보자

 

   그러기 위해서는 다시 test로 접속하자~! (방법은 자유다..ㅋ)

   localhost ~ ]$ gpasswd -d test3 testgroup => test3이라는 유저를 testgroup에서 제외시킨다.

                                                                       => -d 옵션이 바로 삭제 옵션이다.

 

   그럼 다시 root로 접속하자 (확인해봐야 할 거 아닌가?? 싫음 말구..ㅋ)

   localhost ~ ]# cat /etc/gshadow | grep testgroup => 확인하자~!!

 

   ※ 그럼 추가로 groupadd와 groupmod가 가진 옵션에 대해 이야기 하겠다...

     ♣ groupadd

         => 그룹 추가시 사용하는 명령어이다.

     

        groupadd -f, --force => 추가될 그룹이 이미 존재하는 것이면 성공된 정보로 종료.

                                  ( -f 옵션 없이 이미 존재하는 그룹을 groupadd로 추가시 오류 메시지 발생하는데

                                     -f 옵션은 오류 메시지 없이 성공한 것처럼 보인다. )

        groupadd -r => 시스템 계정을 추가하는 그룹 생성 ( 레드햇에 의해 추가되는 옵션 )

        groupadd -g,  --gid GID => 새로 생성하는 그룹에 지정하는 GID값을 사용한다.

        groupadd -K,  --key KEY=VALUE => /etc/login.defs 기본값보다 우선한다.

        groupadd -o,  --non-unique  => 사본의 GID를 가진 그룹을 생성하는 것을 허용한다.

 

   ex) localhost ~ ]# groupadd -g 512 test => GID값을 512로 갖는 test그룹을 생성한다.

 

     ♣ groupmod

         => 그룹의 설정값을 변경시 사용

       groupmod -n 새이름 => 그룹의 이름을 "새이름"으로 변경한다.

       groupmod -g GID => 그룹의 GID값을 지정한 값으로 변경한다.

 

   ex) localhost ~ ]# groupmod -g 505 -n test5 test => test그룹의 이름을 test5로 바꾸고, GID값을 505로 변경

 

'리눅스 > 기본정보(OS)' 카테고리의 다른 글

chkconfig , ntsysv 설정.  (821) 2011.02.18
(date , clock ) 시간 맞추기.  (1746) 2011.02.18
사용자 정보변경(usermod , group)  (0) 2011.02.17
사용자추가및삭제 ( useradd, userdel )  (1) 2011.02.17
VI 에디터  (936) 2011.02.17
텍스트보는 명령어  (0) 2011.02.17
이 댓글을 비밀 댓글로