리눅스 호스트네임 확인 및 변경

  • 호스트네임 확인

    $ hostname
    
  • 호스트네임 변경

    $ hostnamectl set-hostname '변경할 호스트네임'
    

재부팅 후 변경 사항 반영됨을 확인할 수 있다.


블로그 이미지

나오K

,

우분투에서 스왑 파일 추가하여 스왑 영역 확보하기

  • Swap 영역을 생성하지 않고 리눅스를 설치 한 경우,
  • 가상 호스팅을 통해 제공받은 리눅스 OS상에 Swap 영역이 없는 경우.

각각의 상황에 대해, swap 파일을 생성하여 swap 영역을 확보할 수 있다.

  • Swap 영역의 검사(swap 영역이 없는 경우 아무것도 표시되지 않는다.)

    $ sudo swapon -s
    
  • Swap 파일 생성

    $ sudo fallocate -l 2GB /swapfile        # swap 파일의 생성
    $ sudo chmod 600 /swapfile                # 권한 변경
    
  • 생성한 파일을 Swap 영역으로 변경

    $ sudo mkswap /swapfile
    
  • Swap을 사용하도록 설정

    $ sudo swapon /swapfile
    
  • 영구적 사용
    영구적으로 사용하고자 할 때에는 vi로 /etc/fstab 을 수정하도록 하자.
    /etc/fstab에 Swap 파일에 대한 mount를 아래와 같이 설정한다.

    /swapfile    none    swap    0    0
    


블로그 이미지

나오K

,

Samba 설치 및 설정

1. Samba 설치

$ sudo apt-get install samba

2. Samba 계정 추가

Samba 서비스에 접근하기 위한 계정으로 우분투 사용자로 등록되어 있는 사용자(계정)만 Samba 사용자로 등록할 수 있다.

$ sudo smbpasswd -a 사용자이름

3. Samba 설정

$ sudo vi /etc/samba/smb.conf

Samba 설정 파일을 위 명령을 통해 열고 다음의 설정 내용을 하단에 각자의 설정에 맞게 추가 해 주고 저장.

[공유 이름]
comment = 공유 내용 설명
path = 공유할 폴더의 위치 경로
writeable = [yes | no]         # 쓰기 가능하게 할지 여부
browseable = [yes | no]        # 공유 폴더의 내용을 보이게 할 지 여부
valid users = 사용자이름       # Samba 사용자로 등록한 이름, 해당 내용을
                               # 입력한 경우 이 사용자만 접근 가능하다.
                               # 모든 사용자가 접근 할 경우에는 해당 라인 필요 없음
create mask = 0644
directory mask = 0755

설정 내용 갱신을 위해 Samba 서비스 재시작.

$ sudo service smbd restart
$ sudo service nmbd restart

4. Samba 연결 테스트

외부 네트워크 환경에서도 Samba 연결을 할 수 있다고는 하나 복잡성, 보안성의 이유로 추천하지 않는다고 한다.

아래의 연결 테스트들은 내부 네트워크의 PC들을 대상으로 한다.

  • Windows 에서 Samba 연결
[시작]-[실행]

\\[Samba 서버의 내부 IP 주소] 이렇게 하면 아까 Samba 설정에서 공유한 내용의 폴더가 보일 것이다.(browseable = yes 옵션을 주었을 경우)

만일 browseable 옵션을 no 로 만든 경우에는 다음과 같이
\\[Samba 서버의 내부 IP 주소]\[공유 이름] 식으로 적어주면 바로 접근이 가능하다.

연결이 제대로 된다면 '네트워크 드라이브 연결'로 보다 편하게 이용할 수도 있다.

  • Linux 환경에서 Samba 연결

리눅스 환경에서는 mount 명령어를 통해 간단하게 접근할 수 있다.

$ sudo mount -t cifs //내부ip주소/폴더이름 마운트할폴더위치 -o user=사용자이름,password=비밀번호,workgroup=WORKGROUP,ip=내부IP주소,iocharset=utf8,defaults,noperm

옵션값으로 주어지는 user=... 부터의 내용에서는 공백없이 모든 내용을 입력하도록 한다.

mount 수행 이후 파일시스템 관련 에러 메시지가 나온다면 cifs-utils를 설치.

$ sudo apt-get install cifs-utils

위 mount 방법은 일시적인 방법으로 재부팅마다 매번 실행해주어야 하는 방법이다.

만일 재부팅시에도 자동으로 연결되게끔 설정하려면 /etc/fstab 을 수정

$ sudo vi /etc/fstab

다른 내용은 건드리지 말고 아래와 같이 내용을 추가한다.

//내부IP주소/폴더이름    마운트폴더위치    cifs    defaults,username=사용자이름,pass=비밀번호,iocharset=utf8,defaults,noperm    0    0


'Linux > NAS with UBUNTU' 카테고리의 다른 글

Xubuntu 18.04, FTP 설치  (1) 2018.06.04
포트포워딩 등록하기  (0) 2018.05.20
ipTIME 공유기 DDNS 도메인 연결과 WOL 설정  (0) 2018.05.20
Xbuntu로 NAS 구축하기  (0) 2018.05.20
블로그 이미지

나오K

,

리눅스 로컬서버 열린 포트 확인

참고 : zetawiki

1. netstat

$ netstat -tnlp

2. lsof

$ lsof -i -nP | grep LISTEN | awk '{print $(NF-1)" "$1}' | sort -u

3. nmap

$ nmap localhost
  • nmap으로는 원격 서버로 열린 포트들에 대해 확인 할 수 있다. nmap 호스트네임


블로그 이미지

나오K

,

Xubuntu 18.04 설치 후 기본 설정

설치 내용

  • 언어: 영어
  • 키보드 레이아웃: 한국(101/104키 호환) 타입
  • 업데이트: 설치 중 업데이트 및 서드 파티 앱들 설치
  • 파티션: 기본 암호화 관련 옵션 선택 안함, 루트(/) 그리고 스왑 영역만 생성
  • 지역: 서울
  • 사용자: 알아서,

진행 순서

사실 상 1 ~ 5번 항목은 그냥 개인 설정인 부분들이다. 그냥 사용하는데 아무런 지장이 없으며, 자신이 사용하고자 하는 용도에 맞게 각자 설정을 해주어도 되는 부분이다.
7 ~ 8번 항목 한글 입력 설정은 언어를 영문으로 xbuntu를 설치한 경우 fcitx, fcitx-hangul 설치 및 설정하는 항목을 참조 할 수 있을 것이다.
끝으로 9번 항목은 참조 할 만한 내용일 듯 하다.

1. 바탕화면 아이콘 설정

이미지 상에 3개의 기본 표기 아이콘들이 보이는데 Trash 만 남기기.

[바탕화면 우 클릭 메뉴]-[Desktop settings..]-<Icons 탭에서 남길 아이콘만 선택>

2. 사용하지 않을 듯한 프로그램들 삭제

설치된 어플리케이션들이 그리 많지는 않지만, 정말 사용할 일이 없는 듯 하거나 대체 어플리케이션이 있는 경우 아니면 게임들에 대해 삭제를 하였다.

  • Atril Document Viewer
  • Mines
  • Parole Media Player
  • Pidgin Internet Messenger
  • SGT Puzzles Collection
  • Sudoku
$ sudo apt-get autoremove atril* gnome-mines parole pidgin* sgt* gnome-sudoku --purge

3. 사용할 프로그램들 설치

기본적으로 자주 사용하는 것들 설치.

  • vim
  • build-essential
  • git
  • fonts-nanum (한글 폰트, Naver 무료 제공 폰트)
  • dconf-editor (상세 설정 변경 에디터)
  • fcitx (입력기)
  • fcitx-hangul (한글 입력용)
  • doublecmd (파일관리; Windows Total Commander 대용)
  • smplayer (동영상 재생기)
  • tilda(floating 터미널)
  • cmus (터미널 음악 재생기)
  • shutter (캡쳐 도구)
$ sudo apt-get install vim build-essential git fonts-nanum dconf-editor \
    fcitx fcitx-hangul doublecmd-gtk smplayer tilda cmus shutter

4. xfce4-terminal 링크 파일 생성

주로 단축키-커맨드 입력 순으로 실행하는데 xfce4-… 어플리케이션들이 많기도 하고 길기도 해서 생성.

$ sudo ln -s /usr/bin/xfce4-terminal /usr/bin/term

5. 테마 적용

우분투 유저들이 주로 많이 사용하는 예쁜 아이콘 및 테마를 설치하고 적용

  • numix icons
  • arc-theme

5.1 numix icons 설치

$ sudo add-apt-repository ppa:numix/ppa
$ sudo apt-get update
$ sudo apt-get install numix-icon-theme-circle

5.2 arc-theme 설치

$ sudo add-apt-repository ppa:noobslab/themes
$ sudo apt-get update
$ sudo apt-get install arc-theme

5.3 적용

[xbuntu 메뉴]-[Settings]-[Appearance] 실행

Appearance 창에서 Style, Icons 탭에서 각각 arc 테마와 numix 아이콘들을 적용.

적용 전

적용 후

6. home 폴더 경로 내에 있는 기본 지정 폴더 명칭들 변경

자신의 home 폴더안에 기본적으로 생성되어 있는 폴더들의 명칭들이 아래와 같이 되어 있다.

첫 문자가 대문자로 되어 있는 건데, 이게 터미널 커맨드를 통해 이동할 때는 은근 불편하다…

다음과 같이 해당 파일을 vi로 열어 원하는 이름으로 수정한 후 저장 해 주면 된다.

$ vi ~/.config/user-dirs.dirs

그리고 실제 home 경로에 위치하고 있는 폴더들의 이름들도 user-dirs.dirs에서 수정한 이름과 동일한 이름으로 변경 해 줄 것.

$ mv ~/Desktop ~/desktop
... (_나머지 home 경로의 기본 폴더들도 모두 변경 해 줄 것_)

그림상에 남아있는 ‘Desktop’의 첫 글자가 대문자인 폴더는 재부팅 이후 삭제 해 주면 된다.


!주의: 해당 작업을 마치고 나면 재시작을 해보자.

위 그림과 같이 에러 메시지 창이 부팅시에 뜰 것이다. 내용은 대충 blueman-service 설정에 지정된 home 경로의 Downloads 폴더가 없다는 내용이다.(리눅스는 Windows와 달리 대소문자를 구분한다)
blueman-service는 블루투스 관련 프로그램의 서비스라는데, blueman은 설정 파일을 사용하지 않고 dconf를 통해 설정을 해야 한단다.(1)

‘dconf-editor’를 실행하고 아래 경로로 이동하여 폴더 경로를 바꾸면 된다.

/org/blueman/transfer/shared-path

7. 한글 입력 설정

[xbuntu 메뉴]-[Settings]-[Language Support] 실행

keyboard input method system 을 fcitx로 선택 후 재부팅하자.
(아마 재부팅 없이 바로 적용 할 수 있는 방법이 있을 것 같긴한데 잘 모르겠다.)

재부팅을 완료하면 상단에 위치 해 있던 패널에 fcitx 입력기 아이콘이 생긴 것을 볼 수 있다.(아직 한글 입력은 안되는 상태)

이 아이콘을 클릭하면 Configure 메뉴가 나온다.

[Input Method Configuration 창]-[Input Method] 탭에서 ‘+’ 버튼으로 한글 입력기를 추가.

그 다음으로, [Input Method Configuration 창]-[Global Config] 탭에서, Trigger Input Method 단축키를 한/영키로 변경 해 준다.

8. Vim, 편집모드에서만 한/영 입력하기

vim의 경우, 편집모드, 명령모드, 비주얼모드등 3가지 기본 상태가 있는데, 사실상 편집모드 외에는 한글 입력으로 인한 정상 인식이 불가하므로 한글을 입력하던 도중 다른모드로 가게 되면, 다시 한/영 전환을 해야지만 제대로 된 동작을 할 수 있는 문제가 있다.
다른 입력기(UIM, nabi, Mac의 구름 입력기 등)에서는 ESC 키로 모드 전환 시 입력 방법을 자동으로 변경하거나 하여 이러한 문제 해결을 지원 해 주지만, fcitx 입력기에서는 비슷한 옵션 내용을 찾지 못했다.
그러나 vim 플러그인 fcitx.vim 을 설치하면 이러한 문제를 깔끔하게 해결 할 수 있다.

  • fcitx.vim 플러그인 다운로드
    $ git clone https://github.com/lilydjwg/fcitx.vim
    

(git repo 이용 말고도 _vim 홈페이지, Script 내용에서도 파일자체로 다운 받을 수 있다.)

  • 정식 release 버전으로 checkout
    $ cd fcitx.vim
    $ git tag
    $ git checkout [릴리즈 tagging 확인된 버전]
    
  • 플러그인 복사 적용
    $ mkdir ~/.vim
    $ cp -r ./plugin ./so ~/.vim/
    

9. Swap 정도 줄이기

리눅스에서 스왑의 정도(빈도)를 결정할 수 있는 커널 속성값(vm.swappiness)이 있는데, 이 값이 지나치게 높게 설정이 되어 있다면 시스템 상에서 보다 많은 스왑 처리가 발생한다.
사용하지 않고 있는 RAM 메모리가 아무리 많이 남아 있다고 해도 이 값이 높게 설정이 되어 있다면 스왑이 발생하여 예기치 않은 성능 저하등의 문제가 발생할 수 있다.

해당 값의 범위는 0 ~ 100으로 일반적으로 리눅스 시스템 상에서는 60으로 설정이 되어 있는 듯하다.

내용
vm.swappiness = 0 스왑 사용안함
vm.swappiness = 1 스왑 사용 최소화
vm.swappiness = 60 기본값
vm.swappiness = 100 적극적으로 스왑 사용

메모리 여유가 충분하다면 성능향상을 위해 10 정도를 권고한다고 한다.(2)

  • 해당 설정값의 확인(3가지 방법으로 확인이 가능)

    $ sysctl vm.swappiness
    _또는_
    $ sysctl -a | grep swappiness
    _또는_
    $ cat /proc/sys/vm/swappiness
    
  • 변경
    /etc/sysctl.conf 값에 vm.swappiness 값을 변경하면 된다.(해당 속성값이 없는 경우 새로 추가)

    $ sudo vi /etc/sysctl.conf
    

이후 적절한 값을 세팅 해주고 변경 내용이 적용 될 수 있도록 아래와 같이 커널 환경을 다시 로드한다.

$ sudo sysctl -p


블로그 이미지

나오K

,

멀티 부팅 시 시간 충돌 문제

출처: 듀얼 부팅 시스템에서 시간이 달라지는 문제

멀티 부팅 시스템에서 시간 충돌

운영체제들은 시스템의 파워가 없을 때에도 시간이 계속 유지되도록 머더보드 상에 달려 있는 하드웨어 시계(hardware clock)에 시간을 저장하고 가져온다. 대부분의 운영체제들(Linux/Unix/Mac)은 기본적으로 하드웨어 시계에 UTC로 시간을 저장한다. 비록 몇몇 시스템들(Microsoft Windows)은 하드웨어 시계에 현지 시간(local time)으로 시간을 저장하지만. 듀얼 부팅 시스템에서 하드웨어 시계를 다르게 본다면 이것은 문제들을 일으킨다.

UTC로 하드웨어 시계를 가지는 것의 장점은 UTC가 서머타임이나 표준시간대 오프셋(timezone offset)이 필요 없는 것처럼 다른 시간대(timezone)로 이동하거나 서머타임(Daylight Savings Time, DST)을 시작하고 마칠 때 하드웨어 시계를 재 설정할 필요가 없다는 것이다.

  • UTC: 협정 세계시(국제 표준시)
  • time zone: 타임존, 표준시간대 (미국이나 호주 같은 나라들은 여러 개의 시간대를 가지고 있음)
  • local time: 현지 시간, 지방시, 지역시

윈도우즈가 UTC를 사용하도록 바꾸는 것보다 리눅스가 현지 시간을 사용하도록 하는 것이 더 신뢰성이 있고 쉽기 때문에, 리눅스/윈도우즈 듀얼 부팅 시스템들은 현지 시간을 사용하는 경향이 있다.

1. 리눅스가 현지 시간(locale time)을 사용하도록 설정하기

시스템 기반 버전(15.04 그리고 상위)에서 BIOS clock을 UTC 대신에 현지 시간(local time)으로 설정하기 위해, timedatectl 명령어를 사용해야 한다. the Arch Wiki에 따르면:

현재 사용하도록 설정된 것을 확인하는 명령어:

$> timedatectl | grep local

하드웨어 시계는 timedatectl 명령어로 알아내거나 설정할 수 있다.

하드웨어 시계 시간 표준을 현지 시간으로 변경하기 위해 사용하는 명령어:

$> timedatectl set-local-rtc 1

UTC로 되돌리고 싶다면:

$ timedatectl set-local-rtc 0

2. 윈도우즈가 국제 표준시(UTC)를 사용하도록 만들기

MS 윈도우즈가 UTC로 하드웨어 시계로부터 시간을 계산하도록 만들기 위해,

아래의 내용(contents)을 담은 WindowsTimeFixUTC.reg 라는 이름의 파일을 만들고, 그런 다음 내용을 레지스트리에 병합하기 위해 파일을 더블-클릭한다.

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

참고: 윈도우즈 시간 서비스는 종료 시 위 레지스트리 설정에 관계없이 계속 현지 시간을 기록할 것이다, 그래서 이 명령어로 타임 서비스를 비활성화시키는 것이 편하다 (만약 윈도우즈가 어떤 제3의 시간 동기화 솔루션을 사용하는 중에 시간 동기화가 여전히 요구되어진다면)

sc config w32time start= disabled

변경을 되돌리기
위에서 했던 것처럼 아래의 내용을 담은 파일을 만든 다음 원래의 변화로 병합하기 위해 파일을 더블-클릭한다.

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=-

만약 윈도우즈 시간 서비스가 비활성 상태라면, 다시 활성화 시키는 명령어:

sc config w32time start= demand

각각의 방법에 대해 실행 결과 모두 잘 동작하는 경우들을 확인 할 수 있었다.

  • UTC 하드웨어 시계에 ‘2. 윈도우즈가 국제 표준시(UTC)를 사용하도록 만들기’로 적용 한 방법
  • local time을 하드웨어 시계로 저장하는 Windows 방식 기준에서 ‘1. 리눅스가 현지 시간(locale time)을 사용하도록 설정하기’의 방법

이상 위의 2가지 방식이 각각 잘 적용되었다.

단지 Windows 설정 시, w32time 서비스에 대한 조작을 위해서 cmd 명령창을 관리자 권한으로 실행 시켜 주는 것만 주의하면 될 것이다.

만약 본문의 내용처럼 한쪽에 대한 설정을 완료 했으나, Windows와 Linux 부팅간에 시간 충돌 문제가 계속 발생하고 있다면 다음의 항목들에 대해 다시 한번 살펴 보면 될 것이다.

  • 각각의 설정 완료의 하드웨어 시계의 반영 여부(하드웨어 시계를 직접 저장하는 명령어를 이용하여 반영 시키지 않으면, 단순 OS상의 재시작 절차에 의해 하드웨어 시계는 당장 저장이 되지 않는 듯 하다. 설정 완료 후에는 시스템 완전 종료 혹은 하드웨어 시계를 저장할 수 있는 명령어를 통해 변경된 하드웨어 시각이 반영 될 수 있도록 한 뒤 테스트 할것)
  • Linux에서의 cron(crontab) 이나 혹은 rc.local 설정 / Windows의 batch 작업을 통한 부팅 시, 의도하지 않은 시간 동기화 명령을 실행하고 있지 않는지 살펴 보자. 나 또한 멀티 부팅 시 시간 문제를 rc.local 등의 실행 시작 시 rdate 등의 작업으로 해결하려 했는데, 하드웨어 시계에 의한 차이 때문에 발생하는 문제였던 지라, Windows / Linux 등의 각각의 환경에서 시간 동기화 작업을 해 주지 않는 이상 해결하긴 힘들었던 문제였던 것 같다.


블로그 이미지

나오K

,