웹사이트 검색

Linux에서 파일을 Tar하고, 파일 권한을 설정하고, 파일을 찾는 방법


최근 Linux 재단은 개인이 Linux 시스템에서 기본부터 중급 시스템 관리 작업을 수행할 수 있도록 하는 새로운 프로그램인 LFCS(Linux Foundation Certified Sysadmin) 인증을 시작했습니다.

여기에는 이미 실행 중인 시스템 및 서비스 지원, 1단계 문제 해결 및 분석, 엔지니어링 팀에 문제를 에스컬레이션할 시기를 결정하는 기능이 포함됩니다.

이 시리즈의 제목은 LFCS(Linux 재단 인증 시스템 관리자) 파트 1~33 준비이며 다음 주제를 다룹니다.

Part 1

Linux에서 'Sed' 명령을 사용하여 파일을 조작하는 방법

Part 2

Linux에서 Vi/Vim을 설치하고 사용하는 방법

Part 3

Linux에서 파일 보관, 파일 권한 설정 및 파일 찾는 방법

Part 4

저장 장치 파티셔닝, 파일 시스템 포맷, 스왑 파티션 구성

Part 5

Linux에서 로컬 및 네트워크(Samba 및 NFS) 파일 시스템 마운트/마운트 해제

Part 6

파티션을 RAID 장치로 조립 – 시스템 백업 생성 및 관리

Part 7

시스템 시작 프로세스 및 서비스 관리(SysVinit, Systemd 및 Upstart

Part 8

사용자 및 그룹, 파일 권한, Sudo 액세스를 관리하는 방법

Part 9

Yum, RPM, Apt, Dpkg, Aptitude 및 Zypper를 사용한 Linux 패키지 관리

Part 10

기본 쉘 스크립팅 및 파일 시스템 문제 해결 학습

Part 11

vgcreate, lvcreate 및 lvextend 명령을 사용하여 LVM을 관리하고 생성하는 방법

Part 12

설치된 도움말 문서 및 도구를 사용하여 Linux를 탐색하는 방법

Part 13

GRUB(Grand Unified Bootloader) 구성 및 문제 해결 방법

Part 14

Linux 프로세스 리소스 사용량을 모니터링하고 사용자별 프로세스 제한 설정

Part 15

Linux 시스템에서 커널 런타임 매개변수를 설정하거나 수정하는 방법

Part 16

Linux에서 SELinux 또는 AppArmor를 사용하여 필수 액세스 제어 구현

Part 17

사용자 및 그룹에 대한 ACL(액세스 제어 목록) 및 디스크 할당량을 설정하는 방법

Part 18

네트워크 서비스 설치 및 부팅 시 자동 시작 구성

Part 19

익명 로그인을 허용하도록 FTP 서버를 설정하는 최종 가이드

Part 20

기본 재귀 캐싱 DNS 서버 설정 및 도메인 영역 구성

Part 21

MariaDB 데이터베이스 서버를 설치, 보안 및 성능 조정하는 방법

Part 22

파일 시스템 공유를 위해 NFS 서버를 설치 및 구성하는 방법

Part 23

SSL 인증서를 사용하여 이름 기반 가상 호스팅으로 Apache를 설정하는 방법

Part 24

Linux에서 서비스에 대한 원격 액세스를 활성화하기 위해 Iptables 방화벽을 설정하는 방법

Part 25

Linux를 라우터로 전환하여 트래픽을 정적으로 및 동적으로 처리하는 방법

Part 26

Cryptsetup 도구를 사용하여 암호화된 파일 시스템을 설정하고 스왑하는 방법

Part 27

시스템 사용량, 중단을 모니터링하고 Linux 서버 문제를 해결하는 방법

Part 28

패키지 설치 또는 업데이트를 위해 네트워크 저장소를 설정하는 방법

Part 29

네트워크 성능, 보안 및 문제 해결을 감사하는 방법

Part 30

가상 머신 및 컨테이너를 설치하고 관리하는 방법

Part 31

효율적으로 프로젝트를 관리하기 위해 Git의 기본 사항을 알아보세요.

Part 32

Linux에서 IPv4 및 IPv6 주소 구성을 위한 초보자 가이드

Part 33

Ubuntu에서 네트워크 결합 및 브리징 생성을 위한 초보자 가이드

이 게시물은 33개의 튜토리얼 시리즈 중 3부입니다. 이 부분에서는 LFCS<에 필요한 파일 및 디렉터리를 보관/압축하고, 파일 속성을 설정하고, 파일 시스템에서 파일을 찾는 방법을 다룹니다. 자격증 시험.

Linux용 보관 및 압축 도구

파일 보관 도구는 여러 유형의 미디어에 백업하거나 네트워크를 통해 전송하거나 이메일을 통해 보낼 수 있는 단일 독립 실행형 파일로 파일 세트를 그룹화합니다.

Linux에서 가장 자주 사용되는 아카이브 유틸리티는 tar 명령입니다. 압축 도구와 함께 보관 유틸리티를 사용하면 동일한 파일과 정보를 저장하는 데 필요한 디스크 크기를 줄일 수 있습니다.

Linux tar 유틸리티

tar는 파일 그룹을 단일 아카이브(일반적으로 tar 파일 또는 tarball라고 함)로 묶습니다. 이름은 원래 테이프 아카이버(tape archiver)를 의미했지만 이 도구를 사용하여 테이프뿐만 아니라 모든 종류의 쓰기 가능한 미디어에 데이터를 보관할 수 있다는 점에 유의해야 합니다.

Tar는 일반적으로 압축된 tarball을 생성하기 위해 gzip, bzip2 또는 xz와 같은 압축 도구와 함께 사용됩니다.

tar 명령의 기본 구문은 다음과 같습니다.

tar [options] [pathname ...]

여기서 ...는 어떤 파일에 대해 작업을 수행할지 지정하는 데 사용되는 표현식을 나타냅니다.

가장 일반적으로 사용되는 Tar 명령

Long option Abbreviation Description
 –create  c  Creates a tar archive
 –concatenate  A  Appends tar files to an archive
 –append  r  Appends files to the end of an archive
 –update  u  Appends files newer than copy in archive
 –diff or –compare  d  Find differences between archive and file system
 –file archive  f  Use archive file or device ARCHIVE
 –list  t  Lists the contents of a tarball
 –extract or –get  x  Extracts files from an archive

일반적으로 사용되는 tar 작업 수정자

Long option Abbreviation Description
 –directory dir  C  Changes to directory dir before performing operations
 –same-permissions  p  Preserves original permissions
 –verbose  v  Lists all files read or extracted. When this flag is used along with –list, the file sizes, ownership, and time stamps are displayed.
 –verify  W  Verifies the archive after writing it
 –exclude file  —  Excludes files from the archive
 –exclude=pattern  X  Exclude files, given as a PATTERN
 –gzip or –gunzip  z  Processes an archive through Gzip
 –bzip2  j  Processes an archive through bzip2
 –xz  J  Processes an archive through xz

Linux Gzip, Bzip2 및 Xz 유틸리티

Gzip은 가장 오래된 압축 도구이며 최소한의 압축을 제공하는 반면, bzip2는 향상된 압축을 제공합니다. 또한 xz는 최신이지만 (일반적으로) 최상의 압축을 제공합니다.

최상의 압축의 장점은 작업을 완료하는 데 걸리는 시간과 프로세스 중에 사용되는 시스템 리소스라는 대가를 치르게 됩니다.

일반적으로 이러한 유틸리티로 압축된 tar 파일은 각각 .gz, .bz2 또는 .xz 확장자를 갖습니다. 다음 예에서는 file1, file2, file3, file4 및 < Strong>파일5.

gzip, bzip2 및 xz를 사용하여 파일 압축

현재 작업 디렉토리의 모든 파일을 그룹화하고 결과 번들을 gzip, bzip2xz로 압축합니다(일반 번들에 포함되어야 하는 파일을 지정하는 표현식 – 이는 이전 단계에서 생성된 타르볼을 그룹화하는 아카이브 도구를 방지하기 위한 것입니다.

tar czf myfiles.tar.gz file[0-9]
tar cjf myfiles.tar.bz2 file[0-9]
tar cJf myfile.tar.xz file[0-9]

내용 나열 및 파일 업데이트/추가 Tar 아카이브

tarball의 내용을 나열하고 긴 디렉토리 목록과 동일한 정보를 표시합니다. 업데이트 또는 추가 작업은 압축 파일에 직접 적용할 수 없습니다.

Tar 파일 압축 풀기

압축된 tarball에 파일을 업데이트하거나 추가해야 하는 경우 tar 파일의 압축을 풀고 업데이트/추가한 다음 다시 압축해야 합니다.

tar tvf [tarball]

다음 명령 중 하나를 실행하십시오.

gzip -d myfiles.tar.gz	[#1] 
bzip2 -d myfiles.tar.bz2	[#2] 
xz -d myfiles.tar.xz 		[#3] 

Tar 아카이브에 파일 삭제 또는 추가

tar --delete --file myfiles.tar file4 (deletes the file inside the tarball)
tar --update --file myfiles.tar file4 (adds the updated file)

그리고

gzip myfiles.tar		[ if you choose #1 above ]
bzip2 myfiles.tar		[ if you choose #2 above ]
xz myfiles.tar 		[ if you choose #3 above ]

마지막으로,

tar tvf [tarball] #again

file4의 수정 날짜와 시간을 앞서 표시된 것과 동일한 정보와 비교합니다.

백업에서 파일 제외

사용자의 디렉터리 백업을 수행한다고 가정해 보겠습니다. 좋은 시스템 관리자 방법은 백업에서 모든 비디오 및 오디오 파일을 제외하는 것입니다(회사 정책에 따라 지정될 수도 있음).

첫 번째 접근 방식은 .mp3 또는 .mp4 확장자(또는 기타 확장자)가 있는 모든 파일을 백업에서 제외하는 것일 수 있습니다. 확장자를 .txt 또는 .bkp로 변경할 수 있는 영리한 사용자가 있다면 귀하의 접근 방식은 별로 도움이 되지 않을 것입니다.

오디오 또는 비디오 파일을 감지하려면 해당 파일 형식을 파일로 확인해야 합니다. 다음 쉘 스크립트가 작업을 수행합니다.

#!/bin/bash
Pass the directory to backup as first argument.
DIR=$1
Create the tarball and compress it. Exclude files with the MPEG string in its file type.
-If the file type contains the string mpeg, $? (the exit status of the most recently executed command) expands to 0, and the filename is redirected to the exclude option. Otherwise, it expands to 1.
-If $? equals 0, add the file to the list of files to be backed up.
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

Tar 보존 권한으로 백업 복원

그런 다음 다음 명령을 사용하여 권한을 유지하면서 원래 사용자의 홈 디렉터리(이 예에서는 user_restore)에 백업을 복원할 수 있습니다.

tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

찾기 명령을 사용하여 파일 검색

find 명령은 특정 특성과 일치하는 파일이나 디렉터리를 디렉터리 트리를 통해 반복적으로 검색하는 데 사용되며, 그런 다음 일치하는 파일이나 디렉터리를 인쇄하거나 일치하는 항목에 대해 다른 작업을 수행할 수 있습니다.

일반적으로 이름, 소유자, 그룹, 유형, 권한, 날짜 및 크기별로 검색합니다.

find 명령의 기본 구문은 다음과 같습니다.

find [directory_to_search] [expression]

크기에 따라 재귀적으로 파일 찾기

현재 디렉터리(.)와 아래의 2 하위 디렉터리(-maxlength 3)에서 모든 파일(-f)을 찾습니다. 현재 작업 디렉토리와 2레벨 아래 포함) 크기(-size)가 2MB보다 큽니다.

find . -maxdepth 3 -type f -size +2M

특정 기준과 일치하는 파일 찾기 및 삭제

777 권한이 있는 파일은 때때로 외부 공격자에게 열려 있는 문으로 간주됩니다. 어느 쪽이든 다른 사람이 파일로 작업을 수행하도록 하는 것은 안전하지 않습니다. 다소 공격적인 접근 방식으로 삭제하겠습니다! ('{}' +는 검색 결과를 "수집"하는 데 사용됩니다).

find /home/user -perm 777 -exec rm '{}' +

타임스탬프를 기반으로 파일 찾기

/etc에서 액세스되었거나(-atime) 수정된(-mtime) 구성 파일 검색 더보기(+180) 6개월 전 또는 정확히 6개월 전(180)보다 작음(-180) .

아래 예에 따라 다음 명령을 수정합니다.

find /etc -iname "*.conf" -mtime -180 -print

파일 권한 및 기본 속성 설정

ls -l 출력의 처음 10 문자는 파일 속성입니다. 다음 문자 중 첫 번째 문자는 파일 유형을 나타내는 데 사용됩니다.

  • - : 일반 파일
  • -d : 디렉토리
  • -l : 심볼릭 링크
  • -c : 문자 장치(데이터를 바이트 스트림, 즉 터미널로 처리함)
  • -b : 블록 장치(블록 단위의 데이터를 처리하는 장치, 즉 저장 장치)

파일 속성의 다음 9개 문자는 파일 모드라고 하며 읽기(r), 쓰기(w) 및 실행(x )을 나타냅니다. ) 파일 소유자, 파일 그룹 소유자 및 나머지 사용자(일반적으로 "세계"라고 함)의 권한.

파일에 대한 읽기 권한은 동일한 파일을 열고 읽을 수 있도록 허용하는 반면, 디렉토리에 대한 동일한 권한은 실행 권한도 설정된 경우 해당 내용을 나열할 수 있도록 허용합니다. 또한 파일의 실행 권한을 사용하면 해당 파일을 프로그램으로 처리하고 실행할 수 있으며 디렉터리에서는 해당 파일을 CD에 넣을 수 있습니다.

파일 권한은 chmod 명령으로 변경되며 기본 구문은 다음과 같습니다.

chmod [new_mode] file

여기서 new_mode는 8진수이거나 새 권한을 지정하는 표현식입니다.

8진수는 다음과 같이 소유자, 그룹 및 세계에 대해 원하는 파일 권한으로 계산된 해당 이진수에서 변환될 수 있습니다.

특정 권한이 있으면 2의 거듭제곱과 같습니다(r=22, w=21, x=20 ), 부재는 0과 같습니다. 예를 들어:

위와 같이 8진수 형식으로 파일의 권한을 설정하려면 다음을 입력하십시오.

chmod 744 myfile

소유자의 권한을 문자 u로, 그룹 소유자의 권한을 문자 g로, 나머지를 로 나타내는 표현식을 사용하여 파일 모드를 설정할 수도 있습니다. 아.

이러한 "개인"은 모두 a 문자로 동시에 표시될 수 있습니다. 권한은 각각 + 또는 - 기호를 사용하여 부여(또는 취소)됩니다.

모든 사용자의 스크립트 실행 권한 제거

앞에서 설명했듯이 마이너스 기호를 앞에 붙이고 소유자, 그룹 소유자 또는 모든 사용자에 대해 취소해야 하는지 여부를 표시하여 특정 권한을 취소할 수 있습니다. 아래의 한 줄은 다음과 같이 해석될 수 있습니다. 모든(a) 사용자에 대한 모드 변경, 실행 권한 취소(-)(x) .

chmod a-x backup.sh

소유자 및 그룹 소유자에게 파일에 대한 읽기, 쓰기, 실행 권한을 부여하고 전 세계에 읽기 권한을 부여합니다.

3자리 8진수를 사용하여 파일에 대한 권한을 설정할 때 첫 번째 숫자는 소유자의 권한을 나타내고, 두 번째 숫자는 그룹 소유자를 나타내고, 세 번째 숫자는 다른 모든 사람을 나타냅니다.

  • 소유자: (r=22 + w=21 + x=20=7)
  • 그룹 소유자: (r=22 + w=21 + x=20=7)
  • 세계: (r=22 + w=0 + x=0=4),
chmod 774 myfile

시간이 지나면서 연습해 보면 각 경우에 가장 적합한 파일 모드 변경 방법을 결정할 수 있을 것입니다. 긴 디렉토리 목록에는 파일 소유자와 그룹 소유자도 표시됩니다(시스템의 파일에 대한 기본적이지만 효과적인 액세스 제어 역할을 함).

파일 소유권은 chown 명령으로 변경됩니다. 소유자와 그룹 소유자는 동시에 또는 별도로 변경할 수 있습니다. 기본 구문은 다음과 같습니다.

chown user:group file

최소한 사용자나 그룹이 있어야 하는 경우.

Chown 명령 예

파일 소유자를 특정 사용자로 변경합니다.

chown gacanepa sent

파일의 소유자와 그룹을 특정 사용자:그룹 쌍으로 변경합니다.

chown gacanepa:gacanepa TestFile

파일의 그룹 소유자만 특정 그룹으로 변경합니다. 그룹 이름 앞에 콜론이 있는지 확인하세요.

chown :gacanepa email_body.txt
결론

시스템 관리자로서 귀하는 백업을 생성 및 복원하는 방법, 시스템에서 파일을 찾고 해당 속성을 변경하는 방법, 삶을 더 쉽게 만들고 향후 문제가 발생하지 않도록 방지할 수 있는 몇 가지 요령을 알아야 합니다.

이 기사에서 제공하는 팁이 해당 목표를 달성하는 데 도움이 되기를 바랍니다. 커뮤니티의 이익을 위해 댓글 섹션에 자신의 정보와 아이디어를 자유롭게 추가하세요. 미리 감사드립니다!

LFCS eBook을 지금 구매하실 수 있습니다. 지금 사본을 주문하고 인증된 Linux 시스템 관리자가 되기 위한 여정을 시작하십시오!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

마지막으로, 다음 링크를 사용하여 시험 바우처를 구입하여 소액의 커미션을 받아 이 책을 계속 업데이트하는 데 도움이 되는 것을 고려해 보십시오.