RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'Su'에 해당되는 글 1

출처 : 대전국제IT교육센터 정성재 강사

 

1. su(substitute user)
(1) 설명: 그대로 해석하면 대리유저라는 뜻으로  실제로 login하는 것은 아니고 다른 사용자의
          권한으로 shell을 실행하는 것이다. 즉, 시스템에 접속한 상태에서 재로그인없이 다른
          사람 계정으로 접속한다.
(2) 사용법
   su [option] [사용자계정]
    => 사용자계정을 입력하지 않으면 root로 login하게 된다. su를 이용해 다른 사용자로 사용하다가
      exit를 입력하면 su를 실행하기 전 사용자로 돌아가게 된다.
(3) option
   - : 이 옵션이 없이 su 명령만 실행시키면 자신의 환경변수의 값을 가지고 다른 사람의 권한만 갖
      지만 이 옵션을 사용하여 su명령을 실행시키면 그 사용자의 환경변수의 내용까지 완벽하게 사
      용한다. 즉, 루트권한사용시 이 옵션을 사용해야만 시스템명령어(예를 들면/sbin 디렉토리의
      명령어인 fdisk같은)를 사용할 수 있다.

(참고1) 'su'와 'su -'의 비교


현재디렉토리상태 su인 경우 su -인 경우
[posein@www posein] [root@www posein] [root@www /root]


(설명) su명령을 옵션없이 사용하면 기존의 일반사용자인 posein의 환경을 그대로 가져간다. 따라서,
      루트권한자로서의 역할을 전부수행하지 못하고, 단순히 파일이나 디렉토리의 접근권한만 행사
      한다. 따라서, 완벽한 루트권한자로의 역할을 수행하려면 'su -'로 해야한다.

(실습) 'su'명령인 상태와 'su -'상태에서 각각 현재 설정된 패스의 상태를 알 수 있는 ehco $PATH
      를 해보아라. (물론 현재의 셀상태는 리눅스에서 사용하는 bash셀이어야 한다.)
(참고2) 루트권한자에서 일반사용자로 'su'시에는 패스워드를 묻지 않고 바로 전환된다.

2. useradd
(1) 설명: 사용자를 추가하는 명령어로 adduser와 같다.물론 option도 동일하다. root권한자만 가능
         한 명령이다.
(2) 사용법
   useradd [option] 사용자계정
(3) option
  -p : 사용자의 암호를 추가시에 지정할 수 있다. (리눅스에서는 지원안됨)
  -d : 홈디렉토리를 지정할 때 쓰인다. 최종디렉토리만 생성한다.
    예) useradd posein -d /home2/posein 이라고 명령을 내렸을 경우 /home2이라는 디렉토리가 생성
       되어 있을 경우에만 홈디렉토리가 생성되므로 미리 /home2라는 디렉토리를 생성해야 한다.
  -g : 그룹을 지정할 때 쓴다. 지정할 그룹이 미리 생성되어 있어야 한다.
  -G : 기본그룹이외에 추가로 그룹에 속하게 할 경우에 쓴다.
  -c : 사용자추가시 사용자에 대한 설명을 설정한다.
  -s : 사용자추가시 사용자가 사용할 쉘을 지정한다.
  -D : /etc/default/useradd에 설정된 유저추가와 관련된 기본 사항들을 보여준다.
(4) 사용예
   1) posein이라는 유저추가하기
     [root@www /]# useradd posein
  (참고3) useradd명령은 단순히 사용자만 추가하는 것이 아니라 리눅스에서는 유저추가시 메일계정
        (/var/spool/mail/'사용자계정')도 자동으로 생성되고 또한 사용자의 홈디렉토리도 자동으로
        생성된다. 홈디렉토리는 /home/'사용자계정'이다.
   2) useradd -p '암호' posein
     => 사용자추가와 동시에 암호도 지정한다. (권장하지 않고 또한 현재 리눅스에서는 지원되지
       않는다.)
   3) useradd marine -d /home/terran/marine -g terran
     => marine이라는 사용자를 추가하면서 홈디렉토리의 경로도 지정하고 해당그룹도 지정한다.
       물론 해당 디렉토리(/home/terran)과 해당그룹(terran)은 미리 생성되어 있어야 한다.
        예) 위의 명령실행전에 아래와 같은 명령을 내려 미리 디렉토리와 그룹을 생성한다.
           mkdir /home/terran
           groupadd terran
   4) useradd -c "System manager" posein
     => posein이라는 사용자에게 "System manager"라는 정보를 입력한다.
       정보의 확인은 /etc/passwd 또는 finger명령으로 확인한다.
   5) [root@www /root]# useradd -D
      GROUP=100
      HOME=/home
      INACTIVE=-1
      EXPIRE=
      SHELL=/bin/bash
      SKEL=/etc/skel
(5) 참고: 관련파일(/etc/default/useradd, /etc/passwd)
    useradd명령은 /etc/default/useradd파일의 내용을 참고로 해서 사용자를 추가한 뒤에 기록은
   /etc/passwd 파일에 한다고 보면된다. 다시말하면 /etc/default/useradd파일의 내용을 참고로
   홈디렉토리, 기본그룹, 쉘 등을 설정하여 /etc/passwd 파일에 기록한다.

(6) 응용문제: useradd명령을 이용하여 아래와 같은 조건을 만족하는 marine이라는 계정을 생성
             하여라.

     [조건]
      - 기본그룹: terran
      - 추가그룹: zerg
      - 기본쉘  : /bin/csh

     [정답]
      useradd marine -g terran -G zerg -s /bin/csh

3. passwd
(1)설명: 등록된 사용자의 비밀번호를 지정하거나 변경하는 명령어이다. passwd만 치면 현재 로그인
         사용자의 패스워드가 변경된다.
(2) 사용법
    passwd [사용자계정]
(3) 사용예
   1) [posein@www posein]$ passwd
        => 현재 로그인한 posein 사용자 본인의 패스워드를 변경한다.
   2) [root@www /root]# passwd posein
        => posein이라는 사용자의 패스워드를 변경한다.

4. userdel
(1) 설명: 사용자를 삭제하는 명령이다.
(2) 사용법 : userdel [option] 사용자계정
(3) option
    -r : 사용자의 홈디렉토리까지 제거한다.
(4) 사용예
   1) [root@www /root]# userdel posein
       => posein이라는 사용자의 계정을 삭제한다.
     (참고4) 사용자를 제거한다고 해서 그 사용자가 사용하던 홈디렉토리까지 제거되는 것이 아니므
           로 일일이 삭제해주거나 -r옵션을 사용하여야 한다. 또한 E-mail을 사용하고 있던 경우에
           는 E-mail파일도 지워야 한다.
             예) rm -rf /home/posein
                 rm -rf /var/spool/mail/posein
   2) [root@www /root]# userdel -r posein
       => 사용자의 계정뿐만아니라 사용하던 홈디렉토리와 홈디렉토리안의 모든 파일 및 디렉토리,
         메일계정도 제거한다.

5. groupadd
(1) 설명: 새로운 그룹을 만드는 명령으로 생성된 그룹의 확인은 /etc/group에서 한다.
(2) 사용법
   groupadd [option] 그룹명
(3) option
   -g GID : 생성과 동시에 GID를 부여하고 싶을때 사용
   (참고) GID 0~499까지는 루트나 bin,mail등의 시스템 레벨계정에서 사용하기 위해 예약되었으므
         로 500번이상을 사용해야 한다.
   -r     : -g 옵션과 함께 쓰이며 0~499번지내의 번호를 그룹번호로 사용시 쓴다.
    (참고)어떤 사용자가 속한 그룹을 알고 싶을때는 groups ID
(4) 사용예
    [root@www /root]# groupadd terran
      => terran이라는 그룹을 생성한다

6. groupdel
(1) 설명 : 생성된 그룹을 삭제하는 명령이다. 참고로 제거할 그룹에 속한 사용자가 없어야 한다.
(2) 사용법
   groupdel 그룹명
(3) 사용예
    [root@www /root]# groupdel terran
     => terran이라는 그룹을 삭제한다.

7. id
(1) 설명: 시스템에 등록된 ID를 보여준다. uid, gid, group를 보여준다.
(2) 사용법
   id [option] [사용자계정]
(3) option
   -g : 그룹 ID만을 출력한다.
   -G : 추가 그룹들만 출력한다.
   -u : 사용자 ID만을 출력한다.
   -n : 보통 g나 u옵션과 같이 사용되며 번호대신에 이름으로 출력한다.
(4) 사용예
   1) [posein@www posein]$ id
      uid=501(posein) gid=501(posein) groups=501(posein)
        => 기본적을 uid, gid, group을 출력한다.
   2) [posein@www posein]$ id prehee
       uid=514(prehee) gid=515(prehee) groups=515(prehee)
        => prehee라는 사용자의 ID정보를 출력한다.
   3) [posein@www posein]$ id -un
      posein
       => uid대신에 이름으로 출력한다.

8. groups
(1) 설명: 해당사용자가 속한 그룹을 보여준다.
(2) 사용법
   groups [사용자계정]
(3) 사용예
   1) [posein@www posein]$ groups
      posein
       => 현재 로그인된 사용자가 속한 그룹을 표시해준다.
   2) [root@www /root]# groups marine
      marine : terran zerg
       => marine이라는 사용자가 속한 그룹을 표시해준다. 현재 terran, zerg라는 그룹에 속해있는
         것을 알 수 있다.


사용자 관련명령어(실습)


1. 관리자가 9명의 사용자를 추가하려고 한다. 9명은 인사부 3명(posein, xitem, yooain), 총무부 3명(zzang, kcy1977, prehee), 자재부 3명(powerlim, dreamlee, minory)이다. 그냥 useradd 명령을 내리면 전부 /home 디렉토리밑으로 계정이 생성되어 관리하기가 불편할 것 같아 다음과 같은 조건으로 사용자를 생성하려고 한다.


[조건]   1. 인사부직원은 insa라는 그룹에 속하도록 하고 홈디렉토리는 /home/insa 디렉토리에
            생성되도록 한다.
          2. 총무부직원은 chongmoo라는 그룹에 속하도록 하고 홈디렉토리는 /home/chongmoo 디렉
            토리에 생성되도록 한다.
          3. 자재부직원은 jaje라는 그룹에 속하도록 하고 홈디렉토리는 /home/jaje 디렉토리에
            생성되도록 한다.


  => (방법)
    1. 그룹을 생성한다.
      groupadd insa
      groupadd chongmoo
      groupadd jaje

    2. 디렉토리를 생성한다.
      mkdir /home/insa
      mkdir /home/chongmoo
      mkdir /home/jaje

    3. 계정을 추가한다.
      (1) 인사부직원
         useradd posein -d /home/insa/posein -g insa
         passwd posein
         useradd xitem -d /home/insa/xitem -g insa
         passwd xitem
         useradd yooain -d /home/insa/yooain -g insa
         passwd yooain
      (2) 총무부직원
         useradd zzang -d /home/chongmoo/zzang -g chongmoo
         passwd zzang
         useradd kcy1977 -d /home/chongmoo/kcy1977 -g chongmoo
         passwd kcy1977
         useradd prehee -d /home/chongmoo/prehee -g chongmoo
         passwd prehee
      (3) 자재부직원
         useradd powerlim -d /home/jaje/powerlim -g jaje
         passwd powerlim
         useradd dreamlee -d /home/jaje/dreamlee -g jaje
         passwd dreamlee
         useradd minory -d /home/jaje/minory -g jaje
         passwd minory
     
      (설정예)
      [root@www root]# groupadd jaje
      [root@www root]# mkdir /home/jaje
      [root@www root]# useradd powerlim -d /home/jaje/powerlim -g jaje
      [root@www root]# passwd powerlim
      Changing password for user powerlim.
      New UNIX password:
      Retype new UNIX password:
      passwd: all authentication tokens updated successfully.

     (테스트)
      Red Hat Linux release 8.0 (Psyche)
      Kernel 2.4.18-14 on an i686
      login: powerlim
      Password:
      [powerlim@www powerlim]$ pwd
      /home/jaje/powerlim
      [powerlim@www powerlim]$ ls -ld ~
      drwx------    4 powerlim jaje         4096  4월  9 17:44 /home/jaje/powerlim

(복습)

1. 관리자가 9명의 사용자를 추가하려고 한다. 9명을 그룹별로 나누고, 홈디렉토리도 그룹별(terran, protoss, zerg)로 나누려고 한다. terran(marine, scv, medic) 3명, protoss(dragoon, zealot, probe) 3명, zerg(drone, hydra, lurker) 3명이다. 홈디렉토리는 각각 /home/terran, /home/protoss, /home/zerg 디렉토리밑에 생성되도록 해본다.

 
2. 특정 그룹에 속한 사용자들 찾아보도록 한다. 그룹에는 기본그룹(1차그룹)이 있고 추가로 속하는
   2차그룹이 있다. 리눅스에서는 모든 사용자는 기본그룹에 속해있어야 한다. 위의 복습예제를 했을
   경우 zerg라는 그룹에 속한 사용자들을 찾아보자.

  => (방법)
    1. 2차 그룹으로 등록된 사용자들 찾아보기
      1) 설명: 그룹과 관계된 파일이 /etc/group이다. 이 파일의 4번째필드에 2차그룹으로 등록된
              사용자들이 나열된다.
      2) 예
        [root@www root]# grep zerg /etc/group
        zerg:x:507:marine
          => marine이라는 사용자가 zerg라는 그룹에 속해있음을 알 수 있다. marine이라는 사용자
            의 기본그룹은 다른 그룹에 속해있다.
    2. 1차 그룹으로 등록된 사용자들 찾아보기
      1) 설명: /etc/group, /etc/passwd 파일과 grep명령을 이용하면 쉽게 찾을 수 있다.
      2) 방법
        ㄱ. 먼저 /etc/group 찾고자하는 그룹의 GID를 확인한다.
        ㄴ. grep 명령을 이용하여 /etc/passwd에서 추출해낸다.
      3) 사용예
        ㄱ. zerg의 GID 알아내기
           [root@www root]# grep zerg /etc/group
           zerg:x:507:marine
             => 507번임을 알 수 있다.
        ㄴ. grep 명령을 이용하여 /etc/passwd에서 찾아낸다.
           [root@www root]# grep 507 /etc/passwd
           medic:x:507:505::/home/terran/medic:/bin/bash            // 이 사용자는 아니다.
           drone:x:508:507::/home/zerg/drone:/bin/bash
           hydra:x:509:507::/home/zerg/hydra:/bin/bash
           lurker:x:510:507::/home/zerg/lurker:/bin/bash
           zergling:x:514:507::/home/zergling:/bin/bash
            => grep명령은 특정문자열을 가지고 찾아주는 것이라서 위와 같이 UID가 507인 사용자
              도 찾아주므로 주의해야 한다.

우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
Tips! (1)
OpenSource (1)
«   2018/10   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
  1. 2012/12 (2)
  2. 2012/04 (3)
  3. 2012/03 (6)
  4. 2012/02 (6)
  5. 2012/01 (2)