사용자추가및삭제 ( useradd, userdel )

Posted by 주원이^^
2011. 2. 17. 09:18 리눅스/기본정보(OS)
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
 

★ 사용자 추가

 

   사용자를 추가하기 위해서는 강력한 권한을 가진 유저만이 가능하다.

   리눅스에서는 이런 강력한 권한을 가진 유저로서 "root"라는 수퍼 유저가 존재한다.

   그리고 리눅스에 존재하는 유저들에 대한 정보는 "/etc/passwd"라는 파일에 저장된다.

   그럼 일단 /etc/passwd란 파일을 열어보자~!!

 

   파일에 대해 알아보자~!! ( ":"단위로 알아보면~ )

   ▶사용자 이름 : 비밀번호 : 사용자 ID : 사용자가 소속된 그룹 ID : 설명 : home directory : 기본 shell

      ◈ 사용자 ID => 커널이 관리하는 사용자 번호이다.

        ( "0" => 루트 ; "1~14" => 시스템 ; "15~99" => 프로그램 ; "100~" => 일반 사용자 (대개의 일반사용자는 "500"부터이다.)

      ◈ 사용자가 소속된 그룹 ID => Linux의 모든 사용자들은 최소 1개 이상의 그룹에 소속된다.

      ◈ shell => bash : free server / ksh : 상용(콘셀)

 

   그럼 이제 본격적으로 사용자를 만들어 보자.

   일반 유저를 만드는 명령어는 "useradd"라는 명령어다. ("adduser"도 가능하나, useradd가 더 널리 쓰인다. )

   localhost ~ ]# useradd [옵션] (새로운 사용자 이름)

   위와 같은 방법으로 새로운 유저를 만들 수 있다.

   그러나 좀더 변경사항을 고려해서 옵션에 대해 이야기해보자

   useradd -c 설명            => Comment (사용자 설명 추가)

   useradd -d 디렉터리       => 계정에 대한 directory 위치를 지정 (미리 만들어놓은 directory만 가능)

   useradd -e 유효기간        => 지정된 날짜에 사용자의 계정을 삭제 ( chage -E와 동일 기능 )

   useradd -f 비활성 일수    => password가 만기된 후 계정이 영구히 말소될 때 까지의 기간

   useradd -u UID             => 사용자 UID에 대한 값

   useradd -s shell           => 사용자 로그인 shell을 지정

   useradd -n                  => 사용자 계정 추가 기본 모드를 지정하지 않을 때

   useradd -g 그룹명           => 지정한 그룹명에 속함

   useradd -G 그룹...           =>  사용자가 기본 그룹 이외의 다른 그룹에 추가하고자 할 때,

   useradd -M                  => 사용자 디렉토리 없이 계정을 생성

   useradd -D                  => useradd 명령의 기본 설정값 변경.

                             (-D 뒤에 옵션 명령 추가, 옵션없이 "useradd -D"만 입력시 기본설정값을 보여준다.)

                              ( => /etc/login.defs 란 파일에 useradd가 수행될 수 있게 해주는 기본 설정 파일이다.) 

   useradd -D -b 기본홈              => 기본 home directory 위치 변경

   useradd -D -e 기본만료일          => 계정이 말소되는 만료일

   useradd -D -f 기본 비 작동일     =>  패스워드가 만료되고 계정이 말소되기 전까지의 기간

   useradd -D -g 기본 그룹           =>  사용자의 그룹 변경

   useradd -D -s 기본 쉘            => 사용자의 로그인 쉘 변경

   useradd -D -m -k skel           => /etc/skel 대신 다른 경로의 skeleton을 이용하고자 할 때,

                                            ( 사용자의 고유영역권에 저장해줌 <useradd시> )

 

 ※ TIP

  1. passwd를 control해서 사용자를 유보(유예) 시킴

   localhost ~ ]# vi /etc/passwd

                  => test : x : ....... => "x"대신 "*"을 입력하면 어떤 패스워드로도 접속 불가능하다.

                                           "x"대신 공백없이 "x"만 삭제할 경우 어떤 패스워드로도 접속이 가능해진다.

  2. 좀더 간단하게 접속을 못하게 하려면 (shell을 이용)

    localhost ~ ]# vi /etc/passwd

                   => .......:/bin/bash => "/bin/bash"대신 "/bin/false"를 입력하면 shell을 사용하지 않음 ( 로그인 불가)

                                           "/bin/bash"대신 "/bin/nologin"을 입력시 로그인이 안되고 리셋시킨다.

 

  3. E-mail (mail user)

       => 사용자 개개인의 공간은 필요 없으므로 "useradd -M"옵션을 이용하여 계정을 만들자.

 

ex) localhost ~ ]# useradd test => 기본값으로 test유저를 만들어보자~!

     localhost ~ ]# mkdir /home/users

     localhost ~ ]# mkdir /home/users/test1 => test1이 사용할 홈 디렉터리를 미리 만들어 놓음

     localhost ~ ]# useradd -d /home/users/test1 test1

                      => test1의 홈디렉터리를 /home/users/test1을 가진 유저 생성

     localhost ~ ]# cat /etc/passwd => 생성된 계정의 홈디렉터리가 변경되었는지 확인

     localhost ~ ]# useradd -D -b /home/users => 기본 홈 디렉터리를 /home/users로 위치를 변경

     localhost ~ ]# useradd -D => 변경이 잘 되었는지 확인

     localhost ~ ]# useradd test3

     localhost ~ ]# tail -n 5 /etc/passwd => test3사용자의 홈디렉터리가 지정한 위치에 있는 폴더를 사용하는지 확인

           ( => /etc/passwd란 파일도 한 페이지를 넘어가기 때문에 tail을 사용해 아래서부터 지정한 줄 만큼만 보여준다.)

   ♣ 이 이외에도 옵션들이 많으니 옵션을 변경해가며 사용자를 생성하고 확인해보자~!!

 

 

★ 사용자 제거

   => 사용자를 생성하면 4개의 파일에 사용자의 정보가 담아진다.

      ( /etc/passwd, /etc/group , /etc/shadow , /etc/gshadow )

      사용자 제거는 위의 4개의 파일에서 사용자를 제거하게된다.

      사용자 제거시 사용하는 명령어는 "userdel"이란 명령어이다. ( 특별히 옵션은 사용하지 않는다.. )

   

ex) localhost ~ ]# userdel test1 => test1 유저를 삭제하자~!

     localhost ~ ]# tail -n 8 /etc/passwd => 제대로 삭제가 되었는지 확인

 


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

(date , clock ) 시간 맞추기.  (1746) 2011.02.18
사용자 정보변경(usermod , group)  (0) 2011.02.17
VI 에디터  (936) 2011.02.17
텍스트보는 명령어  (0) 2011.02.17
기본적인 명령어  (1639) 2011.02.17

VI 에디터

Posted by 주원이^^
2011. 2. 17. 09:17 리눅스/기본정보(OS)
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[ 이 동   명 령 어 ]
 
< 글 자  이 동 >
   h => 좌측으로 이동 / j => 아래로 이동 / k => 위로 이동 / l => 우측으로 이동
 
< 문 서   이 동 >
   w , W => 한 단어 앞으로 이동             /   b , B => 한 단어 뒤로 이동
   e , E  => 단어의 끝으로 이동
         => 다음 문장의 처음으로 이동        /   (     => 이전 문장의 처음으로 이동
        => 다음 문단의 처음으로 이동         /   }      => 다음 문단의 처음으로 이동
   ]]     => 다음 세션으로 이동                 /  [[     => 이전 세션으로 이동
   0(숫자) => 현재 라인의 처음 위치로 이동  /  $      => 현재 라인의 마지막 위치로 이동
 
< 라 인   이 동 >
   +      => 다음 라인의 처음으로 이동                  /    -    => 이전 라인의 처음으로 이동
   H   => 화면의 최상단으로 이동        /  M  => 화면의 중간으로 이동         /  L   => 화면의 최하단으로 이동
   nH    => 화면 상단으로 부터 n번째 라인으로 이동  /    nL   => 화면 하단으로 부터 n번째 라인으로 이동
 
< 화 면   이 동 >
   CTRL + F  => 한 화면 앞으로 이동              /   CTRL + B   => 한 화면 뒤로 이동
   CTRL + D  => 한 화면의 반만큼 앞으로 이동   /   CTRL + U   => 한 화면의 반만큼 뒤로 이동
   z ENTER   => 현재 커서의 위치를 화면의 첫 라인이 되게 이동
   z.            => 현재 커서의 위치가 화면의 중간 라인이 되게 이동
   z-            => 현재 커서의 위치가 화면의 마지막 라인이 되게 이동
 
< 검 색   이 동 >
   /검색어   => 검색어에 맞는 첫번째 위치로 이동 ( 아래쪽으로 이동 )
   ?검색어   => 검색어에 맞는 첫번째 위치로 이동 ( 위쪽으로 이동 )
   ※ 검색어로 찾아낸 것이 여러개일 경우~
   n          => 똑 같은 방향의 다음 검색 위치로 이동
   N          => 반대 방향의 다음 검색 위치로 이동
   /          => 아래쪽 방향으로 이전 검색을 재수행
   ?          => 위쪽 방향으로 이전 검색을 재수행
 
< 라 인   넘 버   이 동 >
   CTRL + G   => 현재 라인의 넘버를 출력
   nG            => 라인 넘버 n으로 이동
   G              => 버퍼에서 가장 마지막 라인으로 이동
   ``              => G 명령을 하기 전의 위치로 이동
   :n             => 라인 넘버 n으로 이동
 
 
[ 편 집   명 령 어 ]
 
< 편 집 >
   i    => 커서의 앞에 글자를 추가                             /  a    => 커서의 뒤에 글자를 추가
   I    => 라인의 처음에 글자를 추가                           /  A    => 라인의 끝에 글자를 추가
   o   => 현재 라인에서 앞에 한 줄을 추가한 후 글자 추가  /  O    => 현재 라인에서 뒤에 한 줄을 추가한 후 글자 추가
   R   => 기존 글자를 덮어씀
 
< 변 경 >
   r       => 문자 변경
   cw    => 단어 변경
   cc    => 라인 변경
   C      => 커서부터 현재 라인의 끝까지를 변경
   s      => 한 글자를 지우고 글자 추가
   S      => 현재 라인을 지우고 글자 추가
 
< 삭 제 >
   x      => 커서에 있는 글자 삭제
   X      => 커서 앞에 있는 글자 삭제
   dw    =>  단어 삭제
   dd     => 라인 삭제
   D      =>  커서부터 라인의 끝까지 삭제
 
< 붙 여   넣 기 >
   p      => 커서 다음에 복사한 내용 붙여 넣기
   P      => 커서 앞에 복사한 내용 붙여 넣기
 
< 복 사 >
   yw     => 단어 복사
   yy      => 라인 복사
   "ayy   => 버퍼 a에 현재 라인을 복사
 
 
[ 명 령   라 인   옵 션 ] ( 쉘모드에서 입력 )
   vi file               => file을 편집 대상으로 vi 에디터를 시작
   vi file1 file2      => file1과 file2를 편집 대상으로 vi 에디터를 시작
   view file           => 읽기 전용으로 file을 vi 에디터로 편집
   vi -R file           => file을 읽기 전용으로 vi 에디터를 시작
   vi -r file            => 최근의 file을 복구
   vi + file             => file을 vi 에디터로 편집할 때 처음 커서의 위치를 마지막 라인으로 이동
   vi + n file          => n번째 라인에서 커서를 위치한 후 file을 편집
   vi + /검색어 file   => 검색어에 해당하는 위치에서 file을 편집
   ex file               => ex 모드로 file을 편집
 
 
[ 종 료   명 령 어 ]
   ZZ                   => 현재 파일을 저장하고 종료
   :x                    => 현재 파일을 종료
   :wq                  => 현재 파일을 저장하고 종료
   :w                    => 현재 파일을 저장
   :w!                   => 읽기 전용을 무시하고 현재 파일을 저장
   :a,bw newfile    => a에서 b까지의 라인을 새로운 파일로 저장
   :a,bw >> file      => a에서 b까지의 라인을 file에 추가
   :w %.new         => 현재 편집 파일을 file.new라는 파일로 저장
   :q                    => 파일 편집 종료
   :q!                   => 파일 보호 제약을 무시하며 강제로 파일 편집 종료
   :Q                    => 파일 편집 종료하면서 ex를 기동
   :e file2            => vi에디터를 종료하지 않은 채 file2를 편집
   :n                    => 현재 로드된 다음의 파일을 편집
   :e!                   => 작업한 내용을 버리고 마지막 저장된 파일로 전환
   :e#                  => 다른 파일 편집
   %                    => 현재 파일 이름 출력
                     => 다른 파일 이름 출력
 
 
[ 기 타   명 령 어 ]
    u                                            => 마지막 명령 Undo
    U                                            => 현재 라인의 명령 Undo
    J                                            => 두 라인 합치기
    CTRL + L , CTRL + R(r의 대문자) => 현재 화면 다시 그리기 (Refresh)
   
----- ex 명령어 ---------
    :sh                                      => 쉘 명령 라인으로 잠시 빠져나감
    CTRL + D                              => 쉘 명령 라인에서 vi 에디터로 전환
    :!shell command(명령어)          => 쉘 명령어 실행
    :r filename                           => 현재 편집 파일의 마지막에 filename의 내용을 추가
    :r! shell command(명령어)        => 쉘 명령어의 결과를 현재 편집파일의 마지막에 추가
 
----- 북 마 크 -----------
    mx                                   => x로 현재 위치를 북마크
    x                                     => 저장한 x 북마크 위치로 이동
    ``                                     => 이동 후 이전 북마크나 내용으로 이동
    'x                                    => 북마크 x가 위치한 라인의 처음으로 이동
    "                                      => 이전 북마크가 위치한 라인의 처음으로 이동
 
----- 단 축 명 령 ---------
    :map x                               => x를 일련의 편집 명령어로 매핑
    sequence                           => x로 매핑된 명령어를 해제
    :ab abbr phrase                  => 특정 문구로 abbr로 축약해서 사용.
                                              Abbr이 입력이 되었을 때 특정문구로 대체되어 나타남
    :unab abbr                         => 단축어 해제
 
----- 환 경   설 정 --------
    :set option(옵션)                   => 옵션을 활성화
    :set option(옵션)=value          => 옵션에 value값을 설정
    :set nooption                      => 옵션 비활성화
    :set                                     => 사용자에 의해 설정된 옵션 출력
    :set all                                => 현재 설정된 모든 옵션 출력 ( 기본 옵션, 사용자 정의 옵션 )
    :set option?                        => 옵션에 설정된 값 출력

 

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

사용자 정보변경(usermod , group)  (0) 2011.02.17
사용자추가및삭제 ( useradd, userdel )  (1) 2011.02.17
텍스트보는 명령어  (0) 2011.02.17
기본적인 명령어  (1639) 2011.02.17
리눅스디렉토리  (0) 2011.02.17

텍스트보는 명령어

Posted by 주원이^^
2011. 2. 17. 09:16 리눅스/기본정보(OS)
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

★ cat

    => Ascii code로 되어있는 file을 보여준다.(문서 file)

 

      cat -b => 공백라인 제외하고 행 번호를 붙여 화면에 출력

      cat -n => 공백라인 포함해서 행 번호를 붙여 화면에 출력

 

(ex) root@localhost ~ ]# cat /etc/passwd

        root@localhost ~ ]# cat -b /etc/passwd (행번호가 붙어서 나오는지 확인)

 

 

★ nl

    => 공백라인 제외하고 행 번호를 붙여 화면에 출력한다. ( = cat -b)

 

(ex) root@localhost ~ ]# nl /etc/passwd (행번호가 붙어서 보이는 지 확인)

 

 

★ more, less

    => 텍스트로 작성된 파일을 페이지 단위로 보여준다. ( "space"키 => 다음 페이지 , "b"키 => 이전 페이지)

 

   ※ more는 한번 본 페이지는 다시 보지 못하는 반면

      less는 한번 본 페이지도 다시 볼 수있다.("q"버튼을 이용하여 나갈 수 있다.) 

 

(ex) root@localhost ~ ]# more install.log (페이지 단위로 끊어서 화면으로 보여주는 것을 확인)

        roor@localhost ~ ]# less install.log (화살표 키나 "page up"키를 이용해서 지나간 페이지도 다시 확인)

 

 

★ head, tail

    => 텍스트로 작성된 파일을 화면에 행렬 수로 화면에 출력한다. (기본값 10행만큼)

 

    ● head -n 숫자 => 첫 행을 기준으로 위에서부터 숫자 행만큼만 출력한다.

         (ex) root@localhost ~ ]# head -n 7 install.log (첫행을 기준으로 위에서부터 7행까지만 화면에 출력)

    ● tail -n 숫자 => 마지막 행을 기준으로 아래서부터 숫자행만큼 화면에 출력한다.

         (ex) root@localhost ~ ]# tail -n 8 install.log (마지막 행을 기준으로 아래서부터 8행만큼 화면에 출력)

 

 

★ grep(필터)

    => 필요한 것만 걸러주는 명령어 (Global Regular Expression Print)

 

    (ex) root@localhost ~ ]# ls -l /etc | grep passwd

 

 

★ sort

   => 파일안의 내용을 정렬해서 보여준다.

 

    sort -r => 역방향 정렬해서 보여준다. 

 

   (ex) root@localhost ~ ]# sort install.log (안의 내용들이 A~Z까지 순차적으로 정렬)

           root@localhost~ ]# sort -r install.log (안의 내용을 Z~A까지의 순대로 정렬)

 

 

★ cut

    => 열 단위로 출력 가능~

 

   (ex) root@localhost ~ ]# cat /etc/passwd

           root@localhost ~ ]# cut -d: -f1,4 /etc/passwd (passwd파일에서 1열과 4열만 출력해서 보여줌)

 

 

★ sed

    => Streamining Editor 의 약어로 스트림 에디터로 볼 수 있다.

 

  (ex) root@localhost ~ ]# cat > test.txt

           abcd

           "ctrl + d"키를 누르세요

           root@localhost ~ ]# cat test.txt (abcd라고 나오는지 확인)

           rott@localhost ~ ]# sed 's/abcd/ABCD/g' test.txt ( 그럼 abcd대신 ABCD가 나오는 것을 확인)

 

 

★ uniq

    => 중복이 되는 것이 있는지를 파악하고 보여줌

 

     (ex) root@localhost ~ ]# cat > test.txt

             abcd

             abcd

             asdf

             asdf

             qwer

             "ctrl + d"버튼을 눌러서 빠져나오자~!

             root@localhost ~ ]# uniq test.txt (그럼 중복된 것은 하나로만 보여주면서 출력할 것이다.)

    uniq -c (카운트) => 중복된 갯수를 표현한다.

             (ex) root@localhost ~ ]# uniq -c test.txt (중복된 파일과 중복된 것이 몇개인지 보여줌)

 

    uniq -d => 중복된 행만 출력

             (ex) root@localhost ~ ]# uniq -d test.txt (중복된 단어들만 보여줄 것이다.)

 

 

★ diff

    => diff A B  => A를 기준으로 B를 비교해 틀린 것만 출력 ( 두개의 file을 비교한다.)

 

    (ex) root@localhost ~ ]# cp test.txt test1.txt

            root@localhost ~ ]# cat >> test.txt (기존 파일에 추가로 단어 삽입)

            kdmkorea

            "ctrl + d"를 눌러서 빠져나오자~!

             root@localhost ~ ]# diff test.txt test1.txt ( "<  kdmkorea"라고 보여질 것이다)

 

 

★ od , hex damp

     => 실질적으로 file안에 들어가 있는 것을 8진수 형태로 보여준다.

 

    (ex) root@localhost ~ ]# od -x /bin/ls (숫자들이 무지 많이 출력되는 것을 확인할수 있다..)

 

 

 

★ wc

    => 통계 명령어 ( 첫번째 숫자 : 라인수, 둘째 숫자 : 단어수, 셋째 숫자 : byte수(character 수))

 

    wc -l => 라인 수만 출력

    wc -m(c) => character 수 (문자수)

    wc -w => 단어수

 

    (ex) root@localhost ~ ]# wc install.log

            root@localhost ~ ]# wc -l install.log

            root@localhost ~ ]# wc -m install.log

            root@localhost ~ ]# wc -w install.log

 

★ 리다이렉션

    => 표준 입출력의 방향을 바꿔준다.

 

   ● "<" => 써도되고 안써도 무방하다. (일반 Command명령어의 기능과 동일하다.)

   ● ">" => 모니터로 출력될 내용을 파일(HDD)로 저장시에 사용 (HDD로 방향을 바꾼다.)

   ● ">>" => 위의 ">" 기능과 유사하지만 ">"는 새로 만드는 것이라면 ">>" 추가로 입력하는 형식이다.

 

  (ex) root@localhost ~ ]# ls -l > aa.lst (ls -l로 보여지는 결과물을 aa.lst파일로 저장)

        root@localhost ~ ]# cat aa.lst (ls -l의 결과가 맞는지 확인)

        root@localhost ~ ]# cat >> aa.lst

        abcd

        "ctrl + d"를 눌러서 빠져나옴

        root@localhost ~ ]# cat aa.lst (위의 aa.lst의 파일에 abcd가 추가되었는지 확인)

        root@localhost ~ ]# sort < aa.lst > bb.list (aa.lst 파일을 정렬해서 bb.list 에 저장한다.)

        root@localhost ~ ]# cat bb.list (aa.lst파일의 내용이 정렬되어 있는 것을 볼 수 있다.)

 

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

사용자 정보변경(usermod , group)  (0) 2011.02.17
사용자추가및삭제 ( useradd, userdel )  (1) 2011.02.17
VI 에디터  (936) 2011.02.17
기본적인 명령어  (1639) 2011.02.17
리눅스디렉토리  (0) 2011.02.17