'Linux'에 해당되는 글 32건

  1. 2015.05.07 User 관련 - 계정 추가, sudo 권한 부여, root 계정 활성화 및 su - 권한 제한
  2. 2015.04.09 간단한 bash쉘 스크립트 작성 요령
  3. 2015.04.09 Docker in CentOS 7 minimal
  4. 2015.04.09 CentOS 를 Windows의 Active Directory에 Join 시키기
  5. 2015.04.09 Samba server - Windows에서 리눅스 공유폴더 사용
  6. 2015.04.09 CentOS 6, 7 Minimal 에 Desktop(GUI 환경) 설치
  7. 2015.04.09 CentOS 7 시간설정 및 Time Zone 변경
  8. 2015.04.09 Openstack - icehouse (All-in-one) Install in Cent OS 6.6 minimal
  9. 2015.04.09 Tips of CentOS 7
  10. 2015.04.09 CentOS 6.6 minimal 로 DHCP server 구축

User 관련 - 계정 추가, sudo 권한 부여, root 계정 활성화 및 su - 권한 제한

|


- 2015.02.23

 


1. User Add


$ sudo adduser ubuntu


Adding user `ubuntu' ...
Adding new group `ubuntu' (1001) ...
Adding new user `ubuntu' (1001) with group `ubuntu' ...
Creating home directory `/home/ubuntu' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:                [ 입력 ]
Retype new UNIX password:             [ 입력 ]
passwd: password updated successfully
Changing the user information for ubuntu
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

 


[Tip]


useradd 를 이용해도 계정을 만들 수 있지만 추가 옵션이 필요하다.
그냥 useradd 명령어를 이용할 경우,


1) home directory를 생성하지 않는다.
2) /etc/skel 을 참조하지 않는다.
3) 계정 이용 위해서 비밀번호를 수동으로 추가해야한다.


각 번호 별 해결 방법은 아래와 같다.


1) -m 옵션을 이용한다.
$ sudo useradd -m [계정명]


2) -k 옵션을 이용한다.
$ sudo useradd -k [skel_path] [계정명]
   -> skel_path를 적지 않는 경우, /etc/skel 을 참조


3) 위의 옵션 등으로 계정을 추가한 뒤 아래 명령어 진행
$ sudo passwd [계정명]

 


이 외에도 /etc/passwd 문서에 기본 쉘이 써있지 않는 등의 차이점이 있지만 기본 쉘이 역시나 bash 쉘이므로 상관 없다.
추가적인 것들은 centos 와 같을 것이라 예상 된다.  (다음 문서 참조 : http://kanziw.esy.es/638)

 

 


2. sudo 권한 주기


$ sudo usermod -G sudo ubuntu


정확히 말하면 ubuntu 라는 계정에 sudo 라는 그룹의 권한을 추가해 준 것,
이제 ubuntu 계정으로 전환하여 sudo 권한 이용 해보자.


$ su - ubuntu
Password:
$ sudo reboot                            // 관리자 권한으로만 가능한 명령어
[sudo] password for ubuntu:     // sudo 권한을 가진 ubuntu 계정의 비밀번호

 

 

 


3. root 계정 활성화 및 su - 권한 제한


$ sudo passwd root
Enter new UNIX password:         [입력]
Retype new UNIX password:      [입력]


$ su -
Password:        [입력한 root 패스워드]
#                      // root 권한으로 로그인 되었음 확인 가능

 

 

[adm 그룹만 su - 로 관리자 권한 획득 하도록 설정]


아래 문서의 15번째 줄의 주석을 풀고 필요한 부분 추가

# vi /etc/pam.d/su
 15 auth       required   pam_wheel.so      group=adm

 

ubuntu 계정에 adm 그룹 추가
    # usermod -G adm ubuntu

 

 

 

'Linux > Ubuntu' 카테고리의 다른 글

Ubuntu service 및 daemon 관리, Update & Upgrade  (0) 2015.05.07
Ubuntu Networking 설정, IPv6 비활성화  (0) 2015.05.07
And


간단한 bash쉘 스크립트 작성 요령

|


- 2015.02.04


출처 : http://koreahojin.egloos.com/1249277




#!/bin/bash로 시작하기.

- 스크립트 파일은 첫라인에서 #!/bin/bash 로 시작

- vi 편접기에서 # 기호는 주석을 의미하지만 첫라인에서는 주석 표시가 아님

- 첫라인을 안써 줘도 스크립트 파일이 실행되는 경우가 있는데 현재 사용자의 기본적으로 배쉬 쉘을 사용한다면  

  가능하다.

- #!/bin/bash 대신에 #!/bin/sh 로 써도 된다. sh는 bash 의 심볼릭 링크 이기 ㅤㄸㅒㅤ문이다.


스크립트 파일의 실행방법.

- sh 명령어 사용 ( # sh 파일 이름 )

- 퍼미션 변경 후 실행 ( 실행 권한을 부여 )

-------------참고--------------

.bash_profile 파일에 PATH를 적어 주면 현재 있는 디렉토리의 위치와 상과없이 파일을 실행 시킬수 있음

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



[echo 기본 출력]


- echo 는 화면에 원하는 문자열을 출력시킨다.

- 출력 하고자 하는 문자열 공백이 있다면 전체를 "   " 묶어 주면 된다.

- 예 : echo " bye bye "


변수를 만들고 사용하기

- 형식 :  변수명=변수값

- 사용예 : korea="GOOD"

- 적용예 : echo $korea

- 주의점 : 변수명 다음에 오는 '=' 의 좌우로 공백이 있으면 안된다.

- 변수를 지정할 때는 $를 사용하지 않지만, 변수를 사용할 때는 $ 기호를 변수 앞에 붙여서 사용합니다.

-  C언어 에서 전역변수라고 불리는 것을 쉘 스크립트에서는 환경 변수라고 한다. 환경변수는 export 명령을 사용하여 만든다. 사용자가 로그인을 할때 읽어 들이는 파일중에 /etc/profile 파일이 있다. 이곳을 보면 export로 환경 변수를 만드는 것을 찾을 수 있다.


- example

[root@localhost ~]# cat > example

#!/bin/bash

color=red

korea="good"

echo $color

echo "$color is red"

echo $korea

You have new mail in /var/spool/mail/root

[root@localhost ~]# sh example

red

red is red

good




[read의 사용]


- read 문은 사용자의 표준입력을 받아들여 변수로 저장하는 역할을 한다. 먼저 아래의 예제를 실행해보자

[root@localhost ~]# cat > readsh

#!/bin/bash

echo -n "age: "

read x

echo "Your are $x years old"

[root@localhost ~]# sh readsh

age: 22

Your are 22 years old


- 스크립트 파일을 실행할 때. read문을 만나면 화면상에 커서가 깜박이면 대기상태로 있다.

입력한 값을 read 다음에 오는 변수명(x)에 대입한다.

echo -n 에서 옵션 -n은  줄바꿈을 하지 않도록.




[argument (인자값)]


- 스크립트 파일을 실행하기전에 특수한 값을 동시에 입력하여 결과를 얻을수 있게 할수있다.

- C언어에서 main() 함수의 전달값으로 생각하면된다.

- 예를 들어 # /etc/rc.d/init.d/network start 여기서 netwrok는 스크립트 파일이다. 이파일을 실행하면서 뒷부분에 restart라는 argumnet를 주었다.

- 아직도 먼 말인지 모르겠다면 예제를 만들어 실행해 보자.

[root@localhost ~]# cat > argumentsh

#!/bin/bash


echo "argumnet1 : $1"

echo "argument2 : $2"

echo "argument3 : $3"

echo "Total argument number : $#"

echo "File name : $0"

[root@localhost ~]# sh argumentsh 1arg 2arg 3arg

argumnet1 : 1arg

argument2 : 2arg

argument3 : 3arg

Total argument number : 3

File name : argumentsh

[root@localhost ~]#     


$1 은 첫번째 argument를 나타내며 $2는 두번째, $3은 세번째 argument를 나타낸다.

argument를 입력하지 않을경우, 오류가 나는 것이 아니라 값이 대입되지 않는다.

$#은 전체 argument의 개수를 나타내며 $0은 스크립트 파일의 이름을 나타낸다.




* 현재 디렉터리의 모든 파일 압축


출처 : https://kldp.org/node/69623

현재 디렉터리의 모든 파일을 지정할떄는 보통 * 와일드카드 문자로 가능하지만 히든파일까지는 선택이 안된다.

tar cf test.tar . 명령어로 가능하지만 ls 와 묶어서 사용하는 방법도 있다.


ls -1A | tar cvjf bak.tbz2 -X exclude -T -


1은 한줄에 파일 하나 출력, A는 a와 같지만 . , .. 를 제외.

-T는 묶을 목록을 파일에서 받기 - 는 표준 입력.




And


Docker in CentOS 7 minimal

|


출처 : http://www.server-world.info/en/note?os=CentOS_7&p=docker&f=1





0. 사전 설치


CentOS 7 minimal 설치 및 준비

 

필요 PKG 설치 및 업데이트

# yum install -y ntp wget; yum update -y   

# systemctl enable ntpd; systemctl start ntpd

   


   

1. 방화벽 해제 및 SELinux 해제

# systemctl stop firewalld

# systemctl disable firewalld


# vi /etc/sysconfig/selinux

      7 SELINUX=disabled



SELinux 는 재시작 해야 풀린다.

# reboot





2. Docker 설치


# yum -y install docker

# systemctl enable docker

# systemctl start docker



host로 사용할 centos 공식 이미지 Container 생성, 환영 문구 입력

# docker run centos /bin/echo "Welcome to the Docker World" 





3. Docker 실행


i와 t 옵션을 주어 centos 이미지를 bash 쉘로 docker 실행

(옵션 주지 않으면 들어가지지 않는다. 옵션에 대한 연군 필요)

# docker run -i -t centos /bin/bash



Docker system 의 정보 확인


[root@0cf52e8ba14a /]# uname -a

Linux 0cf52e8ba14a 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux



세션 종료


[root@0cf52e8ba14a /]# exit

exit

#





4. Docker 세션 관리


세션 종료 없이 로그아웃 하기 : Ctrl+p, Ctrl+q 차례대로 입력


[root@d4add7d10c96 /]# [root@localhost ~]# 



세션 종료 없이 종료한, 즉 docker 의 실행 중인 프로세스 확인


# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

d4add7d10c96        centos:7               "/bin/bash"          4 minutes ago       Up 4 minutes                                  thirsty_bartik



다시 해당 세션으로 붙기 (Container ID 필요)

# docker attach d4add7d10c96



세션 연결되어 있는, 실행 되어 있는 컨테이너 shutdown

# docker kill d4add7d10c96

# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES





5. 이미지 관리


존재하는 이미지 보기

# docker images



centos 이미지에게 직접 명령어 실행

# docker run centos /bin/bash -c "yum -y update; yum -y install httpd"



내가 최근에 쳤던 명령어가 작동 했다는 것 확인

# docker ps -a | head -2

CONTAINER ID        IMAGE               COMMAND                CREATED                  STATUS                      PORTS               NAMES

b0eef33afa44         centos:7            "/bin/bash -c 'yum -    2 minutes ago       Exited (0) 56 seconds ago                       thirsty_albattani



지금 상태의 이미지를 새로운 이미지로 저장 - 스냅샷

# docker commit b0eef33afa44 my_image/centos_httpd

48a0f44b93a5a85cee79add36686c6e590463092cb96bf80a5dbc1c156f3d278



새롭게 추가된 이미지가 보인다.

# docker images

REPOSITORY                   TAG                 IMAGE ID                   CREATED              VIRTUAL SIZE

my_image/centos_httpd    latest               48a0f44b93a5        About a minute ago        478.2 MB

centos                                  7                   8efe422e6104            3 weeks ago                  224 MB

centos                             centos7             8efe422e6104            3 weeks ago                   224 MB

centos                                latest              8efe422e6104            3 weeks ago                    224 MB



내가 만든 이미지에 /usr/bin/which httpd 명령어를 실행 한 결과

# docker run my_image/centos_httpd /usr/bin/which httpd

/usr/sbin/httpd





[실습]


내 8081번 포트를 이미지의 80번 포트와 매핑시키면서 이미지에 접근


# docker run -it -p 8081:80 my_image/centos_httpd /bin/bash

[root@d4add7d10c96 /]# /usr/sbin/httpd &

[root@d4add7d10c96 /]# echo "httpd on Docker Container" > /var/www/html/index.html



세션 종료 없이 로그아웃(Ctrl+p, Ctrl+q 차례대로 입력)해서 실행되고 있는 상황 확인

[root@d4add7d10c96 /]# [root@localhost ~]#


# docker ps

CONTAINER ID                 IMAGE                          COMMAND              CREATED             STATUS                 PORTS                     NAMES

bf5e6b508e53        my_image/centos_httpd:latest   "/bin/bash"         10 minutes ago      Up 10 minutes       0.0.0.0:8081->80/tcp   ecstatic_mcclintock



이제 같은 네트워크단에 있는 pc의 웹 브라우저에서 docker server ip:8081 로 들어가면 제대로 사용되고 있는 것을 알 수 있다.





[etc]


1) Ubuntu 14.04 install & Setting


# docker run -t -i ubuntu:14.04 /bin/bash


root@3eaaa23a2e66:/# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

root@3eaaa23a2e66:/# date

Sat Jan 31 00:43:44 KST 2015

root@3eaaa23a2e66:/# apt-get install ntp -y

root@3eaaa23a2e66:/# service ntp start

 * Starting NTP server ntpd  

root@3eaaa23a2e66:/# update-rc.d ntp defaults


And


CentOS 를 Windows의 Active Directory에 Join 시키기

|


출처 : http://social.technet.microsoft.com/wiki/contents/articles/25944.how-to-join-unix-linux-to-active-directory.aspx

          http://in-transit.me/data-center/ubuntu/active-directory-login/

          http://arstechnica.com/civis/viewtopic.php?f=16&t=1187287

          http://www.kiloroot.com/add-ubuntu-14-04-lts-server-to-a-windows-active-directory-domain-fullest-integration/

          http://www.golinuxhub.com/2014/05/how-to-configure-linux-client-to-join.html

          http://serverfault.com/questions/630746/pbis-open-ad-authentication-stops-working-on-ubuntu-with-errors-user-accout-ha




0. 사전 설치


CentOS 7 minimal 설치 및 준비


네트워크 설정. 특히 DNS 를 AD server로 두기

# nmcli c modify eth0 ipv4.dns 10.0.0.100


특별히 원하는 PC의 이름이 있다면 아래 파일을 수정하여 hostname을 변경하자.

# vi /etc/hostname

     cli.kanziw.com



필요 PKG 설치 및 업데이트

# yum install -y ntp wget; yum update -y

# systemctl enable ntpd; systemctl start ntpd





1. 방화벽 해제 및 SELinux 해제


# systemctl stop firewalld

# systemctl disable firewalld


# vi /etc/sysconfig/selinux

      7 SELINUX=disabled


SELinux 는 재시작 해야 풀린다.

# reboot





2. 프로그램 다운로드


http://download1.beyondtrust.com/Technical-Support/Downloads/PowerBroker-Identity-Services-Open-Edition/?Pass=True


위 페이지에 방문하여 자신의 OS 및 커널에 맞는 프로그램 다운로드 주소 복사하여 리눅스에 다운로드

# wget http://download.beyondtrust.com/PBISO/8.2.1/linux.rpm.x64/pbis-open-8.2.1.2979.linux.x86_64.rpm.sh


다운로드 한 파일에 실행 권한 부여

# chmod +x pbis-open-8.2.1.2979.linux.x86_64.rpm.sh





3. 설치


실행 권한 부연받은 스크립트 실행


# ./pbis-open-8.2.1.2979.linux.x86_64.rpm.sh


Creating directory pbis-open-8.2.1.2979.linux.x86_64.rpm

Verifying archive integrity... All good.

Uncompressing pbis-open-8.2.1.2979.linux.x86_64.rpm............

Would you like to install package for legacy links? (i.e.  /opt/likewise/bin/lw-find-user-by-name -> /opt/pbis/bin/find-user-by-name) (yes/no) yes

Would you like to install now? (yes/no) yes

Installing packages and old packages will be removed


                   .  .  .                 


Installing Packages was successful


New libraries and configurations have been installed for PAM and NSS.

Please reboot so that all processes pick up the new versions.


As root, run domainjoin-gui or domainjoin-cli to join a domain so you can log on

with Active Directory credentials. Example:

domainjoin-cli join MYDOMAIN.COM MyJoinAccount





4. Join


AD 의 도메인 및 Join 시 사용할 계정 명을 옵션으로 줘서 Join


# domainjoin-cli join kanziw.com administrator

Joining to AD Domain:   kanziw.com

With Computer DNS Name: cli.kanziw.com


administrator@KANZIW.COM's password:

Warning: System restart required

Your system has been configured to authenticate to Active Directory for the

first time.  It is recommended that you restart your system to ensure that all

applications recognize the new settings.


SUCCESS



계정들이 사용할 기본 쉘을 /bin/bash 로 변경

# /opt/pbis/bin/config LoginShellTemplate /bin/bash


Active Directory의 계정들이 CentOS 의 기본 도메인이 되도록 설정

# /opt/pbis/bin/config AssumeDefaultDomain true


Active Directory의 계정들이 sudo 명령어 사용할 수 있도록 하는 설정

그룹에 제한을 두고 싶으면 AD에서 따로 그룹을 만들어 진한 부분을 해당 그룹 명으로 바꿔주면 된다.

# echo "%domain^admins ALL=(ALL) ALL" >> /etc/sudoers




재부팅 하면 끗. 이제 AD의 계정으로 로그인이 가능하다..!

# reboot



login as: administrator

Using keyboard-interactive authentication.

Password:

[administrator@cent7 ~]$



이제 리눅스의 모든 로컬 계정을 삭제한 뒤 AD 계정만 살리고

각 계정별로 로그인 가능/불가 등의 정책과, 리눅스 상에서 계정별 명령어의 제약을 두어 사용하게 하면 될듯 싶다.



[Tip]


1) domain^admins : Active Directory 의 관리자 그룹

2) domain^users : Acive Directory 의 일반 유저 그룹

3) AD에서 추가하는 그룹은 Linux에도 반영된다.

4) Linux의 Local 계정과 AD의 계정을 다시 구분지어 표시하고 싶으면 아래 명령어를 사용하면 된다.

# /opt/pbis/bin/config UserDomainPrefix domain_name

이렇게 되면 AD의 계정 혹은 그룹을 표시할 때 domain_name\user_name 이라 해야 한다.

5) AD 의 계정 정보 확인

# /opt/pbis/bin/find-user-by-name domain_name\user_name

6) 고급 사용자용 설정 명령어 확인

# /opt/pbis/bin/config --dump

7) AD 연동 - LSA Server 관련 정보 확인

# /opt/pbis/bin/get-status

8) 기타 정보 확인

# /opt/pbis/bin/find-objects --help

ex) # /opt/pbis/bin/find-objects --user USERNAME

# vi /etc/pbis/pbis-krb5-ad.conf





[부족한 점]


1) AD 와의 연결이 끊어진 상태에서 로그인 불가 - Local계정 모두 삭제 및 Root로의 SSH 연결 막았다면 원격지에서 리눅스 이용 불가.

2) 계정 로그인 보안이 어떤 방식을 쓰는지 잘 모른다. Kerberos 를 사용하려나..?

    로그인 시 Using keyboard-interactive authentication. 라고 뜨는데 이 것은 어떤 의미를 담고 있을 지도 알아봐야 한다.

3) AD의 강력한 기능인 GPO는 거의 무용지물. 서버 내에서 GPO로 리눅스는 관리가 되지 않는다.


물론 이러한 개선점들은 유료 프로그램에서 지원해준다고 하긴 한다..ㅎㅎㅎㅎ




And


Samba server - Windows에서 리눅스 공유폴더 사용

|


출처 : http://www.server-world.info/en/note?os=CentOS_7&p=samba&f=1




0. 사전 설치


CentOS 7 minimal 설치


네트워크 설정


필요 PKG 설치 및 업데이트

# yum install -y ntp samba samba-client; yum update -y

# systemctl enable ntpd; systemctl start ntpd





1. 누구나 접근 가능한 공유폴더 생성 및 설정


# mkdir /home/share 

# chmod 777 /home/share 

# vi /etc/samba/smb.conf

     66 unix charset = UTF-8                          // 이 부분 추가

     89         workgroup = WORKGROUP         // Windows Default

     95         hosts allow = 127. 192.168.1.

     97         max protocol = SMB2

    125         map to guest = Bad User           // 추가


2. 공유 폴더 속성 정의

맨 아랫줄에 아래의 옵션을 넣어 작성한다.


[Share]                               // 공유 되어질 이름

   path = /home/share        // 공유 폴더 경로

   writable = yes                  // 쓰기 가능

   guest ok = yes                // guest OK

   guest only = yes             // guest only

   create mode = 0777        // 모든 권한 가능

   directory mode = 0777    // 모든 권한 가능# fully accessed

   share modes = yes         // warn if some people access to a file (?)



# systemctl start smb nmb

# systemctl enable smb nmb 





3. 방화벽 해제 및 SELinux 해제


# systemctl stop firewalld

# systemctl disable firewalld


# vi /etc/sysconfig/selinux

      7 SELINUX=disabled


SELinux 는 재시작 해야 풀린다.

# reboot





4. 공유폴더 접근


이제 같은 대역대에 있는 컴퓨터에서는 누구나 공유 폴더로 접근이 가능하다.


\\server_ip[내가 입력한 이름] 으로 접속하면 된다.

ex) \\192.168.1.21\share





5. 로그인이 필요한 공유폴더 설정


먼저 특정 그룹만 사용 가능토록 하기 위한 보안 그룹 생성

# groupadd security


공유 할 폴더 생성 및 해당 그룹의 기본디렉터리 설정, 권한 설정

# mkdir /home/security 

# chgrp security /home/security 

# chmod 770 /home/security 



smb.conf 파일 설정

# vi /etc/samba/smb.conf

     66 unix charset = UTF-8                  // 추가

     67 dos charset = CP932                   // 추가

     90 workgroup = WORKGROUP          // Windows Default

     96 hosts allow = 127. 192.168.1.

     98 max protocol = SMB2


맨 아랫줄에 추가 설정

[Security]                                   // 보여질 디렉터리 이름

   path = /home/security          // 경로

   writable = yes

   create mode = 0770              // 권한

   directory mode = 0770          // 권한

   share modes = yes

   guest ok = no                         // guest 접근 금지

   valid users = @security        // 접근 가능한 그룹 명


데몬 재시작 및 자동 실행 설정

# systemctl restart smb nmb

# systemctl enable smb nmb 


공유폴더 사용 가능 유저 생성 및 그룹 가입

# useradd -G security cent

# smbpasswd -a cent

New SMB password:                       // set password

Retype new SMB password:           // confirm

Added user cent.


이제 지정한 계정 및 패스워드로 해당 공유 폴더 접근하면 된다.





6. Active Directory 에 Join 하여 사용하는 경우


$ sudo chown .domain^users /home/security/


$ sudo vi /etc/samba/smb.conf

[Security]

   path = /home/security

   writable = yes

   create mode = 0770

   directory mode = 0770

   share modes = yes

   guest ok = no

   valid users = @domain^users


(권한을 적절히 수정한 다음 @domain^users 에 계정 이름을 넣으면 그 계정만 사용할 수 있는 공유폴더가 생성된다.)



Active Directory 에 계정이 있다 하더라도 samba server를 이용하려면 smbpaasswd 로 계정을 생성해줘야한다.

Active Directory 계정과 같은 계정으로 생성을 하게 되면 리눅스 내의 자기 홈 디렉터리와 공유 폴더에 접근 가능하다.

(이 때 생성하는 비밀번호는 Active Directory의 계정과 같을 필요는 없다.)


$ sudo smbpasswd -a username

$ sudo systemctl restart smb nmb




And


CentOS 6, 7 Minimal 에 Desktop(GUI 환경) 설치

|


출처 : https://www.centos.org/forums/viewtopic.php?f=47&t=47088

          http://blog.nowherelan.com/2013/12/24/install-a-desktop-environment-on-centos-minimal-install/



나의 경우는 CentOS 7 Minimal virsion 이다.

(아래에 CentOS 6 방법도 적었다.)


Minimal server 를 운영 중, GUI 환경의 같은 네트워크 상에 있는 브라우저에서 GUI 셋팅을 진행할 수도 있지만

가끔은 server 자체에서 GUI 환경으로 설정을 진행해야 할 때가 있다.




1. 패키지 설치


# yum groupinstall "X Window System"

# yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts



평소에는 CUI 환경으로 사용하다가 필요 시 그래픽환경으로 접속하려면 CUI 환경에서 아래 명령어를 치면 GUI 로 접속된다.

# init 5


이런 경우 GUI 로의 부팅 설정은 따로 필요 없다.





2. GUI 로의 부팅 설정


CentOS 7 부터는 init 을 이용한 부팅이 아니다. 따라서 부팅 설정 방법도 바뀌었다. 아래 파일을 열어보면 방법이 나와있다.

# vi /etc/inittab


아래 디렉터리 안에 있는, 내가 원하는 부팅 방법을 심볼릭 링크로 만들어주면 된다.

# ll /lib/systemd/system/ 


# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

(# ln -sf /lib/systemd/system/<target name>.target /etc/systemd/system/default.target   형식)





3. 재부팅


# reboot






[Tip] In Cent OS 6



1) 패키지 설치

# yum groupinstall -y "Desktop" "Desktop Platform" "X Window System" "Fonts"



2) GUI 실행

$ startx

or

$ /sbin/telinit 5



3) GUI 로의 부팅 설정

# vi /etc/inittab

     id:3:initdefault:    =>    id:5:initdefault:




And


CentOS 7 시간설정 및 Time Zone 변경

|


출처 : http://mwultong.blogspot.com/2006/10/kst-linux-timezone.html

          http://nicolasjo.tistory.com/24



Cent OS 7 을 설치하다 보면 실수로 타임존 설정을 건너뛰곤 한다.

리눅스를 설치할 때 시간대(타임존;Timezone)를 맞추지 않으면, 컴퓨터 시계가 미국 시간인 EST로 나온다.

이 때에는 ntp 를 설치하여 서버 시간을 맞추려 한들 소용이 없다. 서버 자체의 timezone 을 바꿔야만 한다.

이것을 한국 표준시인 KST 로 변경할 필요가 있다.



정상

# date

Tue Jan 27 00:24:08 KST 2015


비정상

# date

Tue Jan 26 09:24:08 EST 2015



서울의 timezone 정보가 담긴 파일을 찾아 서버 시간으로 연결해줘야 한다.

# ls /usr/share/zoneinfo/Asia


이 안에 보면 Seoul 이라는 파일이 존재한다. 이제 이 파일을 서버 시간을 맞춰주는 파일에 심볼릭 링크를 걸어줘야 한다.

먼저 원래 파일 백업한 뒤 심볼릭 링크를 만들어준다.

# mv /etc/localtime /etc/localtime_org

# ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

(백업 없이 덮어씌우려면 -f 명령어를 추가하면 된다.)



이제 date 명령어를 치면 제대로 된 시간이 나오는 것을 확인할 수 있다.

# date

Tue Jan 27 00:24:08 KST 2015



[Tip] date 명령어로 시간 및 날짜 바꾸기

시간 바꾸기 - (24시간제로 입력)

# date -s 00:21:21


날짜 바꾸기

# date -s '2015-1-27 00:21:21'




And


Openstack - icehouse (All-in-one) Install in Cent OS 6.6 minimal

|



openstack icehouse 버전 설치를 쉽게 할 수 있다고 한다.




0. 사전 설치


[Cent OS 6.6 minimal 설치]



[update & ntp 설치]


서버 시간 동기화를 위해 ntp 설치 및 Cent OS update

# yum install -y ntp

# yum update -y

# service ntpd start

# chkconfig ntpd on



[System 설정]


Selinux 및 방화벽 끄기 - 앞 단의 방화벽에서 처리할 것이므로..

# service iptables stop

# chkconfig iptables off

# vi /etc/sysconfig/selinux

disabled


기타 모든 설정이 제대로 작동하기 위해 (Selinux 는 꼭 재부팅이 필요하다.) 시스템 재부팅

# reboot


[Network 설정]


꼭 필요한 것만 적었다.


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=none

NETMASK=255.255.255.0

IPADDR=10.10.15.11

GATEWAY=10.10.15.1




1. 설치


[계정 설정]


stack 이라는 user가 필요하다.

# useradd stack

# passwd stack


stack 계정에게 sudo 명령어를 패스워드 없이 사용할 수 있게 해줘야한다.

그러기 위해 /etc/sudoers 에 쓰기 권한을 주고 수정 후 다시 쓰기 권한을 회수

# chmod u+w /etc/sudoers

# echo "stack ALL=(ALL) ALL" >> /etc/sudoers

# chmod u-w /etc/sudoers


[설치]


stack 계정으로 진행하여 openstack 설치에 필요한 패키지 설치

# su stack

$ sudo yum install -y http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-3.noarch.rpm

$ sudo yum install openstack-packstack


자동으로 openstack 설치에 필요한 옵션 스크립트 작성

(현재 위치하는 디렉터리에 옵션 스크립트가 작성되니 고급 설치를 하고자 하면 해당 파일 수정)

$ packstack --gen-answer-file my_answers.txt


All-in-one 설치~를 하기 전에 내가 경험한, 문제가 됬던 패키지를 미리 설치하고 진행하자.

$ sudo yum install -y mariadb-galera-server-5.5.40-1.el6.x86_64 puppet openssh-clients tar nc rubygem-json openstack-cinder

$ packstack --allinone




'Linux > Openstack' 카테고리의 다른 글

Devstack Install in CentOS 7 minimal  (0) 2015.04.09
Openstack 관련 Site memo  (0) 2015.04.09
Openstack 설치 in Ubuntu 14.04 LTS server with MAAS  (0) 2015.04.09
And


Tips of CentOS 7

|


systemctl [option] [데몬명]


[option]

start      ;  service start [데몬명]

stop      ;  service stop [데몬명]

reload   ;

restart   ;   service restart [데몬명]

status    ;  service status [데몬명]

enable   ;  chkconfig on [데몬명]

disable  ;  chkconfig off [데몬명]


실행중인 service list 보기

    # systemctl -t service 


enabled, disabled 된 service, socket, target 보기

    # systemctl list-unit-files


일부 SysV services 상태 확인. 6 와 마찬가지로 chkconfig off 가능.

# chkconfig --list




# ip addr show        ; ifconfig




커널이 업데이트 되면서 ; 의 역할을 + 으로 표시.

# find / -name abc -exec ls -al {} ;

        => # find / -name abc -exec ls -al {} +




And


CentOS 6.6 minimal 로 DHCP server 구축

|


출처 : http://attiadmin.guyweb.co.kr/server/dhcp.html




0. Cent OS minimal 설치




1. 필요 PKG 설치


dhcp server 설치 되어있는지 확인


# rpm -qa | grep dhcp

=> Client인 dhcp.common만 설치되어있다.


dhcp PKG 설치 & 서버는 시간이 중요하기 때문에 ntp도 설치

# yum install -y dhcp* ntp




2. NIC (Network Interface Card) 확인


먼저는 이더넷 카드에서 멀티캐스팅이 지원되는지 확인해야한다.

ifconfig 명령어를 이용하여 내가 사용하고자 하는 카드에 UP BROADCAST RUNNING MULTICAST 가 있는지 확인


# ifconfig


미지원 시 google 통해 해결... -_-ㅋ;;





3. dhcp 환경설정


dhcp 설정을 위해 설정 파일에 들어가보자.

# vi /etc/dhcp/dhcpd.conf

      1 #

      2 # DHCP Server Configuration file.

      3 #   see /usr/share/doc/dhcp*/dhcpd.conf.sample

      4 #   see 'man 5 dhcpd.conf'

      5 #


/usr/share/doc/dhcp*/dhcpd.conf.sample 파일을 참조하거나 man 5 dhcpd.conf 를 참조하면 될듯하다.

(minimal 설치의 경우 man 파일도 없다. man 부터 설치)

# yum install man

# man 5 dhcpd.conf


매뉴얼 본 뒤 먼저 샘플 파일을 /etc/dhcp/ 로 복사 (나의 경우 dhcp의 버전은 4.1.1)

# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/


이제 샘플 파일을 수정해보자. 아래 내용 이외의 것은 지우거나 주석처리했다.

# vi /etc/dhcp/dhcpd.conf.sample

#ddns-update-style interim;                       # 왜 사용하는지 이유를 모르기에 일단 주석 처리

#ignore client-updates;

#......................

# 아래 subnet {} 에 묶이지 않는 부분은 기본 설정. 각 subnet 마다 특정한 값으로 재설정 가능

#option domain-name "example.org";                                                 # 네임서버를 도메인으로 찾을 경우 사용

option domain-name-servers 168.126.63.1, 168.126.63.2, 8.8.8.8;      # 네임서버, 도메인도 가능

option subnet-mask 255.255.255.0;                                                   # 서브넷 마스크

option routers 20.20.20.254;                                                              # Gate Way Address

option broadcast-address 20.20.20.255;                                             # Broadcast addrestt

default-lease-time 600;                                                                     # 할당된 ip주소를 가질 수 있는 시간

max-lease-time 7200;                                                                       # 할당 받은 ip 주소를 가지고 있을 수 있는 최대 시간

#..............................

# Client에게 할당할 네트워크 주소 및 netmask

subnet 20.20.20.0 netmask 255.255.255.0 {

  range dynamic-bootp 20.20.20.1 20.20.20.253;                                 # 주소를 할당해 줄 범위

# 위에서 설정한 기본 옵션과 다르게 설정 가능

#  default-lease-time 600;

#  max-lease-time 7200;

  # mac 주소 - 고정 ip  설정

  #host ns {

#        hardware ethernet xx:xx:xx:xx:xx:xx;

#        fixed-address 20.20.20.x;

# }

}

#...................................

# 세세하게, 혹은 추가로 더 나눌 수도 있다.

#subnet 10.5.5.0 netmask 255.255.255.224 {

#  range 10.5.5.26 10.5.5.30;

#  option domain-name-servers ns1.internal.example.org;

#  option domain-name "internal.example.org";

#  option routers 10.5.5.1;

#  option broadcast-address 10.5.5.31;

#}



설정한 설정 파일을 실제 설정 파일로 덮어쓰기.

# cp /etc/dhcp/dhcpd.conf.sample /etc/dhcp/dhcpd.conf



dhcp 요청을 받아 들일 인터페이스 설정

# vi /etc/sysconfig/dhcpd

# Command line options here

DHCPDARGS=eth1




4. dhcp 서버 실행


dhcp 및 ntp 서비스 시작 & 리눅스 부팅 시 자동 실행되도록 설정

# service dhcpd.start

# service ntpd start

# chkconfig dhcpd on

# chkconfig ntpd on



임대 정보 확인

# cat /var/lib/dhcpd/dhcpd.leases


※ dhcp server는 udp 67 port를, client는 udp 68 port를 사용한다.




5. test


dhcp server 와 같은 네트워크 카드에 CentOS dhcp client (라고 해봤자 minimal) 설치.

dhcp 로 주소 잘 받아 오는 것 확인했다~!





[Trouble Shooting]


설정 도중 network 를 시작하는 도중 start fail 을 겪었다.

그 이유는 Cent OS NIC Priority 에 관한 것 때문이라고 하며, 1개의 server 에는 1개의 gateway 만 설정되어있어야 한다.

출처 : https://www.centos.org/forums/viewtopic.php?t=39436





[Memo]


Hyper-V 의 network 설정을 내부 network로, 즉 외부와의 통신이 두절되게 만들었는데

이러한 두절된 통신에 NAT 설정을 추가로 하면 여기에서도 외부로 통신이 가능하다.

그것에 대해 나중에 도전할 예정인데 관련 글들을 메모한다.


Cent OS dhcp & nat

http://blog.pages.kr/311

http://blog.naver.com/brown00/80095329275

     => http://cdral.net/754


구체적인(?) 설명

http://blog.naver.com/dlrud2539/220203979671



Windows dhcp & nat

http://blog.pages.kr/312




'Linux > CentOS' 카테고리의 다른 글

CentOS 7 시간설정 및 Time Zone 변경  (0) 2015.04.09
Tips of CentOS 7  (0) 2015.04.09
Cent OS 6.6 에서 nmail 로 메일서버 구축하기  (0) 2015.04.07
DNS master & slave server 만들기  (0) 2015.04.06
서버 시간 동기화(ntpd)  (0) 2015.04.06
And


prev | 1 | 2 | 3 | 4 | next