나의 즐겨찾기 | 블로그홈 | 바로가기 바로가기 | 로그인
아는만큼 보인다
블로그  |  사진갤러리  |  동영상갤러리 방명록  |   즐겨찾기 추가

1. Mysql 기본 사용법

 

->Mysql 데이터베이스 접속하기

# mysql -u root mysql

 

-> mysql 관리자 root 패스워드 설정하기

# mysql -u root mysql

mysql> update user set password = password('shcm0816') where user = ' root';

 

-> 빠져나간후 데이터베이스를 재시작

# mysqladmin -u root reload

 

->패스워드 입력

# mysql -u root -p mysql

 

< 여러가지 관련 명령어 >

 

->데이터베이스 확인

mysql> show databases;

 

->테이블 확인

msyql> show databases; 

msyql> desc user =>동일한 결과

 

2. 데이터베이스 생성 및 삭제

 

->데이터베이스 생성

① 첫번째 방법

# mysql -u root -p mysqlll

    msyql> create database TESTDB;

    msyql> show databases;

 

② 두번째 방법

# ./mysqladmin -u root -p create testdb2

Enter password:

# ./mysql -u root -p mysql

Enter passwor

 

cd /

msyql> show databases;

msyql> exit

Bye

#

 

->데이타 베이스 삭제

# ./mysqladmin -u root -p drop testdb2

Enter password:

 

mysql> drop database testdb2

 

# ./mysql -u root -p mysql

msyql> show databases;

 

3. 새로 생성한 데이터베이스 등록하기

-> 데이터베이스를 새로 생성한 후에는 mysql 이라는 관리용 데이터베이스에 등록

->mysql 이라는 데이터베이스의 db라는 테이블에 TESTDB를 등록한 것

msyql> insert into db  values('%','TESTDB','root','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

msyql> select host, db, user from db

 

4.  Mysql 사용자등록(데이터베이스 소유자)

->mysql 을 사용할 사용자는 반드시 user 라는 테이블에 등록을 해줘야함

msyql> insert into user (host, user, password) values('localhost', 'sspark', password('shcm0816'));

 

->정상적인 등록여부 확인

msyql> select host, user, password from user; 

 

->sspark이라는 사용자로 mysql 데이터베이스로 접속

msyql> mysql -u sspark -p

Enter password:

 

->새로운 데이터베이스를 생성하거나 새로운 사용자를 생성한 후에는 반드시 reload를 해줘야함

# mysqladmin -u root -p reload

Enter password:

 

5. 테이블 생성 및 삭제

msyql> create table testtable (

         ->uid mediumint(4) unsigned DEFAULT '0' NOT NULL auto_increment,

         -> name varchar(12) DEFAULT "" NOT NULL,

         -> email varchar (20) DEFAULT "" NOT NULL,

         -> PRIMARY KEY (uid)

         -> );

Query OK, 0 rows affected (0.00 sec)

msyql>show tables;

 

-> 필드 구조가 정의한 필드구조로 생성되었는지 확인

msyql> desc testtable;

 

-> 삭제

msyql> drop table testtable;

mysql> show tables;

 

6. 테이블속성 및 구조변경법

ALTER TABLE 테이블명 CHANGE[COLUMN] 필드명 필드타입

-> 기존 테이블에 필드 추가하기

 

mysql> er table testtable add column homepage varchar(30);

mysql> desc testtable;

 

-> 기존에 필드 속성 변경하기

ALTER TABLE 테이블명 CHANGE[COLUMN] 기존필드명 새필드명 필드타입

mysql> er table testtable change column homepage home varchar(50);

 

-> 기존에 필드 삭제

ALTER TABLE 테이블명 DROP [COLUMN] 필드명

mysql> er table testtable drop column home;

mysql> desc testtable;

 

-> 기존의 테이블삭제하기

mysql> create table sampletable

mysql> show tables;

mysql> drop table sampletable;

mysql> show tables;

 

7. 데이터 입력하기

mysql> insert into testtable (uid, name, email) values ('', 'parksungsoo', sspark09@soback.kornet.net'" target=_blank>'sspark09@soback.kornet.net');

-> 주의: uid라는 필드는 auto_increment 라는 속성으로 생성했기 때문에 이 속성을 가진 필드들은 실제로 데이터값을 주지 않아도 자동적으로 1씩 증가.

 

->삽입할 필드는 생략가능

mysql> insert into testtable values('','sontaesoo','shutterbug@orgio.net');

 

->특정 필드에만 데이터를 입력할 경우에는 입력할 필드이름만을 나열 그에 해당하는 데이터 입력

mysql> insert into testtable (uid,name) values('','junwooki');

->정상적으로 입력되었는지 확인

mysql> select * from testtable;

 

8. 데이터 검색

SELECT(데이터검색하기)

->데이터검색의 일반적인 방법

 

-> 테이블의 모든 테이터를 검색

mysql> select * from testtable;

 

-> uid와 name 필드만을 조회

mysql> select uid, name from testtable;

->where문을 사용하여 특정 조건에 맞는 데이터만을 검색

mysql> select * from testtable where name = "sontaesoo";

 

->출력 결과 레코드의 중복제거하기(DISTINCT)

SELECT DISTINCT sex FROM testtable

 

->다양한 검색 방법

 

->'soo'라는 문자가 포함된 데이터를 모두 검색

->SELECT name FROM testtable WHERE name LIKE '%soo%'

mysql> select name from testtable where name LIKE '%soo%';

 

->특정한  한 문자로 시작하는 데이터만을 출력할 때에 사용하는 조회형식

SELECT name FROM testable WHERE name LIKE 'park%'

mysql> select name from testtable where name LIKE 'park%';

 

->특정 필드에 데이터가 NULL 인 경우를 조회한것

SELECT uid, name FROM testtable WHERE age IS NULL

mysql>select uid, name from testtable where age IS NULL;

 

-> 특정 필드의 데이터가 NULL이 아닌 경우

SELECT uid, name FROM testtable WHERE age IS NULL

 mysql>select uid, name from testtable where age IS NOT NULL;

 

-> SELECT name, uid, email FROM testtable WHERE savem > 5000 AND sex='M'

-> SELECT name, uid, savem FROM testtable WHERE savem >= 5000 ORDER BY savem  

     DESC

-> SELECT count(*) FROM testtable WHERE sex='M'

-> SELECT avg(savem) FROM testtable WHERE sex='M'

 

9. 데이터 수정하기

->UPDATE 테이블명 SET 필드명=필드값 또는 산술식 {, 필드명 = 필드값 또는 산술식}*[WHERE

   검색조건]

mysql> select * from testtable;

 

->uid 4 번의 데이터에 name 값과 email을 입력해 봄

mysql> update testtable set name = 'junyangmi' where age = 23;

mysql> update testtable set email = jym@superuser.co.kr'" target=_blank>'jym@superuser.co.kr' where age = 23;

mysql> select * from testtable;

 

-> uid 1 인 사람 (parksungsoo)의 나이를 25살로 수정

mysql> update testtable set age= 25 where uid =1;

 

->uid 2인 사람의 나이를 30살로 수정

mysql> update testtable set age = 30 where uid =2;

mysql> update testtable set age = 41 where uid=3;

 

-> 한해가 지났으므로 모든 사람의 나이를 한 살씩 증가

mysql> update testtable set age = age + 1;

mysql> select * from testtable;

 

10. 데이터 삭제하기(delete)

->Delete FROM 테이블명 [WHERE 검색조건]

mysql> select * from testtable;

mysql> delete from testtable where uid = 3;

 

11. 새로운 사용자 등록

-> Mysql 에 root로 접속

./mysql -u root -p

->Mysql DB 선택

mysql> use mysql;

mysql> show tables;

 

->새로운 DB 생성

mysql> create database xlare;

 

-> user 테이블에 입력 (user 라는 테이블에 새로운 사용자의 계정이름과 권한설정을 할 차례)

-> 호스팅사용자에 대한 설정 user테이블에 현재 사용장0ㅔ 대한 권한들을 모두 'N'로 설정

mysql> insert into user valuses('localhost', 'xlare', password('123'),'Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N','N');

 

->user  테이블에 입력확인

mysql> select * from user where user = 'xlare' ;

 

-> db 테이블에 입력

mysql> insert into db values('localhost', 'xlare', 'xlare', 'Y','Y','Y','Y','Y','N','N','N','N','N',);

 

-> db 테이블에 입력 확인

mysql> select * from db where db = 'xlare';

 

-> 새로운 설정을 바로 적용키위해 mysqladmin 이라는 관리자명령어로 mysql 을 재시작

->reload를 해주지 않으면 생성했던 것들이 적용이 되지 않음

# ./mysqladmin -u root -p reload;

 

12. 일반사용자 권한설정(보안사항)

#./mysql -u root -p mysql

Enter password:

mysql> show tables;

--------------------

tables in mysql

--------------------

columns_priv

db

func

host

tables_priv

user

----------------------

 

->columns_priv 테이블

* 모든 특정 DB 의 특정 User 에 대한 특정 테이블의 각 컬럼에 대한 select, insert, update,

   reference 권한을 설정

mysql> desc columns_priv;

->db 테이블

* db라는 테이블에는 특정 DB에 대한 user들의 여러가지 권한들을 설정하는 테이블

mysql> desc db;

-> kebia 라는 데이터베이스의 소유자와 그 권한에 대해서 알아보고자 함.

-> kebia라는 데이터베이스의 소유자는 hyung 이라는 mysqkl 사용자이며 이 hyung 이라는 사용자

     는 이 kebia 라는 데이터베이스에 대한 각종 권한을 볼수 있음.

mysql> select * from db where db = 'kebia';

| localhost | kebia | hyung | Y  |   - - - - - ...........

------------------------

 

->tables_priv테이블

* columns_priv 테이블처럼 각 데이터베이스와 사용자 및 그 테이블에 대한 권한 설정

mysql > desc tables_priv;

---------------------

 

->user 테이블 : 새로운 사용자를 생성할때 이 테이블에 등록

-> 특정 사용자에 대한 Mysql에 존재하는 모든 데이터베이스에 대한 권한설정

-> 특정 사용자의 어떤권한에 대한 사항은 특정 데이터베이스가 아니라 Mysql에 존재하는 모든 데

     이터베이스에 권한이 주어짐.

-> host와 user, password 항목을 제외한 나머지 권한들은 모두 'N"로 설정

->특정한 사용자에 대한 특정한 데이터베이스에 대한 권한을 주려면 위에서 보았던 db라는 테이블

    에서 그 권한설정을 하는것이 안전함

 

13 .Mysql root 암호 변경하기

-> 방법 1:  mysqladmin 이라는 명령어 사용

# ./mysqladmin -u root -p password 12345

 

->방법 2: mysql의 set 이란 명령어로 root 암호 변경

# ./mysql -u root -p mysql

mysql> set password for root=passwd('12345678');

 

-> 방법 3: mysql 데이터베이스로 접속하여 update문을 사용하는 방법

# ./mysql -u root -p mysql

mysql> update user set password=password('12345' where user = 'root';

mysql> flush privileges;

 

->flush-privileges: 권한 테이블을 재시작한다. 권한 설정을 변경했을경우 반드시 재시작

mysql> flush privileges;

 

14. root 패스워드를 잊어버렸을 때는 어떻게?

->단계 1: 실행중인 mysql 종료

# ps -ef | grep mysqld

# killall mysqld

 

->단계 2: grant-table 미사용모드로 mysql시작 및 root로 접속

# .safe_mysqld --skip-grant-tables&

 

-> 단계 3: update문으로 root사용자 패스워드 변경

mysql> update user set password=password('12345') where user = 'root';

mysql> flush privileges;

 

-> 단계 4: 실행중인 mysql 다시 종료

# ps -ef | grep mysqld

# killall mysqld

 

-> 단계 5: 일반모드로 Mysql 재시작

# ./safe_mysqld&

# ps -ef | grep mysql

 

15. 특정 테이블의 구조보기(show columns from 테이블)

-> 특정테이블의 필드명 type, 설정값들을 보기 위한 것

-> 특정한 테이블의 칼럼(필드)구조를 보려면 "show columns from 테이블명"

-> 좀더 편리하여 많이 사용되는 명령문 " desc 테이블명"으로 확인

mysql> show columns form user;

 

->특정 테이블의 인덱스 보기

mysql> show index from user;

 

-> 데이타베이스의 설정상태 보기(show status)

mysql> show status;

# ./mysqladmin -u root -p status

 

-> 데이터베이스의 설정환경변수와 값보기(show variables)

mysql> show variables;

# ./mysqladmin -u root -p variables

 

-> 현재 데이터베이스에 연결된 프로세스들 보기(show processlist)

# ./mysqladmin -u root -p processlist


===========================================================================
출처 : 네이버 블로그

리눅스 시동 과정

제가 아는바로 설명을 드릴 수도 있으나 Linux의 시스템의 시동과 종료과정에 대해서는

워낙 잘 설명된 곳이 있어 아래에 퍼왔습니다. 아래를 찬찬히 훑어보세요.

 

리눅스 시스템 처음으로 시작하기

리눅스 설치를 마치고, CD를 꺼내고 나면, 시스템이 다시 시작 됩니다.

LILO boot :

여러분이 리눅스 설치 중 Default로 선택된 값을 변경 하지 않고 기본적인 설치를 하였다면, 위와 같은 프롬프트 비슷한 것이 나타납니다.

만일, 여러분이 MS 윈도우가 설치된 상태에서 리눅스를 설치 하셨다면, Tab 키를 누르면 부팅 가능한 OS의 Label들(linux  window98 ... )이 나타날 것입니다. 그 중 리눅스 설치시 리눅스를 위한 Label로 선택했던 이름을 입력하시면 됩니다. (Default는 'linux' 입니다.)

레드햇과 마찬가지로 최근 버전인 6.2 up이상을 설치하셨다면, 그래픽 환경의 LILO가 뜨게 됩니다. 그러면, 화살표 키로 가볍게 Linux Label에 해당하는 것을 선택하시고 엔터!
하지만, 선택하지 않아도, LILO는 기본적으로 LINUX를 Loading하게 됩니다.

LILO(LInux LOader)는 주로 MBR(Master Boot Record)에 설치되어, 여러개의 커널로 부팅이 가능한 경우, 커널들이 어디어디에 위치하고 있는지에 관한 정보들을 파악하고 있다가, 사용자로 하여금 사용할 운영체제를 선택하도록 하고, 선택된 운영체제에 맞는 커널을 읽어들이는 역할을 하는 것입니다.

화면에 메시지를 가득 채우면서, 약간의 시간이 경과한 후, 와우리눅스6.2 up의 경우 다음과 같은 화면이 나타납니다.

WOW Linux release 6.2 (Puberty)
Kernel 2.2.16-3kr2 on an i686
hostname login: _

login 에  'root' 라 입력하고,
passwd : 에는 인스톨 할 때 입력했던 패스워드를 입력합니다.

이제, 명령어를 입력하면 반응을 보이게 되는, 준비된 쉘 프롬프트 상태가 되었을 것입니다.
잘 되는지 'ls' 명령을 한 번 입력해 보세요. 파일 이름 같은 리스트가 주루룩 뜬다면 성공입니다.

 

시스템이 시작되는 과정

'리눅스가 시작되면서 화면 가득히 뜨는 메시지들은 도대체 어디서 내보내는 것일까, 무슨 일이 일어나는 것일까.... ???' 라는 궁금증이 생기신 분들도 계실 것입니다.

다음은 로그인 프롬프트를 보여주기 전까지 어떤 작업들이 수행되는지에 관한 절차를 나타낸 것입니다. 물론, 지금 완전한 이해를 해야하는 것은 아닙니다. 이러한 절차를 알고 있다면, 시스템이 시작될 때 어떠한 작업을 추가하거나 삭제하는 것이 가능해집니다. 이곳에 언급된 파일들을 직접 열어 구경해보면, 좀 더 도움이 될 것입니다. 파일들에 관한 설명을 보고 싶으신 분들은 다음의 KLDP문서(리눅스 부트 프로세스)를 참고하세요.

앞부분(커널 압축 해제 이전 부분까지)은 일반적인 운영체제의 로딩 과정 을 설명한 것입니다.

 ↓

BIOS가 시스템 이상 여부 테스트

Booting 할 Drive 선택

선택된 드라이브의 Master Boot Sector 읽어들임

MBR이 파티션 테이블을 읽어  Booting 할 파티션을 알아냄

Booting 파티션의 Boot Sector에 가지고 있는 프로그램이
해당 운영체제를 읽어들임

Kernel 압축 해제

장착된 Hardware 검사, 장치 드라이버 설정

Kernel 이 '/(root 파일시스템)'를 read-only로 mount

FileSystem 검사

'/(root 파일시스템)'를 read/write로 다시 mount

'/sbin/init' 실행

- Kernel이 최초로 실행하는 Program으로, PID가 '1'

/etc/inittab에서 init 실행을 위한 설정 내용 확인

/etc/rc.d/rc.sysinit 실행

- Hostname, Swapping, 시스템 점검, 커널 모듈 로딩

/etc/rc.d/rc 실행 : inittab에 정의된 Default Runlevel을 실행

- 실행될 runlevel의 디렉토리 존재 여부를 확인
- 실행시킬 프로세스 중 이미 실행중인 것을 종료시킴
- /etc/rc.d/rc[0-6].d 내의 'S'로 시작하는 스크립트를 실행

/etc/rc.d/rc.local  : 매번 실행할 내용을 넣어둔다.

/etc/rc.d/rc.serial : 시리얼 포트를 초기화한다.

login (getty) / X-Window (xfm)

 

 

/etc/rc.d/rc[0-6].d에서 [0-6]은 실행할 실행레벨로, 다음과 같은 종류가 있습니다.

0

시스템 종료 halt

1

단일 사용자가 사용하는데 적합하도록, 시스템이 최소화된 상태로 부팅하기 원할 경우 사용

2

다중 사용자 모드. 단 NFS를 지원하지 않음.

3

다중 사용자 모드로, 완전한 Networking을 가능하게 한다.

4

사용되지 않음. 사용자 정의 레벨로 사용될 수 있다.

5

X Window 로 부팅 되도록 할 때 사용

6

Reboot

실행레벨은 시스템의 사용 용도나 형편에 따라, 수행되어야 할 서비스들을 묶어 놓은 그룹 정도로 해석할 수 있습니다. 관리자만이 시스템에 접근해야 할 필요가 있을 경우에는 실행레벨 1로, X window 로 로그인 하려면 실행레벨 5로 정해주면, 알아서 그룹으로 묶여 있는 서비스들이 시작되거나, 종료되는 것입니다.
해당 디렉토리를 검색해 보면 알 수 있겠지만, 각 실행레벨(runlevel)은 각기 실행할 스크립트들을 각각의 디렉토리에 링크파일로 가지고 있어, init에 의해 해당 스크립트를 실행시키도록 합니다.
앞서 말했듯이 사용자의 편의대로 실행레벨을 별경할 수 있으며, 아래 파일을 수정함으로써 가능합니다.

3 부분을 원하는 실행레벨로 바꾸면 됩니다.

#vi /etc/inittab
...
id:3:initdefault: 
...

당연한 이야기겠지만, 위의 실행레벨로 미루어 볼 때, 3 혹은 5가 올 것입니다.
그외, 사용자가 정의 한 특정 실행레벨로 실행 시키고 싶을 때는 실행레벨 4가 올 수도 있을 것입니다.
그러나, 0 혹은 6같은 실행레벨을 준다면, 부팅 즉시 종료 혹은 리부팅을 시키는 것이 됩니다.

 

부팅시, 실행 할 프로그램 추가하기

위의 절차 중에서 /etc/rc.d/rc 스크립트의 실행내용을 보면, /etc/inittab 파일 중 'id'부분에 정의된 실행레벨에서 실행될 스크립트들을 실행시키는 일을 합니다.

실행시킬 스크립트들은 /etc/rc.d/rc[0-6].d 디렉토리에 들어 있는데, 이 파일들은 알고 보면, /etc/rc.d/init.d 디렉토리에 실제적인 실행 스크립트들이 들어 있습니다. 그래서, 추가적으로 실행될 스크립트를 추가하려면, /etc/rc.d/init.d 에 스크립트를 추가하고, 실행되기 원하는 레벨의 디렉토리에서 링크를 만들어 주는 것입니다.

위 보기의 경우, 실행 레벨이 '3'이고, /etc/rc.d/rc3.d 디렉토리에 실행될 스크립트를 가리키는 링크들이 들어 있습니다.

그 링크 이름의 구성을 보면,
앞쪽의 Character가 두가지인 것을 알 수 있습니다.

        'K'  Stop
        'S'  Start

를 의미하는 것으로, 'K15httpd'는

        /etc/rc.d/init.d/httpd  stop

으로 실행되고, 'S85httpd'는

        /etc/rc.d/init.d/httpd  start


로 실행되는 것입니다.
뒤의 숫자는 실행 순서를 나타내는 것으로 번호가 앞서는 것이 먼저 실행됩니다.

이렇게 실행레벨 별로 따로 실행시킬 필요가 없는 경우에는

 /etc/rc.d/rc.local

에 실행시킬 스크립드의 내용을 넣어 두면, 해당 실행레벨의 스크립트들이 실행되고, 마지막으로 항상 스크립트가 실행됩니다.

 

시작 프로세스 관리

부팅시 자동으로 실행되어야 할 서비스들은 사용자의 필요에 따라 실행 여부를 조정할 수 있습니다. 리눅스에서는 다음과 같은 방법들을 사용하여, 쉽게 서비스를 조정할 수 있습니다. 이것은 위에서 살펴 본 디렉토리의 내용들을 보다 쉽게 관리할 수 있도록 한 것입니다.

linuxconf

linuxconf는 서비스 설정 뿐만이 아니라, 시스템에 관한 대부분의 것들을 모두 설정할 수 있습니다. 그 중, 제어->제어판->서비스 활동 제어 메뉴를 선택하여, 아래와 같은 메뉴에서 설정을 변경할 수 있습니다.


ntsysv


X window를 사용하지 않는 사용자들이 주로 사용하는 툴로, 아래와 같이 '*' 선택된 부분이 부팅시 실행되는 서비스입니다. 기본적으로는 현재 실행 중인 레벨의 서비스를 조정하지만, 실행시 다른 레벨을 지정해 주면, 다른 레벨의 실행 서비스도 조정할 수 있습니다.


chkconfig

아래와 같이 모든 실행 레벨의 상태를 텍스트로 보여줍니다. 명령행에서 옵션을 사용해 추가하거나, 삭제할 수 있습니다.  

 

부팅 과정의 Log 확인하기

시스템에 따라 속도 차이는 있겠지만, 부팅 되는 과정이 모니터에 쭈루룩 표시되고 나면, 그 내용을 보고 싶어도 제대로 볼 수가 없습니다.
다음과 같이, 부팅에 관한 Log를 확인할 수 있습니다.

# dmesg

혹은

# cat /var/log/messages

혹은, 간단하게, Shift + Pg Up / Pg Dn 버튼을 이용하여, 볼 수도 있습니다.

 

시스템 종료하기

이제 그만 리눅스를 종료하고, 컴퓨터를 꺼야겠다. 그러나,
이것도 익숙치 않으면, 고민스러운 일입니다.

몇가지 시스템 종료 방법을 소개합니다.

X window 모드로 부팅한 경우

runlevel 5로 부팅한 경우, X window로 Start하게 됩니다.
이런 경우, 좌측의 발바닥을 누르고, --> 로그아웃 --> 시스템 종료를 선택합니다.

 

init

위에서 언급했던 'init '를 이용하여 시스템을 종료하거나, 리부팅하는 것이 가능합니다.

# init  0  (시스템 종료)
# init  6  (시스템 리부팅)

그러나, 이 방법은  여러명의 사용자가 시스템에 연결되어 있는 경우, 좋지 않은 방법입니다.

shutdown

이런 경우, 사용자들에게 미리 대처할 수 있도록 시간여유와 시스템 종료에 관한 메시지를 내보내는 'shutdown'명령을 사용하는 것이 좋습니다.

# shutdown -h now  : 지금 당장 시스템 종료
# shutdown -r  +t5   : 5초 후 리부팅
# shutdown +10 : 10분 후 셧다운
# shutdown -c   : shutdown 예약 취소

halt

halt명령은 아직 정해지지 않은 디스크의 운영 상태를 완성시키고, /var/log/wtmp에 login 과 logout에 관한 내용을 저장하고, 커널에게 reboot 할 것인지, poweroff 할 것인지를 알려, 시스템을 안전하게 종료하도록 합니다.
shutdown -h now 와 같은 명령입니다.

Ctrl + Alt + Del 키로 시스템 종료 및 리부팅

/etc/inittab 파일안의

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

항목에 위와 같이 설정하면, Ctrl + Alt + Del로 리부팅 시킬 수 있습니다.

init 명령으로 실행레벨을 바꾸거나, 종료할 경우, 다중 사용자 모드라면, 현재 사용중인 사용자들이 아무런 대책없이 종료 당하게 되므로, shutdown 명령을 사용하여 사용자들로 하여금 미리 대비할 여유를 주는 것이 좋습니다.

다음 파일 안에 shutdown 시킬 권한이 있는 사용자들을 정의할 수도 있습니다.
shutdown 명령을 -a 옵션과 함께 사용하며, /etc/inittab 파일 안에 정의해 두어야 합니다.

ca::ctrlaltdel:/sbin/shutdown -a  -t3 -r now

-a 옵션에 의해서, 어떤 사용자가 콘솔로 로그인 하여 Ctrl + Alt + Del 키를 입력하면, 다음 파일을 검사합니다.

/etc/shutdown.allow

이 파일에는 셧다운이 가능한 사용자들의 id가 들어 있어, 이중 하나의 사용자 혹은 root사용자가 아니라면, 다음과 같은 메시지와 함께 shutdown은 더 이상 진행되지 않습니다.

shutdown: no authorized users logged in

이렇게 함으로써, 어떤 사용자가 시스템에 물리적으로 접근하여, Ctrl + Alt + Del 키를 눌러 시스템을 실수로, 혹은 고의적으로 잽싸게 종료시키는 것을 방지할 수가 있습니다.


============================================================================
출처 : 네이버 지식인

* APC IP 설정후 (169.254.1.91/92) 반드시 로그아웃을 해야만 설정이 적용됨.

* Cisco 2610 XM IOS 이미지...
  Lab Equipment 용 이미지가 아니라,
ACS 용 이미지가 따로 있기때문에 꼭 용도에 맞는이미지를 받아서
라우터에 설치해야한다. 그렇지않으면 장치에 물려있는 모듈은 물론이고 인터페이스까지도 인식이 안될 수 있다.

* tftp를 이용해 IOS 이미지를 설치하라... 빠르다..
  ① tftp 설치 및 구축 - 적합한 툴을 찾아서 구성 (wintftp 등..)
  ② 이미지 파일ㅇ르 tftp에 놓는다.
  ③ Router 혹은 Switch의 Rom Monitor 모드로 들어간다.
        (라우터 혹은 스위치 전원 On시에 Ctrl + Break 버튼을 연타한다. ROMMON> 이 뜰때까지)
  ④ Router 혹은 Switch에 IP를 부여하고 tftp에서 이미지 파일을 받아온다.
      이때, IP는 같은 네트워크 상의 IP여야하며 gateway는 tftp서버의 주소로 한다. PC와 Router는 크로스로 연결하는것은 기본!!
※ 부팅 순서를 바꾸는것 잊지말것 (핸드아웃 참조..)

*포드에 구성된 라우터의 이미지는 버전이 달라도 상관 없다.
  Netlab 서버에 저장된 IOS 파일을 불러와서 새로이 설치하기때문.

*tftp 서버 구축
 ① wintftp 다운로드/설치
 ② 라우터/스위치 이미지파일을 tftp의 접근가능한 디렉토리로 옮김
 ③ 끝







무언가를 포기한다는 것은 어떤의미인가..

더 이상 그 무언가에 대해 신경을 쓰지않는다. 관심을 가지지 않는다는 의미가 아닌가..

내가 쥐고 있던 보따리의 손을 놓아 버리는 순간..

보따리 속의 모든것들이.. 땅에 부딪히는 순간.. 엉망이 될까?

그 나마 얼기설기 묶여있던것들이 한순간에 제자리를 잃어 버리는것인가.

끝까지 꼭 쥐고 다음 사람에게 잘 넘겨줘야할텐데.. 하지만 지금은...

너무 무겁다.

보따리 매듭이 자꾸 풀어질려구해서 쥐고있기가 너무 힘들다.

하지만 내가 손을 놓는다고 해결이 될까..?

하지만 적어도 내 손은 한결 가벼워지겠지.. 그리고 보따리 속의 내용물들도 자유로워지겠지..

그러나.. 보따리는..?? 너무 어렵다....

Glftpd가 2.0 버전으로 업데이트되었다. 영어라는 언어에 대한 이해 부족으로 소위말하는

많은 삽질을 했다. 삽질을 하면서 나름대로 해석한것을 적는다. 이것은 단지 나의

개인적인 의견일뿐 절대적인것이 아님. 여기에 적는 주된 의도는 까먹지않기 위해서다.

1. Flag 2 에 관하여...


glftpd 의 flag 레벨중 2에 해당하는 레벨에 대한 내용이다.

site chgadmin server lan          그룹의 어드민으로 임명

위의 명령을 실행하면 server의 유저 정보에 flag2가 자동으로 추가된다.

왜냐면 이제부터 lan 그룹의 그룹어드민이 되었기때문이다. 그러나 만일

server가 siteop일경우에는 chgadmin 명령으로 flag2를 얻을경우 siteop의

권한을 제대로 수행할 수 없게된다.

가령, server가 siteop인 상태(flag 1 인 상태)에서 lan 그룹의 어드민이

되기위해 위의 명령을 사용했을경우, server의 flag는 '12'가 되지만,

사이트에서의 권한은 그룹의 어드민으로밖에 주어지지않는다. 이미 lan 그룹의

어드민이기때문에 wan 그룹의 내용을 편집할 수가 없게된다.



해결책 :



site chgamin server wan

위의 명령으로 wan 그룹의 어드민으로 추가시키던지 아니면,

lan 그룹의 어드민을 해지하고 flag 2 를 떼어낸후 진정한 siteop의 권한을

행사하는것이다.



2. Siteop 에 관하여...


siteop (flag1) 은 GOD(신)의 권한이 아니다. 다른 권한을 획득하기 위해서는

거기에 걸맞는 또다른 flag를 추가해야한다.

siteop은 어느 특정 그룹에 꼭 소속되지않아도 그룹간에 편집이 가능하다.


3. Homedir 설정 부분...


site change =wan homedir /site/ftproot/pub/      homedir 지정

home directory를 정할때는 glftpd.conf 파일에 정의 되어 있는

rootpath   /opt/glftpd/ 에서 기준을 삼아 절대 경로로 정해주어야 한다.

glftpd.conf 파일에 정의 되어 있는 "min_homedir   /site/ftproot/"

siteop의 실수를 막기위한 설정 이다. siteop은 site change 명령을 통해

user의 홈디렉(유저가 접근가능한 최상위 디렉)을 설정할 수 있는데,

이 범위는 위 설정 파일의 min_homedir 필드에 설정되어 있는 범위를

벗어날 수 없다. 따라서 유저에 할당할 수 있는 홈디렉은 /site/ftproot/

밑에있는 디렉으로 설정을 해야한다.



4. startup_dir 에 대하여...


site change server startup_dir  /pub/

사용자가 접속했을때 처음 시작하는 디렉토리의 위치를 지정.

이때는 홈디렉토리 지정과는 달리 홈디렉토리로부터 상대경로로

지정해주어야한다. 물론 홈디렉토리의 하위 디렉을 지정해주어야한다.

이전 페이지 [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 ] 다음 페이지 다음 10번째 페이지
 
전체 글보기(62)
잡다..
리누기
내머릿속의..
최근 글
mysql_fetch_..
as
mysql root 패..
PHP 세션 에러
바탕화면 아이콘 크기 ..
지난 글
2009년 1월
2009년 2월
2009년 3월
2009년 4월
2009년 5월
2009년 6월
2009년 7월
2009년 8월
2009년 9월
2009년 10월
2009년 11월
2009년 12월
최근 댓글 전체보기
huanhang2004..
mysql 버전업뎃 되..
시키는대루 햇는데 ..
真棒!!(..
좋은 메뉴네요 스크랩해..
최근 참조글 전체보기
리눅스커널2.6에서 한
 즐겨찾기
 즐겨찾기 글모음
다녀간 블로거 더보기
- jd1000
- 강아지똥
- rudehdi
- redeemerlcc
- ww
2009 12월
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
SERVER™ (fxpnfo)
프로필     
 인기도 :
 이 블로그 점수주기
오늘 전체
방문자 28 40403
구독자 0 2
댓글 0 5
참조글 0 1
HanRSS 로 구독하기Fish 로 구독하기
개설일 : 2004/08/28