본문 바로가기

리눅스

솔라리스의 개념과 특징

Solaris Study 1장,2장

 

 

Network team Lan1 07박상종

 

Chapter1 왜 솔라리스인가?

 

솔라리스의 특징

 

솔라리스는 원래 썬의 하드웨어인 SPARC계열로만 개발이 되었으나 인텔 기계 쪽으로도 이식이 되어 일반 사용자들도 솔라리스의 강력함을 느낄 수 있도록 하였다.

썬은 네트워크 기능이 매우 강력하고, 오랫동안 검증된 구조로 발전되어 확장성이 용이하고 안정성과 보안을 제공하면서도 관리상 오류와 문제 해결 방법을 단순화하여 관리비용을 줄일 수 있다.

 

솔라리스의 장점

  • 확장성이 좋다 – 솔라리스는 멀티 프로세싱 환경을 고려하여 설계되어 확장성이 뛰어나다. 한 시스템에서 백만 개 이상의 프로그램을 동시에 실행할 수 있고 최대 128개의 CPU를 사용할 수 있다.
  • 관리가 쉽다 – 솔라리스는 많은 관리 도구를 제공하기 때문에 오히려 관리가 용이하다. Live upgrade, Hot Patch등의 기능을 통하여 솔라리스가 운영되는 중에도 서비스의 중단없이 업그레이드할 수 있다.
  • 신뢰성이 높다 – 산업계 표준인 Kerberos V5, IPSec 등의 암호화 프로토콜을 지원한다.
  • 네트워크가 강력하다 – 솔라리스는 현존하는 대부분의 전통적인 네트워크 프로토콜과 IPv6, LDAP, XML, J2EE 등 최신 표준을 OS차원에서 지원한다.
  • 범용성이 뛰어나다 – 솔라리스에서는 PDA, PC, 워크스테이션, 메인 프레임등을 손쉽게 연동해서 쓰는 기능을 제공한다. 그리고 단일 제품 내에서 세계의 모든 언어를 지원한다. 소스 코드가 공개되어 있어서 누구나 소스 코드를 볼 수 있다.

 

유닉스의 특징

유닉스는 아주 일관된 운영체제이다. 시스템이 아주 일관된 원칙을 지켜서 처음에 사용하기가 까다롭지만 적응되면 전문가가 될 수 있다.

  • 작은 것이 아름답다 – 유닉스의 가장 기본적인 설계 철학이다. 각각의 프로그램들은 자기만의 기능을 가지고 있다. 그래서 Windows같은 OS와는 달리 개개인이 각각의 기능에 충실하기 때문에 버그가 발생할 우려는 거의 없으며 하나가 이상이 생겨도 다른 프로그램에 영향을 미치지 않는다.
  • 텍스트 파일에 시스템 설정 사항 저장 – 유닉스는 시스템에 관련된 데이터를 아스키 텍스트 파일에 저장하도록 설계가 되어 어떠한 프로그램을 사용하여도 아스키 텍스트 데이터만 처리할 수 있으면 시스템의 현재 설정을 볼 수도 있고, 변경도 가능하다.
  • 파일이라는 단일한 입출력 인터페이스 사용 – 일반적 파일 뿐만 아니라 스크린, 하드디스크, 플로피 디스크 등이 각각의 파일로 간주되어 처리가 된다. 따라서 하드디스크에서 데이터를 받아들이기 위해서는 하드디스크를 나타내는 파일에서 데이터를 읽으면 되고, 스크린에 글자를 찍고싶으면 스크린을 나타내는 파일에 데이터를 쓰면 된다.
  • 이식성 – 유닉스는 현존하는 어떠한 운영체제보다 많은 종류의 컴퓨터에서 동작한다.

 

 

유닉스의 구성

 

커널

  1. 유닉스의 가장 핵심적인 부분으로서 시스템의 하드웨어관리와 관련된 작업을 주로 담당.
  2. 가장 기본적인 운영체제의 작업을 커널에서 하게 된다.
  3. 셸에서 하드웨어에 데이터를 읽거나 기록하려고 할 때, 하드웨어와 이들 사이에서 다리 역할을 한다.

  1. 명령어 해석기이다. 사용자가 셸 프롬프트에서 내린 명령어를 해석해 커널에게 전달, 커널이 실행한 것을 처리해 사용자에게 전달하는 역할을 한다.
  2. 커널과 사용자나 사용자가 실행한 애플리케이션 사이에서 다리 역할을 한다.
  3. 우리가 사용하는 프로그램들은 셸에서 먼저 해석하는 과정을 거치고 그 결과를 커널이 받아서 처리한다.

셸의 종류

 

본셸

유닉스 최초의 셸이다. 모든 유닉스에는 기본적으로 본 셸이 지정된다. 기능면에서는 오래되었기 때문에 취약하지만 현존하는 다른 셸의 모체가 되었다. 본셸의 경우 셸 프롬프트가 $로 표시된다.

 

콘셸

본셸의 기능과 C셸이 가지는 기능을 추가하였다. 셸 프롬프트는 $으로 표시된다.

 

C셸

본셸이 가지지 않은 기능(알리아스, 히스토리, 명령 행 치환, 작업제어)등 을 제공한 근대적 셸의 시초이다. 셸 프롬프트는 시스템의 이름 다음에 %이 붙어서 mentor%의 형태로 출력된다.

 

Z셸

기존의 콘 셸을 다시 재작성 하면서 현대적인 기능을 많이 추가하였다. 명령어 행 편집 기능, 명령어의 이름, 아규먼트 셸 변수 등의 이름을 정정하는 기능, 명령어 완성 기능, 향상된 히스토리 기능 등이 있다. 셸 프롬프트는 C쏄과 동일하다.

 

배시 셸

리눅스에서 가장 많이 쓰이는 셸이다. 콘셸에 C셸의 장점을 추가한 형태이며, 명령어 행 편집 기능, 명령어 행 치환 기능, 명령어의 이름을 완성하는 기능, 명령어의 이름, 아규먼트로 사용된 파일의 이름, 셸 변수의 이름 중 잘못된 것을 정정하는 기능, 강화된 히스토리 기능 등이 있다. 셸 프롬프트는 배시셸의 이름과 버전이 표시되며 $이 추가된 bash-2.05$로 출력된다.

 

TC 셸

C 셸을 재 작성한 셸로서 명령어 행 치환 기능에 덧붙여 명령어 행 편집기능, 명령어 완성기능, 명령어 이름, 아규먼트, 셸 변수의 이름을 정정하는 기능, 향상된 히스토리 기능등이 추가되었다. 셸 프롬프트는 >로 표시된다.

 

 

 

 

셸 스크립트

셸 스크립트는 셸에서 제공하는 기능과 여러 명령어를 사용해 새로운 명령어나 프로그램을 만드는데 주로 사용된다. 여러 셸이 있지만 본 셸이 최초라는 특성에 힘입어 대부분의 셸 스크립트들이 본 셸의 문법에 따라서 작성되었다.

 

디렉토리 트리

유닉스에서는 디렉토리와 파일로 이루어진 디렉토리 트리를 이용한다. root부터 시작해서 밑으로 이어진다.

 

 

 

기본적인 디렉토리

  • root(/) 디렉토리

시스템의 가장 상위에 위치한 디렉토리로서 모든 디렉토리의 출발이된다. 윈도우는 root 디렉토리가 각 파티션마다 존재한다.하지만 솔라리스는 오직 하나의 root디렉토리만이 존재한다. 윈도우에서 C:\Windows 폴더와 같은 역할이다

 

  • /usr 디렉토리

솔라리스의 설치가 끝난후 추가로 프로그램을 깔 때 이 디렉토리에 설치가 된다. 윈도우의 C:\Program Files에 해당한다.

 

  • /etc 디렉토리

시스템에 관련된 설정 데이터가 아스키 텍스트 파일로 저장되는 디렉토리이다. 윈도우에서 제어판과 유사한 역할을 한다.

 

  • /dev 디렉토리

현재 시스템에서 인식하는 모든 하드웨어 장비들에 대한 디바이스 파일이 있는 디렉토리로서 윈도우의 제어판에서 시스템 등록정보와 같은 역할을 한다.

 

  • /export/home 디렉토리

사용자의 홈 디렉토리가 위치하는 디렉토리다. 윈도우에서 C:\My Document에 해당한다.

솔라리스는 혼자가 아닌 여러명의 사용자가 동시에 시스템을 사용할 수 있는 운영체제이기 때문에 root사용자만 시스템의 여러 디렉토리나 파일에 대해 권한을 가지고 일반 사용자들은 오로지 홈 디렉토리 밑에서만 권한을 가진다.

 

 

시스템 관리자가 하는 일은 무엇인가?

시스템 관리자는 항상 시스템이 정상적으로 돌아가도록 꾸준히 개선하고 보완하는 서비스이다. 솔라리스와 같은 유닉스 계열의 기계들은 일반 사용자와 관리자는 엄격히 구별이 되고, 일반 사용자가 관리자의 역할을 수행하는 것은 불가능하다. 시스템 관리자가 해야 할 일은 다음과 같다.

 

사용자관리 – 시스템에 새로운 사용자를 추가하거나 기존에 존재하던 사용자가 더 이상 시스템을 사용할 필요가 없을 때 사용자를 삭제하는 역할을 한다.

소프트웨어 관리 – 시스템의 사용 목적에 따라 데이터 베이스 서버, JDK, C 컴파일러 등 부가 소프트 웨어를 추가로 설치해야 한다.

 

백업과 복구 – 기계에 이상이 생길 경우를 대비해서 미리 다른 곳에 현재 시스템에 있는 데이터를 주기적으로 백업하여 보관하다가, 이상 현상이 발생하면 데이터를 복구시킨다.

 

하드웨어 관리 – 메인 메모리등 필요한 것을 부분적으로 교체를 하거나 추가를 해서 써준다.

시스템 보안 – 네트워크가 발전한 만큼 부지런히 시스템을 감시해준다.

 

 

 

솔라리스 8

 

솔라리스 8은 SunOS 5.8, ONC+ CDE, 이 세가지를 합쳐서 부르는 말이다.솔라리스는 솔라리스 8 2002/02 버전까지 8개의 버전이 존재한다.

CSA&SCNA – 솔라리스 관리 능력을 인정하는 자격증으로 CSA와 SCNA가 있다. CSA는 솔라리스 시스템의 개념, 설치, 부팅등 시스템의 기본적인 관리능력을 인증하는 자격증이고 SCNA는 솔라리스 TCP/IP 네트워크, 랜, DNS 등의 관리 능력을 인증하는 자격증이다.

알면 유용한 사이트

솔라리스 시스템 관리와 관련된 사이트

http://www.sun.com

http://docs.sun.com

http://sunsolve.sun.com

http://www.solarisguide.com

http://www.usenix.org

유닉스용 공개 프로그램

http://www.freshmeat.net

http://www.sunfreeware.com

새 소식을 전하는 사이트

http://www.linuxtoday.com

http://www.lolariscentral.org

스크립트 언어의 홈페이지

http://www.perl.org

http://www.python.org

 

 

Chapter2 솔라리스 처음 사용하기

사용자 계정과 암호

솔라리스를 비롯한 유닉스 시스템을 사용하기 위해서 사용하고자 하는 시스템에 계정이 있어야 한다. 사용자 정보를 몇 개의 파일(/etc/passwd, /etc/shadow, /etc/group)에 나누어 저장하는데, 이 중 /etc/passwd 파일은 시스템을 사용하는 사용자 계정을 담고 있는 중요한 파일이다.

CDE와 마우스

솔라리스에서 사용되는 GUI를 CDE(Common Desktop Environment)라고 부른다

솔라리스 명령어

셸 프롬프트(shell prompt)라고 불리는 기호 다음에 깜빡 거리는 커서에 명령어를 입력하면 그것을 시스템에서 해석하여 작업이 이루어지게 된다.

 

 

명령어의 형식

유닉스에서 사용하는 명령어는 다음 형식과 같다.

셸 프롬프트(shell prompt) 명령어(command) 옵션(option) 아규먼트(argument)

셸 프롬프트 – 시스템이 명령어를 받아들일 준비가 되었음을 알리는 표식이다.

명령어 – 유닉스에서 제공되는 여러 명령어를 의미한다.

옵션 – 각 명령어의 세세한 역할을 지정할 때 쓰인다.

아규먼트 – 파일, 디렉토리, 호스트의 이름 등을 일컫는 경우가 대부분이다.

 

Passwd

Passwd 명령어를 사용하면 사용자의 암호를 바꿀 수 있다.

암호를 설정할 때 몇 가지 제한 사항이 있다.

  • 암호의 길이는 최소 여섯 자에서 최대 여덟 자까지 가능하다.
  • 사용자 이름과 같은 암호를 쓸 수 없다.
  • 적어도 두 개 이상의 영문자와 하나이상의 숫자나 특수기호를 포함해야 한다.
  • 새로운 암호는 기존에 쓰던 암호와 적어도 세글자는 달라야 한다.

 

Man

도움말을 보는데 사용하는 명령어이다.

 

옵션

-a (ALL): 모든 항목의 맨 페이지를 볼 수 있다.

-l: man 페이지의 리스트를 볼 수 있다.

-s: 보고 싶은 맨 페이지의 이름을 man 명령어 다음에 입력을 해야 하는데 같은 이름의 맨 페이지가 여러 섹션에 존재할 경우에는 맨 처음 섹션의 내용만 출력된다. 원하는 맨 페이지가 첫 섹션이 아닐 경우에는 –s 옵션 다음에 섹션(Section) 번호를 같이 입력하여 원하는 섹션을 선택할 수 있다.

-k: -k 옵션(keyword) 다음에 찾고자 하는 키워드를 입력하면 키워드로서 맨 페이지 리스트를 찾아 볼 수 있다.

 

Key 옵션

명령어

내용

<space> 

다음 페이지 출력

<return> 

다음 라인 출력

B

이전 페이지 출력

D

다음 반 페이지 출력

/<단어>

도움말에서 원하는 단어 찾기

N

방금 찾은 단어를 한 번 더 찾기

q 

도움말을 빠져 나가기

 

 

Uname

Uname(UNIX name)명령어는 시스템의 기본 정보를 보는 명령어이다.

 

 

형식

Uname [-a] [-X] [-S system_name]

 

 

옵션

-a(all) : 기본적인 모든 정보를 볼 수이다. OS종류, 시스템 이름, OS 버전, 커널 종류와 패치 버전, 시스템 종류, CPU 종류, 시스템 모델명 순서로 시스템의 정보가 출력된다.

-x : SCO UNIX에서 쓰이는 형태로 확장된 시스템의 정보를 보고자 할 때 쓰이는데 한 줄에 한 가지 정보가 출력된다. 출력되는 내용 중에서 BusType, Serial, Users는 항상 <unknown>이란 값을 가진다. OEM# Origin#도 각각 0과 1이라는 값을 항상 가진다.

-s(System name) : 현재 사용 중인 시스템의 이름을 바꾸려고 할 경우에 쓰는 옵션이다. –s다음에 새로운 시스템의 이름을 입력한다.

 

 

Date

Date 명령어는 실행되는 시스템의 현재 날짜와 시각을 출력하는 명령어다.

 

형식

Date 명령어의 형식은 다음과 같다.

Date [+format]

Date date_time

 

 

 

옵션

'+' date 명령어의 출력을 변경하거나 일부분을 출력할 때는 '+' 기호 다음에 원하는 출력을 다음의 기호를 사용해서 나타낸다.

 

기호

의미

%y 

%m 

%d 

%H 

%M 

%S 

 

 

 

Cal

Cal(calendar)명령어는 달력을 볼 때 사용하는 명령어이다. 이 명령어의 형식은 다음과 같다.

 

형식

Cal [[월] 연도]

 

옵션

  • 월과 연도를 모두 생략하고 date 명령어를 입력하면 올해 이 달의 달력을 출력한다.
  • Cal 명령어 다음에 숫자를 하나만 입력하면 연도의 의미를 지닌다. 즉 달력을 보고자 하는 연도를 의미하며 1에서 9999까지의 숫자를 입력할 수 있다.
  • Cal 명령어 다음에 숫자를 두 개 입력하면 특정 연도와 월의 달력을 볼 수 있다.

 

 

 

Who

현재 시스템에 로그인한 사용자의 정보를 확인한다.

사용자의 이름, 로그인 터미널, 로그인 시간, 마지막으로 명령어를 내린 이후부터의 시간, 셸 정보 등의 정보를 출력한다.

 

옵션

-H: 헤더를 출력하라는 명령어로 각 열의 내용이 어떤 의미가 무엇인지를 나타낸다.

-a: who 명령어의 결과에 덧붙여 부팅 시간, 현재 시스템의 모드, 시스템에서 종료된 프로그램 등의 추가정보를 볼 수 있다.

-m: 이 명령어를 쓰는 사용자와 터미널에 관한 정보만 출력한다.

-q: 시스템에 로그인한 사용자들의 모든 리스트와 수를 출력한다.

-s: 기본 옵션이나 그냥 who 명령어를 입력한 것과 동일한 정보를 출력한다.

-t: 시스템의 시각을 바꾼 시간을 출력한다.

 

 

Whodo

Whodo 명령어는 시스템에 로그인한 사용자들과 그들이 실행하는 명령어를 알 수 있는 명령어이다.

 

형식

Whodo [-l] [user_name]

 

옵션

-/

사용자의 이름, 로그인 터미널, 로그인 시간, 마지막으로 명령어를 실행한 이후 휴지 시간 등의 상세한 내용을 볼 수 있다. 단, 이 사용자가 로그인 하지 않았을 경우나 등록되지 않은 사용자일 경우에는 현재 시각만 출력한다.

 

Whodo –l

시스템을 부팅하지 않고 가동한 시간, 현재 시스템을 이용하는 사용자의 수, 각 사용자들이 시스템을 이용하는 자세한 정보 출력한다

 

Whodo 특정사용자

사용자의 현재 상황을 출력한다.

 

 

 

rusers

rusers(Remote Users) 명령어는 시스템에 속해있는 네트워크 상의 다른 컴퓨터에서 로그인한 사용자의 정보를 출력한다. 즉 로컬 컴퓨터에 로그인한 사용자를 찾아서 보여주는 명령어이다.

 

형식

Rusers [-ahilu] [host …]

 

 

옵션

-a : 응답은 있으나 로그인한 사용자가 없는 시스템도 시스템의 이름만을 출력한다.

-h : rusers 명령어는 응답이 온 순서대로 출력을 하기 때문에 순서가 엉망이다. 이것을 시스템의 이름 순으로 정렬을 하고 싶을 때 –h 옵션(Hostname)을 사용한다.

- i : 출력 순서를 사용자의 휴지(idle) 시간 순으로 볼 때 사용한다.

-u(number of User): 시스템에 로그인한 사용자의 숫자가 많은 것부터 차례로 출력한다.

-l : 사용자가 로그인한 시각과 로그인을 시도한 시스템을 함께 알고 싶을 때 사용한다.

-l 옵션을 사용하면 각 사용자에 대하여 아래의 형식으로 출력된다.

 

Userid hostname:terminal login date login time idle time login host

 

 

id

id 명령어는 사용자의 uid와 gid를 출력하는 명령어이다. uid는 사용자 개개인을 식별하기 위한 숫자이며 gid는 그룹을 식별하기 위한 숫자이다.

 

형식

Id -a [user]

 

옵션

-a

사용자의 기본그룹 이외에도 보조 그룹까지 같이 출력할 때 –a옵션(all groups)을 사용한다

 

last

모든 로그인과 로그아웃이 기록되어 있는 파일의 내용을 분석한다.

 

형식

사용자 명 터미널 로그인을 시도한 호스트 로그인 시간 – 로그아웃 시간( 사용시간 )

 

  • pts/3 또는 console과 같은 내용은 실제로 네트워크를 통해서 로그인한 경우에 할당된 터미널을 나타낸다. 사용자가 사용 후 로그아웃 했을 경우, 언제 로그아웃 했다는 내용과 함께 시스템을 사용한 시각도 함께 표시된다.
  • reboot사용자 : 로그인 터미널도 system boot로 출력되는데, reboot 사용자는 가상의 사용자를 말한다.
  • 마지막 라인에는 /var/adm/wtmpx 파일의 생성 날짜와 시간이 기록되어 있다.

 

Exit

셸 프롬프트에서 exit 명령어를 실행하면 실행중인 셸을 빠져 나간다.

  • 네트워크로 원격 지에서 로그인 했을 때는 exit를 사용하면 셸을 빠져 나감과 동시에 연결도 종료된다.
  • GUI환경을 사용하는 도중 exit를 사용하면 셸을 빠져나가면서 GUI 환경의 터미널도 종료한다.