Unix MAN 페이지를 직접 작성해보자

Solaris 2006. 2. 21. 16:55 posted by CecilDeSK
반응형
우리는 유닉스를 사용하면서 매뉴얼 페이지를 가끔 참조하게 된다.
그러면서도 우리들 자신도 그러한 매뉴얼 페이지를 만들어 자신의 프로그램을 위해
등록해보고 싶은 경우가 있을 것이다.
다음에 쓰는 내용은 이러한 매뉴얼 페이지를 직접 여러분이 만들어 볼 수 있도록
명료하면서도 단순하고 필요한 내용만을 언급하고 있다.
Here we go~

시스템에 저장된 매뉴얼은 보통 몇가지 섹션으로 나뉘어져 있다.
예를 들어 사용자 명령어들(ls, cat등등)은 1번 섹션이고 시스템 콜은 2번 섹션이다.
다음은 그것들의 리스트이다.

BSD System V Xenix
사용자 명령 1 1 u_man
시스템 콜 2 2 p_man
라이브러리 루틴 3 3 p_man
I/O 와 특수파일들 4 7 p_man
관리자를 위한 파일들 5 4 a_man
게임들 6 6또는 1 u_man
기타 잡다한것 7 5 anything goes
관리자를 위한 명령 8 8 a_man
유지관리를 위한 명령 8 1M u_man 또는 a_man
지역명령(local cmd) l(문자) *
절대명령 o *

예를 들어 'ls'(사용자명령)에 관한 매뉴얼을 보려면 다음의 두가지 방법이 있다.

$ man ls
$ man -s 1 ls

특히 가끔 특정 함수(예를 들어 uname)에 대한 매뉴얼을 보고 싶을 경우가 있는데 이때
우리는 그 함수에 대한 매뉴얼이 아니라 사용자 명령인 'uname'의 매뉴얼을 보여주는
때가 있다. 이때 우리는 두번째의 방법으로 매뉴얼을 볼 수 있다.

$ man -s 2 uname

그럼 매뉴얼 페이지의 소스를 보자.
--------------------------------------------------
." bbspasswd's manual page
.TH bbspasswd 1 "2 Jun, 1997" "안창선의 소프트웨어"
.SH 이름
sysopmgt - tina호스트 프로그램의 user id 관리 프로그램
.SH 사용법
.B bbspasswd
.RI [-pinsct]
.PP
.br
.SH 설명
.I bbspasswd는 tina호스트 프로그램에서
user id를 관리해 주는 프로그램입니다.
user id의 비밀번호나 회원 이름등을 편리하게
변경할 수 있습니다.
.br

.SH 옵션
.TP
.B -p userid password
회원의 패스워드를 변경합니다.
.TP
.B -i userid chageid
회원의 ID를 변경합니다.
.TP
.B -n userid chagename
회원의 이름을 변경합니다.
.TP
.B -s userid jumin-number
회원의 주민번호를 변경합니다.
.TP
.B -c userid pager
회원의 호출번호를 변경합니다.
.TP
.B -t userid pager
회원의 유저 타입을 변경합니다.

.br
.SH BUGS
버그요? 없시요.
.br
.SH 만든이
안창선
kabin@coresw.co.kr
------------------------------------------------
매크로 설명
.TH : 매뉴얼 페이지의 타이틀이다.
.SH : 섹션 해딩을 나타내는데 각 섹션별로 하나씩을 준다.
.TP : 포맷 옵션이다.
.LP : 섹션에서 패러그랩 사이에서 사용된다.
위의 페이지를 실제로 직접 보는 명령은 nroff -man을 사용하면 된다.
즉...

$ nroff -man man.1

일단 매뉴얼이 만들어 졌으면 이것을 여러분이 원하는 섹션에 넣어줘야 한다.
예를 들어 man.1이라면 /usr/man/man1 디렉토레에 넣고
catman 프로그램을 이용하여 등록 시켜 주면 된다.


위의 매뉴얼 소스를 위의 명령으로 보면 다음과 같은 내용을 보여준다.
--------------------------------------------------
bbspasswd(1) bbspasswd(1)


이름
sysopmgt - tina호스트 프로그램의 user id 관리 프로그램

사용법
bbspasswd [-pinsct]


설명
bbspasswd는 tina호스트 프로그램에서 user id를 관리해 주는
프로그램입니다. user id의 비밀번호나 회원 이름등을
편리하게 변경할 수 있습니다.


옵션
-p userid password
회원의 패스워드를 변경합니다.

-i userid chageid
회원의 ID를 변경합니다.

-n userid chagename
회원의 이름을 변경합니다.

-s userid jumin-number
회원의 주민번호를 변경합니다.

-c userid pager
회원의 호출번호를 변경합니다.

-t userid pager
회원의 유저 타입을 변경합니다.

BUGS
버그요? 없시요.

만든이
안창선
kabin@spm.co.kr
반응형

UNIX 지정한 파일외의 모든파일을 지우기

Solaris 2006. 2. 21. 16:55 posted by CecilDeSK
반응형
지정한 파일외에 다 지우기..
가령 디렉토리 안에..
report report_1 report_2 report_3
report_4 report_5 print_1 print_2

위같은 파일이 있씁니다.
저는 report 는 나두고 다지우고
싶습니다.
그냥은 하나씩 rm 을써서
하나씩 지우다가 report 만 안지우면 되겠지만 한번의 명령어로 지우려면 다음과 같이 하면 되겠죠..

rm -f `ls |grep -v '^report$'`

이렇게 하면 report 만 남습니다.

이건 역인용부호 `` 즉 명령어 치환에 의해 가능한것입니다. ls를 써서 파일목록이 출력되면 파이프를 통해 grep의 입력으로 들어가겠죠.. 그다음 grep의 출력이 역인용부호(``)를 이용해서 결과를 rm 으로 전달 되는것입니다.
참고로
rm 의 -f 붙인이유는 어차피 지울꺼니 확실히 지우자구요. :-) 겁나시는분은 -i 로 교체.
grep의 -v 옵션은 매치되지 않는 패턴을 찾는 옵션입니다. 반전이라고 해도 틀리지는 않겠습니다. :-)
grep의 ^은 앞부분을 말하는거구
$은 뒤를 명시해주는거죠..
grep 정규식을 이용하면 정확히 파일을 구별해서 지울 수가 있겠군요..


반응형

솔라리스 루트 패스워드 복구법

Solaris 2006. 2. 21. 16:54 posted by CecilDeSK
반응형
Solaris root password Recover

STEP1: Solaris OS CD를 CDROM 드라이브에 넣은후 컴퓨터를 킨다.
STEP2: 메모리 체크가 끝난후 STOP+A 를 누른다.
STEP3: ok boot cdrom -sw
STEP4: csh
STEP5: setenv TERM sun
STEP6: mount /dev/dsk/c0t3d0s0 /mnt --> t3는 boot disk의 SCSI ID 번호
STEP7: vi /mnt/etc/shadow 파일을 오픈한다.
STEP8:
root:asweB0Fxxxxxx:9974:::::: (예제) 를 다음과 같이 바꿔준다.
root::9974:::::
:wq!
STEP9: reboot
잠시후 기다리면 부팅후 루트 패스워드를 물어 볼것이다.

이때 새로운 패스워드를 입력하면 된다
반응형
반응형

기본적으로 Solaris 2.x에서는 네트웍으로 접속하고 root로 로긴하면 아래와 같은 메세지를 출력하고 접속이 안됩니다.

login: root
Password:
Not on system console
Connection closed by foreign host.

Solaris 2.x는 기본적으로 root사용자는 console에서만 로긴이 가능합니다. (su는 제외) 이것을 console이외에서도 가능하게 하려면

/etc/default/login에서

CONSOLE=/dev/console에 주석을 달면 됩니다.


참고로 CONSOLE=/dev/console의 의미는 root는 /dev/console에서만 login이 가능하다는 의미입니다. 만일 root사용자로 로긴이 불가능하게 하려면 CONSOLE= 와 같이 해 두면 됩니다. (하지만 이 설정은 기본적으로 설치된 in.telnetd등에만 해당됩니다. 만일 ssh등을 사용한다면 이 파일과 상관없이 root계정으로 로긴이 가능합니다.)

ssh2 로 root 로긴 가능하게 하려면 밑에 부분을 수정하자

/etc/ssh2
vi sshd2_config

## User restrictions

# AllowUserssj.*,s[[:digit:]]*,s(jl|amza)
# DenyUsers skuuppa,warezdude,31373
# DenyUsers don@untrusted.org
# AllowGroups staff,users
# DenyGroupsguest,anonymous
PermitRootLogin no #중요부분~ root로긴금지
# PermitRootLogin nopwd

반응형

'Solaris' 카테고리의 다른 글

Unix MAN 페이지를 직접 작성해보자  (1) 2006.02.21
UNIX 지정한 파일외의 모든파일을 지우기  (1) 2006.02.21
솔라리스 루트 패스워드 복구법  (1) 2006.02.21
Solaris 해상도변경(CDE)  (1) 2006.02.21
Solaris smpatch  (2) 2006.02.21