SFTP편집을 위한 리눅스 폴더 및 파일의 소유자 및 그룹 권한변경하기

 연재작 시리즈글의 일환으로, 이번 포스트에서는 리눅스 컴퓨터(서버)의 폴더와 파일의 소유자와 사용자그룹, 그리고 그 권한에 대해서 알아보고, 리눅스 명령어(CLI 명령어)를 사용해서 특정 폴더나 파일의 소유자와 사용자그룹을 변경하는 방법을 알아보겠습니다.

 

그럼으로써 실질적으로 이전 글에서 설치했던  Nginx가 지정하는 웹루트폴더를 root(관리자)가 아닌 다른 사용자(ubuntu)도 자유롭게 편집가능하게 하려고 합니다. 왜냐? SFTP 접속은 root 사용자가 아닌 ubuntu 사용자로 접속하기 때문에 권한이 주어지지 않으면 SFTP 접속을 통해서 할 수 있는 게 아무것도 없기때문이죠.(파일생성,편집,삭제등). 결국 저는 SFTP 를 통한 파일편집을 위해서 이런 권한문제를 해결하려는 것일 뿐입니다. nano나 vi, vim, emacs 같은 CLI용 텍스트 편집기만 쓴다면 불필요하죠.

 

웹루트 폴더의 소유자와 사용자그룹, 사용권한 살펴보기

연재작의 이전 글에서 언급했듯, 우분투서버를 설치하고 나서 Nginx를 설치하고 나면 웹서버의 도큐멘트 루트폴더, 그러니까 내 홈페이지의 루트폴더는 아래그림처럼 /var/www/html 입니다. 이것을 바꿀수도 있지만 제 방법대로 설치했다면 디폴트로 이곳이 지정되어있고 소유자 및 권한도 저와 같을 겁니다.

html 폴더의 사용 권한
 

위 그림은 SFTP 로 접속해서 본 html 폴더의 권한인데요. 소유자(Owner)는 root, 사용자그룹(Group)은 root 인걸 알수 있습니다. 

755 권한은 파일 소유자만이 편집권한을 가진다.

그리고 각 권한이 나오는데 각각 아래와 같습니다.

  • User(사용자, owner = root): 읽기,쓰기,실행
  • Group(사용자그룹 = root): 읽기, 실행
  • World(누구나,others): 읽기, 실행

그리고 위와같은 사용자별 권한 조합을 숫자로 나타낸 것이 위 그림에 나오는 755입니다.( 권한을 문자로 나타낸 것은 위그림의 경우 rwxr-xr-x 인데 이것은 3자리씩 끊어서 구분할 수 있습니다.)

 

우리가 설치한 대로라면 오늘 알아야할 주요 폴더와 파일의 권한은 아래와 같고 이들은 소유자와 그룹이 모두 root, root 입니다.

  • /var/www 디렉토리(폴더) : 755
  • /var/www/html  디렉토리: 755
  • ndex.nginx-debian.html 파일: 644

 

위 폴더들과 파일은 소유자인 root 가 아니고선 쓰기(Write)가 안되므로 다른 사용자는 이 폴더안에 파일을 만들 수도 없고 기존에 있는걸 수정할 수도 없으며 삭제할 수도 없습니다. 그래서 ubuntu 에게도 권한을 주기위해 작업을 해야하는데요. 여러가지 생각할 수 있겠지만 저는 복잡하지 않게 소유자와 사용자그룹을 각각 ubuntu, ubuntu로 바꿀 계획입니다.

저는 /var/www/html 보다 상위인 /var/www/ 폴더를 대상으로 할 것입니다. 웹루트보다도 상위인 www 폴더에도 SFTP 클라이언트를 통해서 여러가지 파일을 만들고 편집하려고 하거든요.

 

리눅스 폴더 및 파일의 소유자(Owner, User) 및 사용자그룹 변경하기

해당 폴더의 권한을 가진 root 유저로 작업해야하므로 먼저 CLI 프로그램을 이용해 서버에 접속해서 해야합니다.

 

참고: SSH를 이용한 서버접속에대한 사전지식이 필요하다면 아래 링크에서 내용을 자세히 읽어보시기 바랍니다.

참고: 명령어 입력중 $과 #기호 구분, 명령어 앞에 붙는 sudo 에 관한 지식이 필요하다면 아래 링크를 참고하세요.

 

CLI 명령줄에서 현재 폴더의 내용물에 대한 정보를 보려면 ls -l 명령어를 사용해서 보면되는데요. www 폴더의 상위폴더인 /var 폴더를 살펴봄으로써 알 수 있겠습니다. 아래처럼 말이죠.

ls -l /var/
폴더 내용물의 정보를 보는 리눅스 명령어 ls -l을 실행시킨 모습
폴더 내용물의 정보를 보는 리눅스 명령어

 

폴더의 소유자를 변경하는 리눅스 명령어chown (change owner) 입니다. 아래와 같은 형태로 작성합니다.

chown 변경할소유자명 폴더또는파일명

그리고 www 폴더 하위의 서브폴더와 모든 파일까지 한번에 적용하기위해선 -R 옵션을 사용합니다. 그래서 저는 아래처럼 명령어를 입력했습니다.

sudo chown -R ubuntu /var/www

 

그리고 사용자그룹을 변경하는 리눅스 명령어는 chgrp(change group)입니다. 아래와 같은 형태죠.

chgrp 변경할사용자그룹명 폴더또는파일명

역시 -R 옵션을 사용해서 저는 아래처럼 입력했습니다.

sudo chgrp -R ubuntu /var/www

위 두 개 명령어를 연속해서 입력후 아래그림처럼 ls -l 명령어를 통해서 각 폴더 내용물의 정보를 보면 소유자와 사용자그룹이 모두 ubuntu로 바뀐걸 확인할 수 있습니다.

리눅스 명령어 chown 과 chgrp

 

이제 ubuntu 사용자로 /var/www 이하의 폴더를 편집할 수 있게되었습니다. 더이상 권한 문제가 없을 것이므로 SFTP 로 파일을 업로드하거나 수정이 가능하게 될것입니다. 그럼 함께 수정해볼까요?

 

SFTP 를 이용해 Nginx 웰컴페이지 편집하기

html 폴더 아래 index.html 파일을 만들어도 되겠지만 nginx 가 준비해둔 파일을 편집해보겠습니다. index.nginx-deebian.html 파일을 자신이 사용하는 편집기에서 엽니다.

참고: SFTP 프로그램 사용에대한 사전지식이 필요하다면 아래 링크를 참고하세요.

 

index.nginx-debian.html 파일의 위치
index.nginx-debian.html 파일 위치

 

자신이 사용하는 텍스트 에디터를 이용해서 HTML 파일 내용을 일부 수정해줍니다. 저는 아래처럼 nginx 라는 글자대신 스위프트코딩으로 수정했습니다.

참고: <head>태그사이에 <meta charset=”utf-8″> 는 한글을 위해 필요할 뿐입니다.

아톰 편집기에서 수정하기
Atom 텍스트에디터

 

자신의 서버IP로 웹브라우저에 접속해보면 바뀐걸 볼 수 있습니다.

welcome to nginx
변경된 웰컴페이지

 

다음단계

이렇게 nginx가 html 파일을 잘 해석해 렌더링해 보여주지만 우리는 php를 사용해야하므로 nginx가 php도 해석할 수 있도록 해야합니다. 다음글로 넘어가서 php를 설치하는 방법을 알아보겠습니다.

Post Author: 스위프트

코딩과 글쓰기는 객체 지향적으로. 새로운 댓글을 기다립니다. 주저말고 댓글을 다십시오.

댓글을 남겨주세요.