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, bzip2 및 xz로 압축합니다(일반 번들에 포함되어야 하는 파일을 지정하는 표현식 – 이는 이전 단계에서 생성된 타르볼을 그룹화하는 아카이브 도구를 방지하기 위한 것입니다.
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] |
마지막으로, 다음 링크를 사용하여 시험 바우처를 구입하여 소액의 커미션을 받아 이 책을 계속 업데이트하는 데 도움이 되는 것을 고려해 보십시오.