우분투의 경우 설치시 기본적으로 root로긴을 허락치 않는다. 이를 대체할 sudo 명령을 주로 사용하며 root 권한으로 모든 것을 실행할 수 있으므로 필요치 않기 때문이다. 우분투 설치시에 계정을 추가하는 부분이 있는데 그때 넣어준 계정은 실제적으로 sudo 명령을 실행할 수 있는 권한을 자동적으로 부여받게 되어 있다. 이때 소속그룹admin 으로 되어 있다.

그러면 리눅스 박스를 2사람 이상이 공동으로 관리하고자 할 때 sudo  사용자를 추가해 줄 수 있는 방법은 무엇이 있을까? 리눅스 박스에서 일반사용자들의 경우 su 명령이나 sudo 명령을 거의 사용하지 않을 것이다. 따라서 이런 이유에서 수도사용자를 추가하는 방법이 몇가지 존재한다. 모로 가도 서울만 가면 된다는 말이 있듯이 해결방법은 다양한 듯 하다.

첫째, 우분투에서 사용자 추가시 새로 발급하는 계정(account)을 admin 그룹으로 넣어주는 것이다.

# sudo useradd -n -d /home/user1 -G admin user1
# sudo passwd user1
passwd:

위의 과정을 설명하면
-n : 새로운 계정을 추가하는 옵션
-d : 해당계정의 디렉토리를 만들어 주는 옵션
-G : 해당 그룹에 속하도록 하는 옵션
user1 : 발급하고자 하는 계정(account)

이렇게 하면 user1 계정은 sudo 명령을 root 권한으로 사용할 수 있게 된다.

둘째, 일반사용자를 추가한 후 /etc/group 파일을 편집하여 해당 계정 사용자의 구룹을 admin에 추가해 준다.

# sudo useradd -n -d /home/user1  user1
# sudo passwd user1
passwd :

# sudo vi /etc/group
...
(중략)
admin:x:115:isjang,user1
(중략)
....

:wq

admin 그룹의 id 는 115번이며 isjang은 우분투 설치시 생성해서 root 권한을 실행할 수 있는 이미 발급되어진 계정이다. user1 은 isjang옆에 코마(,) 로 추가해 준다.

그리고 나서 user1 으로 로긴하면 sudo 명령을 사용할 수 있게 된다.

셋째, 우분투 이외의 일반적인 리눅스 시스템에서 su 나 sudo 의 경우는 관리자 외의 일반계정 사용자들이 사용할 필요가 없는 것들이다. 그런데 그룹사용자 외에는 위 명령 자체를 실행하지 못하도록 하려면 해당 화일의 그룹을 wheel 로 변경한 다음 wheel 그룹에 사용자들을 넣어주고 그 외의 계정 사용자들은 명령어 접근 자체를 제한 시켜 시스템 보안을 높일 수 있다.

이것은 wheel 그룹을 생성하여 추가해 주는 방법인데 이때는 역시 해당되는 그룹을 추가해 넣기 위하여 visudo 명령어를 이용하여 /etc/sudoers 파일을 직접 편집하는 것이다. 이때 주의할 점은 편집시 조심해야 한다는 것이다. 잘못 편집하여 내용이 조금이라도 틀릴 경우가 발생하면 sudo를 아예 사용할 수 없는 불상사가 발생할 수 있을지도 모르기 때문이다. ^^;;

# su root
# visudo  하여 편집모드로 들어간 다음
맨 하단 부분에
%wheel ALL=(ALL) ALL 를 추가한 다음 빠져나온다.
# whoami
root
# chgrp wheel /bin/su /usr/bin/sudo  // 만일 우분투에서 sudo 를 이용하여 이 행을 실행하면 setuid 가 사라지므로 root 비밀번호를 주지 않았을 경우에는 실행하면 안된다.
# chmod o-rwx /bin/su /usr/bin/sudo
# vi /etc/group
...
wheel:x:1001:user2,user3
...

:wq


# /etc/sudoers
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%wheel ALL=(ALL) ALL

혹시 우분투에서 위와 같이 세번 방법으로 구지 따라하다가 낭패를 보신 분들은 싱글모드로 부팅하여 root 비밀번호를 획득해야 하거나 root 비밀번호를 잃어버렸을 경우 최악의 경우 시스템을 재설치해야 할 수도 있다.

우분투 또는 리눅스에서 Grub 을 이용하여 멀티부팅을 할 경우 해당 리눅스라벨을 선택한 후 싱글모드로 부팅하기 위해서는
GRUB 메뉴에서 e 를 누르고

kernel 을 커서에 맞추고 다시 e 를 한번 더 누른다음
맨 끝줄에 single 을 타이핑 한 후 엔터키를 친다. 그리고 마지막으로
b 를 누르면 되는데 b 는 booting 의 약어다.


wheel 그룹에 대한 간단한 설명
출처 - http://www.kernel-panic.org/wiki/GroupWheel

그룹 (Wheel)

휠그룹은 무엇을 위한 것인가? 대부분 오랫동안 사용되어오면서 모호한 표현이라 생각한다. 이것은 사용자 권한을 나누기 위해 사용된다. root, 휠그룹, 그밖의 사용자로 3개의 계층으로 분류되어 있다.

보통 휠그룹은 그에 속한 그룹 사용자들만 su root 를 사용할 수 있도록 하는 기능이다. FSF(자유소프트웨어 재단) 그룹은 이 원칙에 별로 따르지 않는데 왜냐하면 그것이 수학적 알고리즘이 아니기 때문이다.

사용자를 최소로 구분하는 것은 sudo 에 의한다. 가장 많은 sudo 권한을 위한 자격으로 휠그룹 멤버쉽이라 불리는 것이 있다.

역사적으로 말하면 그것은 초기 BSD중의 하나에서 시작되었다 생각한다.

휠그룹을 만들므로써 휠의 기능을 쉽게 다시 만들 수 있으며 그리고 su 와 sudo (둘다 setuid 프로그램이다.)를 wheel 그룹으로 만들고 나서 다른 사용자에 대해서는 사용권한을 제거한다.

  # chgrp wheel /bin/su /bin/sudo
  # chown o-rwx /bin/su /bin/sudo

물론 이것은 실제적으로 정상적인 사용자들에게 su와 sudo 를 사용할 수 없게 만든다. 문제는 서버에 어떤 정상적인 사용자들이 있는가이다.

2008/10/10 17:03 2008/10/10 17:03
Posted by 길목


윈도우 XP 가 설치되어 있는 Sens R20 노트북에 유닉스 하나 리눅스 하나를 더 설치하려고 노력해 보았다. 하드디스크 전체 용량이 80기가 이중 윈도우 40 기가 솔라리스 20 센토스 20 이렇게 설치하려고 했다.

순서는 Win XP --> 솔라리스 10 --> CentOS 5.2 순으로 설치하였다.

기존에 돌고 있는 Win XP 를 가지고 C:, D: 로 분할되어 있는 하드디스크중 D: 파티션에 집중하여 OS를 설치시도함.

솔라리스 10부터 설치하였다. 먼가 진행되어가서 기분이 좋긴 하였으나 다 끝나고 나니 조금 이상한 기분이 들기도 한다. 암튼 윈도우즈 시스템을 또 날려버렸는가 싶어 걱정하다가 나중에 확인해 보니 설치가 끝나지 않은 상태에서 전원이 나가버려서 생긴 문제가 있었다. 그래서 시간을 내어 재설치 작업을 끝내고 나니 익숙한 GRUB 이 뜬다.

솔라리스 설치할 때 언어를 한글로 선택했으나 나중에 확인해 보니 X-Windows 를 제대로 띄우지 못해 에러를 뿌릴때마다 글씨가 깨져 나온다. 노트북에서 솔라리스 설치해서 사용하는 것은 쉽지 않은 일이라 다시 느낀다. 그리고 CentOS를 설치한다. 이걸 설치하려고 하니 MB-BIOS 에러가 난다. 그렇지만 한참 지나서 설치는 계속 진행된다. ^^;; 포기하려고 했던 시간만큼 다시 시간을 내어 설칠르 진행한다. 역시 리눅스가 제일 깔끔하게 설치진행되어간다는 느낌이다.

그런데 리눅스를 설치하고 나서 재부팅 한 후 Grub 이 떴는데 솔라리스 선택사항이 없어져 버렸다. 그래서 인터넷을 뒤져본 결과 아래 내용을 발견한다.
그래서 현재 구성을 그대로 놓아둔채로 솔라리스를 재설치한다. 솔라리스 설치작업은 총 40~50분정도 잡아먹는다.

아래 설명되어 있는 것중에서
CentOS 리눅스의 grub.conf 를 편집하여 아래와 같이 솔라리스부팅을 위해 아래와 같이 추가해 주고 재부팅하면 솔라리스 10 부팅이 가능하다. 다만 이렇게 선택했을 때 솔라리스를 설치할 때 나오는 grub 이 한번 더 실행될 뿐이다.

title Solaris 10
     rootnoverify (hd0,2)
     chainloader +1

------
출처 : http://kr.blog.yahoo.com/rock4350/folder/9.html

1. 부트 관리자로 솔라리스 10의 grub를 이용한다.
  (리눅스의 grub에선 솔라리스 영역을 인식 못 함. 따로 패치가 있는지는 모르겠음)
  그러므로 솔라리스의 /boot/grub/menu.lst에 리눅스와 윈도우를 추가한다.
 
   default 2        <--- 0부터 시작. 여기선 Windows XP가 기본 부팅 값
   timeout 20       <--- 대기 시간(초)
   splashimage /boot/grub/splash.xpm.gz

   title Solaris 10
         root (hd0,2,a)               <--- 0,2 = 1번 하드, 3번 파티션
         kernel /platform/i86pc/multiboot
         module /platform/i86pc/boot_archive

   title Solaris failsafe
         root (hd0,2,a)
         kernel /boot/multiboot kernel/unix -s
         module /boot/x86.miniroot-safe

   title Windows XP
         rootnoverify (hd0,0)         <--- 0,0 = 1번 하드, 1번 파티션
         chainloader +1

   title Debian GNU/Linux
         root (hd0,5)                 <--- 0,5 = 1번 하드, 6번 파티션
         kernel  /vmlinuz root=/dev/hda6 
         initrd  /initrd.img


2. 부트 영역을 솔라리스 파티션으로 둔다.
  만약 솔라리스를 맨 마지막에 설치한다면 자동으로 그렇게 된다.
 ① 윈도우를 재설치하면 윈도우 파티션이 부트 영역이 되므로 grub가 안 뜬다.
    이때는 리눅스 시디를 이용해 리눅스로 부팅해서 부트 영역을 솔라리스로 다시 잡아 준다.
 
   - fdisk -l /dev/hda 
     Disk /dev/hda: 80.0 GB, 80026361856 bytes
     255 heads, 63 sectors/track, 9729 cylinders
     Units = cylinders of 16065 * 512 = 8225280 bytes
     Disk identifier: 0x4c3e4c3d

        Device Boot      Start         End      Blocks   Id  System
     /dev/hda1               1        1240     9960268+   c  W95 FAT32 (LBA)
     /dev/hda2            1241        8927    61745827+   f  W95 Ext'd (LBA)
     /dev/hda3   *        8928        9729     6442065   bf  Solaris
     /dev/hda5            1241        8213    56010591    7  HPFS/NTFS
     /dev/hda6            8214        8863     5221093+  83  Linux
     /dev/hda7            8864        8927      514048+  82  Linux swap / Solaris
 
   - fdisk /dev/hda
     command (m for help): a     
     Partition number (1-7): 3     <--- 솔라리스 파티션 번호
     command (m for help): w    

 ② 리눅스를 (재)설치하면 리눅스에서도 grub를 설치하기 때문에 부팅할 때 grub가 두 번 뜬다.
    고로 리눅스에선 grub를 설치하지 않거나 이미 설치되었다면 삭제한다.
    
     install-mbr -r /dev/hda

2008/09/12 19:56 2008/09/12 19:56
Posted by 길목