리눅스

MacOS, Linux에서 파일 권한 변경하기

2017. 11. 3. 23:41

권한 변경

Windows에도 읽기/쓰기 권한을 변경할 수 있습니다. 보통은 적절하게 권한이 주어지기 때문에 Windows에서는 권한을 변경하는 일이 거의 없습니다.

하지만 MacOS나 Linux에는 실행 권한이 따로 있습니다.
디렉토리의 경우는 실행 권한이 있어야 하위 디렉토리와 파일들을 확인할 수 있습니다. 그렇기 때문에 디렉토리는 기본적으로 실행 권한이 주어집니다.
파일의 경우는 실행 권한이 있어야 터미널에서 실행할 수 있습니다. 터미널에서 실행하는 프로그램/스크립트는 실행 권한이 있어야 합니다. 하지만 파일의 경우 보안을 위해 기본적으로는 실행 권한이 주어지지 않습니다.

권한 설정

터미널에서 실행할 모든 프로그램은 실행 권한을 주어야 합니다.

chmod 755 ~/plexdrive
chmod 755 ./run.sh

~는 홈 디렉토리 입니다. 필자의 경우는 /home/KollHong입니다.
.는 현재 디렉토리 입니다. 기본 값은 홈 디렉토리 입니다. pwd 명령을 통해 현재 디렉토리의 위치를 알 수 있습니다.

755는 권한입니다.
첫째 칸은 소유자(Owner), 두번째 칸은 그룹(Group), 세번째 칸은 다른 사용자(Others)에 대한 권한을 나타냅니다.
여기서 그룹은 소유자가 포함된 그룹입니다.

권한은 읽기/쓰기/실행 세 가지 권한이 있습니다.
영어로 표현할 때는 r (Read), w (write), x(execute)로 표현합니다.
숫자로는 r=4, w=2, x=1를 각각 더한 값으로 표현합니다.

읽기/쓰기/실행 모든 권한을 가질 때는 숫자로는 7, 영어로는 rwx로 표현합니다.

읽기/실행 권한만을 가질 때는 숫자로는 5, 영어로는 r-x로 표현합니다.

다음 명령으로 plexdrive 의 권한을 변경합니다. 소유자는 모든 권한을, 그룹과 다른 사용자는 읽기/실행 권한만 갖게 됩니다.

chmod 755 ~/plexdrive

영어 표현은 ls 명령을 입력하면 볼 수 있습니다.

ls -l ~/plexdrive

plexdrive에 rwxr-xr-x를 권한이 주어진 것을 확인할 수 있습니다.

권한 추가

chmod a+x  ~/plexdrive
chmod u+x  ~/plexdrive

755나, 644와 같은 숫자 대신 문자와 +기호를 사용했습니다.

a+x는 모든 사용자에게 x(eXecute)권한을 주는 것이고, u+x는 유저에게 x권한을 주는 겁니다.

반대로 a-x도 가능하겠죠?

저는 보통 시스템 내부의 파일을 건드리기 때문에 기존에 설정된 권한을 알고 있어서 644나 755같은 권한 설정 방법을 이용합니다.

하지만 권한을 변경하려고 하는 파일이 원래 가지고 있던 권한을 모른다면 u+x와 같은 방법을 사용해야 합니다. 의도치 않게 제 3자에게 권한을 부여하거나, 관련된 사용자에게 권한이 없어질 수 있기 때문입니다.

ls 명령 예

ls에서 -a는 모든 파일 보기(숨겨진 파일 보기) 옵션입니다. -l은 자세한 정보 보기 입니다. 자세한 정보가 필요하지 않더라도 오히려 보기 편해서 -l 옵션은 항상 넣습니다.

'Linux' 카테고리의 다른 글

Linux에서 부팅 시 스크립트 자동으로 실행하기  (1) 2017.11.03
SSH 서버 설치 및 접속하기  (0) 2017.11.03

[Plex에 클라우드 서비스 연결하기 2-2편] PlexDrive 사용하기

2017. 11. 3. 23:41

PlexDrive 설치하기

PlexDrive은 다운로드 받아서 바로 실행할 수 있는 프로그램입니다.

하지만 터미널에서 더 편리하게 이용하기 위해서는 PlexDrive를 이동시켜야 합니다.

MacOS

터미널을 실행합니다. (원격 컴퓨터의 경우는 SSH로 접속해야 합니다. SSH편)

현재 MacOS용 PlexDrive는 5.0 정식 버전이 없습니다. Pre-release를 이용합니다.

아래 명령을 입력하여 PlexDrive를 다운로드 합니다. 원하는 버전에 따라 주소를 바꿉니다.

SSH가 아니라면 PlexDrive 다운로드 페이지에서 다운로드 해도 됩니다.(https://github.com/dweidenfeld/plexdrive/releases)

cd && curl -O https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0-beta.1501610675/plexdrive-darwin-amd64

plexdrive에 실행 권한을 줍니다.(권한 편)

chmod 755 ~/plexdrive

터미널에서 바로 실행할 수 있게 plexdrive를 이동합니다.

mv ~/plexdrive /usr/local/bin

Linux

터미널을 실행합니다. (원격 컴퓨터의 경우는 SSH로 접속해야 합니다. SSH편)

아래 명령을 입력하여 PlexDrive를 다운로드 합니다. 원하는 버전에 따라 주소를 바꿉니다.

SSH가 아니라면 PlexDrive 다운로드 페이지에서 다운로드 해도 됩니다.(https://github.com/dweidenfeld/plexdrive/releases)

cd && curl -O https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0/plexdrive-linux-amd64

plexdrive에 실행 권한을 줍니다.(권한 편)

chmod 755 ~/plexdrive

터미널에서 바로 실행할 수 있게 plexdrive를 이동합니다.

mv ~/plexdrive /usr/bin

PlexDrive 실행

터미널을 실행합니다. (원격 컴퓨터의 경우는 SSH로 접속해야 합니다. SSH편)

plexdrive를 실행합니다.

[PLEXDRIVE] [2017-10-29 23:09] ERROR : Command not found

터미널에 위와 같은 오류가 나오면 plexdrive가 제대로 설치된 것입니다.

PlexDrive는 rclone과 달리 초기 구성 과정이 필요하지 않습니다.
Google Drive만 지원하고 하나의 원격 연결만 지원하지 때문에 PlexDrive로 마운트 명령을 실행할 때 초기 구성 과정을 진행합니다.
PlexDrive는 제작자가 미디어에 최적화 되어 있다고 설명한 만큼 별다른 옵션이 필요하지 않습니다.

터미널에서 plexdrive로 Google Drive 마운트를 위한 명령을 실행합니다.

plexdrive mount -o allow_other -v 4 /Home/KollHong/PlexDrive/GoogleDrive

초기 구성 과정이 시작됩니다.

Google Application Client ID를 물어봅니다. rclone과는 달리 자세한 설명이 안내됩니다.

Google Application Client ID 만드는 방법

Client ID와 Client Secret을 입력하고 나면 하나의 주소가 나옵니다.
이 링크를 복사하여 웹 브라우저에서 열고, PlexDrive에서 마운트할 Google Drive 계정으로 로그인합니다.
로그인 하면 나타나는 token을 복사하여 PlexDrive에 붙여넣습니다.

그러면 PlexDrive가 Google Drive를 마운트하고 캐싱 작업을 시작합니다.

[PLEXDRIVE] [날짜] INFO : First cache build process started...

문제가 없다면 위와 같은 메시지와 함께 첫번째 캐싱이 시작됩니다. Google Drive에 있는 파일에 따라 기다려야 하는 시간이 달라집니다.

[PLEXDRIVE] [날짜] INFO : First cache build process finished!

위와 같은 메시지가 뜨면 이제부터 PMS에서 라이브러리에 추가할 수 있습니다.

오류가 없으면 Linux에서 부팅 시 스크립트를 자동으로 실행하기 편을 참고하여 PMS가 설치된 컴퓨터에서 자동으로 마운트 되도록 합니다.

[Plex에 클라우드 서비스 연결하기 2-1편] rclone 사용하기

2017. 11. 3. 23:41

rclone 설치

rclone은 다운로드 받아서 바로 실행할 수 있는 프로그램입니다.

하지만 터미널이나 명령프롬프트에서 더 편리하게 이용하기 위해서는 rclone을 이동시켜야 합니다.

MacOS나 Linux에서는 안내 페이지에 따라 명령어만 입력하면 rclone 프로그램 다운로드부터 이동까지 해줍니다.

MacOS나 Linux에서 rclone 설치하기

MacOS

  1. rclone 설치 안내 페이지로 이동

  2. 터미널 열기 (원격 컴퓨터의 경우는 SSH로 접속해야 합니다. -SSH편)

  3. 아래 명령을 입력하여 rclone을 다운로드 합니다.

     cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
  4. 다운로드 한 rclone의 압축을 풀고 작업 디렉토리를 rclone폴더로 바꿉니다.

     unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
  5. 터미널에서 바로 실행할 수 있게 rclone을 이동합니다.

     sudo mkdir -p /usr/local/bin
     sudo mv rclone /usr/local/bin/
  6. 남은 파일을 정리합니다.

     cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip

Linux

  1. 다운로드 후에 압축을 풉니다.

     curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
     unzip rclone-current-linux-amd64.zip
     cd rclone-*-linux-amd64
  2. 터미널에서 바로 실행할 수 있게 rclone을 이동합니다.

     sudo cp rclone /usr/bin/
  3. 이동한 rclone에 실행 권한을 줍니다. (권한 편)

     sudo chown root:root /usr/bin/rclone  
     sudo chmod 755 /usr/bin/rclone
  4. man 명령을 통해 rclone에 대한 설명을 볼 수 있게 합니다.

     sudo mkdir -p /usr/local/share/man/man1
     sudo cp rclone.1 /usr/local/share/man/man1/
     sudo mandb 

Windows

윈도는 직접 이동해야 합니다.

  1. rclone 다운로드 페이지로 이동합니다.
    자신의 운영체제에 맞는 프로그램을 다운로드 합니다.

  2. 압축을 풀고 rclone.exe를 C:\Windows로 이동합니다.

rclone 실행

원격 컴퓨터는 SSH를 통해 원격 컴퓨터에 접속합니다.
MacOS, Linux는 터미널을 실행합니다.
Winodws는 명령 프롬프트(cmd)를 실행합니다.

각각의 창에서 rclone을 입력합니다.

위와 같이 나온다면 제대로 설치된 것입니다.

rclone 구성

제대로 설치되었다면 먼저 rclone 구성을 해야 합니다.

터미널에 rclone config 입력합니다.

초기에는 원격 리스트가 없습니다. n을 눌러 새로운 원격 연결을 만듭니다.

name에는 본인이 기억하기 쉬운 이름을 붙여줍니다.

지원하는 서비스의 리스트 입니다. 구글 드라이브는 9번입니다.

Google Application Client ID를 입력하라고 합니다.

기본적으로 rclone은 Google Application Client ID를 내장하고 있습니다. 하지만 Google은 하나의 Application Client ID에 트래픽의 제한을 두고 있기 때문에 개별로 Application Client ID를 만들 것을 추천합니다. Application Client ID는 마운트하려는 구글 계정과 달라도 됩니다.

Google Application Client ID 만드는 방법

생성한 Google Application Client ID와 Client Secret을 안내에 따라 입력합니다.

rclone에 연결할 구글 계정에 로그인 합니다. 본인의 컴퓨터에서 rclone을 실행할 때는 auto config를 사용합니다.

팝업되는 브라우저에서 구글에 로그인 합니다.

원격 컴퓨터이거나 웹 브라우저가 자동으로 나타나지 않으면 n을 눌러 auto config를 사용하지 않습니다.

이후 나타나는 주소를 복사하여 rclone에 붙여넣습니다.

마지막으로 새로운 원격 연결을 확인합니다.

y를 눌러 저장합니다.

목록에 새로운 원격 연결이 보이면 q를 눌러 rclone config를 종료합니다.

rclone 사용

이제 구성된 원격 연결을 컴퓨터에 마운트하여 Plex에서 접근할 수 있도록 합니다.

rclone mount KollHong: --allow-other --no-modtime --write-back-cache -v -v /Home/KollHong/rclone/GoogleDrive

rclone 마운트 명령입니다.

이 전에 원격 연결 이름을 KollHong으로 만들었습니다. 마운트 명령에서는 연결 이름에 :를 추가한 KollHong: 라고 입력합니다.

--allow-other --no-modtime --write-back-cache 는 마운트 옵션입니다. 옵션에 따라 성능 차이가 생길 수 있습니다.

-v는 로그 단계를 줄입니다. 더 많은 로그가 보입니다. -v -v는 가장 많은 로그가 보입니다.

-q를 입력하면 Error 로그만 나옵니다. rclone이 제대로 작동한 것을 확인한 후에는 -v 대신 -q를 사용합니다.

이 명령을 실행하면 clone은 /Home/KollHong/rclone/GoogleDrive에 구글 드라이브의 파일이 보이도록 마운트 할 것입니다.

오류가 없으면 Linux에서 부팅 시 스크립트를 자동으로 실행하기 편을 참고하여 PMS가 설치된 컴퓨터에서 자동으로 마운트 되도록 합니다.

SSH 서버 설치 및 접속하기

2017. 11. 3. 23:41

SSH

Linux나 서버 등은 디스플레이가 연결되지 않은 컴퓨터가 있습니다. 요즘은 개인이 NAS를 사용하는데, 이것도 디스플레이가 연결되지 않은 컴퓨터입니다. 이러한 컴퓨터에서 명령을 실행하기 위한 프로그램 또는 프로토콜이 SSH(Secure SHell)입니다.

SSH로 원격 컴퓨터에 접속하기 위해서는 원격 컴퓨터에는 SSH Server가 실행 중이어야 하고 Client에는 SSH Client가 설치되어 있어야 합니다.

SSH 서버 실행

우분투에 SSH 서버 설치하기

리눅스는 배포판에 따라 SSH 설치 방법이 다릅니다. 제가 가장 많이 이용하는 우분투의 경우는 아래와 같습니다.

우분투에 SSH Server 설치하기

  1. SSH Server 설치
    sudo apt-get install openssh-server

  2. SSH Server 포트 변경
    vi 사용 : sudo vi /etc/ssh/sshd\_config
    GUI 사용 : sudo gedit /etc/ssh/sshd\_config

  3. SSH Server 다시 시작
    sudo /etc/init.d/ssh restart

NAS에서 SSH Server 실행하기

NAS는 외부 모니터가 없고, 대부분 서버로 사용하기 때문에 SSH Server가 포함되어 있습니다. 따라서 SSH Server를 따로 설치할 필요가 없습니다.

  1. Synology NAS에서 SSH Server 실행하기

    Synology NAS

(출처 : papa.2ss.kr/13)

제어판으로 이동
터미널 및 SNMP메뉴로 이동
터미널 탭에서 SSH 서비스 활성화 체크
적용

  1. Qnap NAS에서 SSH Server 실행하기

    Qnap NAS

제어판으로 이동
Telnet / SSH 항목으로 이동
SSH 연결 허용 체크
적용

Client에서 SSH Server 접속하기

  1. Windows에서 SSH 접속하기

    Windows에는 SSH Client가 기본적으로 설치되어 있지 않습니다. 그래서 Windows에서는 SSH Client를 설치해야 합니다.

    일반적으로는 putty를 많이 사용합니다.
    putty 다운로드 하러 가기

    설치 후 putty를 실행합니다.

    (출처 : papa.2ss.kr/13)

    Host Name 칸에 원격 컴퓨터의 주소를 입력합니다. NAS 접속 주소를 입력하면 됩니다.
    Port를 입력합니다. 기본값이 22이기 때문에 22가 적혀 있습니다.
    Connection type에 SSH를 선택하고 Open을 누릅니다.

    그러면 아래와 같은 창이 나타납니다.


    (출처 : papa.2ss.kr/13)

    log in as: 에 관리자 계정을 입력합니다. 보통의 Linux System에서는 root입니다. Qnap NAS에서는 admin입니다.
    그리고 root의 비밀번호를 입력하면 SSH를 통해 원격 컴퓨터에 접속이 됩니다.

  2. MacOS나 Linux에서 SSH Server에 접속하기

    MacOS나 Linux에는 기본적으로 SSH 클라이언트가 설치되어 있습니다.

    MacOS나 Linux는 Terminal을 통해 바로 SSH를 실행하면 됩니다.

    (출처 : eapps.com)

터미널을 실행합니다.
ssh -p 22 root@ns.chcola.net 형식으로 입력합니다.
비밀번호를 물어보는 메시지에 비밀번호를 입력합니다. Server에 따라 RSA Key 경고메시지가 뜨는데 yes를 입력합니다.
그러면 SSH를 통해 원격 컴퓨터에 접속이 됩니다.

이제 원격 컴퓨터에 접속하여 커맨드를 입력할 수 있습니다.

+ Recent posts