리눅스 / chown, chmod / 파일 또는 디렉토리 소유자, 소유그룹, 권한 설정

chown과 chmod는 파일 및 디렉토리의 권한과 소유자를 관리하는 데 사용되는 Linux 명령어입니다.

정보 확인

  • ls 명령어에 -l 옵션을 붙여서 파일 또는 디렉토리의 권한과 소유자(그룹)을 확인할 수 있습니다.
  • 제일 앞에 있는 문자는 디렉토리인지 파일인지는 나타냅니다. d는 디렉토리라는 뜻이고, -는 파일이라는 뜻입니다.
  • 그 다음 3개의 문자열은 소유자의 권한을, 그 다음 3개의 문자열은 소유그룹의 권한을, 그 다음 3개의 문자열은 소유자(그룹) 이외의 권한을 나타냅니다.
  • 처음 나오는 jb는 소유자, 그 다음 나오는 jb는 소유그룹입니다.
# ls -l
drwxrwxr-x 2 jb jb 4096 Feb 16 22:28 test_directory
-rw-rw-r-- 1 jb jb    4 Feb 16 22:34 test_file

chown

chown은 파일 또는 디렉토리의 소유자와 소유그룹을 정하는 명령어입니다.

  • test_file의 소유자를 jb, 소유그룹을 hs로 정합니다.
# chown jb:hs test_file
  • 소유그룹은 그대로 둔 채 소유자만 jb로 변경합니다.
# chown jb test_file
  • 소유자는 그대로 둔 채 소유그룹만 hs로 변경합니다.
# chown :hs test_file
  • data라는 디렉토리가 있을 때 다음과 같이 명령하면, data 디렉토리와 그 안에 있는 파일 또는 디렉토리의 소유자를 jb, 소유 그룹을 hs로 만듭니다.
chown -R jb:hs data

chmod

chmod은 파일이나 디렉토리의 접근 권한을 변경하는 명령어입니다.

  • r은 읽기(read) 권한, w는 쓰기(write) 권한, x는 실행(excute) 권한입니다.
  • 다음을 해석하면, test_file의 소유자는 jb, 소유그룹은 jb이고, 소유자는 읽고 쓰기 가능, 소유그룹은 읽고 쓰기 가능, 나머지는 읽기 가능입니다.
-rw-rw-r-- 1 jb jb 4 Feb 16 22:34 test_file
  • r은 4, w는 2, x는 1입니다. 따라서 7은 rwx, 6은 rw-, 5는 r-x, 4는 r--을 뜻합니다.
  • 따라서 다음은 소유자, 소유그룹, 다른 사용자 모두에게 읽기, 쓰기, 실행 권한을 주는 것입니다.
chmod 777 test_file
  • 다음은 rwxr-x---로 만드는 것입니다.
chmod 750 test_file
  • u는 소유자, g는 소유그룹, o는 다른 사용자이고, +는 추가, -는 제거를 뜻합니다.
  • 따라서 다음은 소유자에게 실행 권한을 추가하는 것입니다.
chmod u+x test_file
  • 다음은 소유그룹에서 쓰기 권한을 제거하는 것입니다.
chmod g-w test_file
  • a는 전체를 뜻하므로, 다음은 소유자, 소유그룹, 다른 사용자의 읽기 권한을 제거하는 것입니다.
chmod a-r test_file
  • data라는 디렉토리가 있을 때 다음과 같이 명령하면, data 디렉토리와 그 안에 있는 파일 또는 디렉토리의 권한을 777로 만듭니다.
# chmod -R 777 data
같은 카테고리의 다른 글
CentOS 7 / firewall-cmd 명령어로 방화벽 관리하기

CentOS 7 / firewall-cmd 명령어로 방화벽 관리하기

CentOS의 방화벽 관리 데몬은 firewalld입니다. 설정은 firewall-cmd 명령어로 합니다. 방화벽 실행 여부 확인 firewall-cmd --state 실행 중이면 running, 실행 중이 아니면 not running을 출력합니다. 방화벽 다시 로드 firewall-cmd --reload 방화벽 설정 후 다시 로드해야 적용됩니다. 존(Zone) 출력하기 firewall-cmd --get-zones 존(zone) 목록을 출력합니다. firewall-cmd --get-default-zone 기본 존을 출력합니다. firewall-cmd --get-active-zones 활성화된 존을 출력합니다. 사용 가능한 서비스/포트 출력하기 firewall-cmd --list-all 사용 가능한 모든 서비스/포트 목록을 출력합니다. firewall-cmd --zone=public --list-all public 존에 ...

Ubuntu 14.04 / LESS 설치하는 방법

우분투 14.04에 LESS를 설치하는 방법을 메모합니다. Node.js 설치 apt-get install nodejs NPM 설치 apt-get install npm LESS 설치 npm install -g less less-plugin-clean-css /usr/local/bin/lessc 파일 첫 줄에 다음과 같은 코드가 있습니다. #!/usr/bin/env node 다음처럼 바꿉니다. #!/usr/bin/env nodejs

리눅스 / 명령어 / 연산자 - ;, &&, ||

리눅스 셸에서 ;, &&, || 는 명령어 실행 방식을 제어하는 연산자입니다. 각 기호의 의미와 사용법은 다음과 같습니다.

Ubuntu 22.04 Server / Apache, PHP, MariaDB 설치하는 방법

Ubuntu 22.04 Server / Apache, PHP, MariaDB 설치하는 방법

Ubuntu Server에 웹서버 Apache, 웹프로그래밍 언어 PHP, 데이터베이스 MariaDB를 설치하는 방법입니다. 웹서버 운영을 위한 최소한의 설치로, 실제로 서비스할 때는 더 많은 패키지가 필요할 수 있습니다. 설치 Apache, PHP, MariaDB를 설치합니다. php-mysql은 PHP와 MariaDB 연동을 위한 패키지입니다. # apt install apache2 mariadb-server php php-mysql MariaDB 설정 다음과 같이 명령하여 몇 가지 설정을 합니다. # mysql_secure_installation MariaDB의 root 계정 ...

리눅스 / 명령어 / cat / 파일 내용 출력하는 명령어

리눅스의 cat(concatenate의 약자) 명령어는 파일의 내용을 화면에 출력하거나 파일을 결합하는 데 사용됩니다. cat 명령어는 주로 텍스트 파일을 다룰 때 유용하며, 여러 개의 파일을 한 번에 읽거나 결합할 수 있습니다. 다음과 같은 두 개의 파일이 있다고 할 때 file1 1-1 1-2 1-3 file2 2-1 2-2 2-3 cat filename cat 뒤에 파일 이름을 넣으면 파일 안의 내용을 보여줍니다. # cat file1 1-1 1-2 1-3 파일 이름을 연달아 넣으면 ...

CentOS 7 / 다운로드 하는 방법

CentOS 7 / 다운로드 하는 방법

CentOS는 세계 곳곳의 서버에서 다운로드할 수 있습니다. 다운로드하려는 곳에서 가까운 곳에 있고 회선이 좋은 서버에서 다운로드 받아야 빠르게 다운로드 할 수 있습니다. 다행이 CentOS는 가까운 서버를 알려줘서 다운로드에 소요되는 시간을 줄일 수 있습니다. CentOS 공식 다운로드 페이지로 갑니다. 다운로드 하고 싶은 ISO를 클릭합니다. 카이스트, 카카오, 네이버 등 국내 다운로드 주소를 먼저 보여줍니다. 마음에 드는 ...

Ubuntu 22.04 Server / 원격 데스크톱으로 연결하는 방법

Ubuntu 22.04 Server / 원격 데스크톱으로 연결하는 방법

GUI 설치 우분투에 GUI를 설치한다. # apt install ubuntu-desktop-minimal xrdp 설치 xrdp를 설치한다. # apt install xrdp 방화벽 설정 원격 데스크톱은 3389 포트를 사용하므로, 방화벽을 사용하고 있다면 포트를 열어 준다. ufw allow 3389/tcp 원격 데스크톱 연결 원격 데스크톱으로 접속한다. 아래와 같은 창이 뜨는데, 를 클릭한다. 계정 정보를 입력하고 를 클릭하면... 원격지에서 GUI로 우분투를 즐길 수 있다.

Ubuntu 18.04 Server / 언어 변경하는 방법

현재 언어 확인하기 locale 명령어로 현재 언어가 무엇인지 확인할 수 있습니다. # locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 언어 변경하기 사용할 언어를 먼저 설치합니다. 한국어를 사용하고 싶다면 다음과 같이 명령합니다. # apt-get install language-pack-ko /etc/default/locale을 열고 다음과 같이 만듭니다. LANG=ko_KR.UTF-8 테스트하기 새로 로그인하거나 재부팅하면 변경한 언어가 적용됩니다. 의미 없는 문자열을 입력해보거나... # 123 123: 명령을 찾을 수 없습니다 locale 명령어로 확인할 수 있습니다. # locale LANG=ko_KR.UTF-8 LANGUAGE= LC_CTYPE="ko_KR.UTF-8" LC_NUMERIC="ko_KR.UTF-8" LC_TIME="ko_KR.UTF-8" LC_COLLATE="ko_KR.UTF-8" LC_MONETARY="ko_KR.UTF-8" LC_MESSAGES="ko_KR.UTF-8" LC_PAPER="ko_KR.UTF-8" LC_NAME="ko_KR.UTF-8" LC_ADDRESS="ko_KR.UTF-8" LC_TELEPHONE="ko_KR.UTF-8" LC_MEASUREMENT="ko_KR.UTF-8" LC_IDENTIFICATION="ko_KR.UTF-8" LC_ALL=

Ubuntu 20.04 / 글꼴 설치하는 방법

Ubuntu 20.04 / 글꼴 설치하는 방법

Ubuntu 20.04 Desktop 설치하려는 글꼴을 더블 클릭하거나, 글꼴 선택 후 엔터키를 누르거나, 마우스 우클릭 후 를 클릭합니다. 상단에 있는 를 클릭합니다. 설치가 완료되면 으로 바뀝니다. 글꼴이 잘 설치되었는지 확인합니다.

Ubuntu 20.04 Server / hostname 확인하는 방법, 변경하는 방법

Ubuntu 20.04 Server / hostname 확인하는 방법, 변경하는 방법

hostname 확인하는 방법 방법 1 - 명령어로 확인하기 다음과 같이 명령하면 hostname을 출력한다. hostname 방법 2 - 설정 파일 열어서 확인하기 /etc/hostname 파일에 hostname이 있다. cat /etc/hostname hostname 변경하는 방법 방법 1 - 명령어로 변경하기 다음과 같이 명령하면 hostname이 abc로 바뀐다. hostnamectl set-hostname abc 방법 2 - 설정 파일 열어서 변경하기 텍스트 에디터로 /etc/hostname 파일을 열어서 내용을 abc로 바꾸면 hostname이 abc로 바뀐다. 재부팅 재부팅을 하면 변경사항이 ...