ウェブサイト検索

Linux でファイルを Tar 化し、ファイル権限を設定し、ファイルを検索する方法


最近Linux Foundationは、LFCS (Linux Foundation Certified Sysadmin) 認定資格を開始しました。これは、個人が Linux システム上で基本から中級のシステム管理タスクを実行できるようにすることを目的としたまったく新しいプログラムです。

これには、既に実行中のシステムとサービスのサポート、第 1 レベルのトラブルシューティングと分析に加えて、問題をいつエンジニアリング チームにエスカレーションするかを決定する機能が含まれます。

このシリーズは、「LFCS (Linux Foundation Certified Sysadmin) の準備」パート 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

Grand Unified Bootloader (GRUB) を構成およびトラブルシューティングする方法

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 用のアーカイブおよび圧縮ツール

ファイル アーカイブ ツールは、一連のファイルを 1 つのスタンドアロン ファイルにグループ化し、複数の種類のメディアにバックアップしたり、ネットワーク経由で転送したり、電子メールで送信したりできます。

Linux で最も頻繁に使用されるアーカイブ ユーティリティは tar コマンドです。アーカイブ ユーティリティを圧縮ツールと併用すると、同じファイルと情報を保存するのに必要なディスク サイズを削減できます。

Linux tar ユーティリティ

tar は、ファイルのグループを 1 つのアーカイブにバンドルします (一般にtar ファイル または tarball と呼ばれます)。この名前はもともとテープ アーカイバを意味していましたが、このツールを使用すると、あらゆる種類の書き込み可能なメディア (テープに限らず) にデータをアーカイブできることに注意する必要があります。

Tar は通常、圧縮 tarball を生成するために gzipbzip2xz などの圧縮ツールとともに使用されます。

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 です。次の例では、file1file2file3file4、および < のファイルを使用します。strong>ファイル5。

gzip、bzip2、xz によるファイルの圧縮

現在の作業ディレクトリ内のすべてのファイルをグループ化し、結果のバンドルを gzipbzip2、および xz で圧縮します (通常のファイルの使用に注意してください)式を使用してバンドルに含めるファイルを指定します。これは、アーカイブ ツールが前の手順で作成した tarball をグループ化するのを防ぐためです)。

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 コマンドの基本的な構文は次のとおりです。

find [directory_to_search] [expression]

サイズに従ってファイルを再帰的に検索する

現在のディレクトリ (.) とその下の 2 サブディレクトリ (-max Depth 3) 内のすべてのファイル (-f) を検索します。現在の作業ディレクトリとその 2 レベル下が含まれます)、そのサイズ (-size) が 2 MB を超えています。

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 進数から変換できます。

特定の権限の存在は、2 のべき乗に等しい (r=22w=21x=20) )、それが存在しない場合は 0 に相当します。例えば:

ファイルのアクセス許可を上記のように 8 進数形式で設定するには、次のように入力します。

chmod 744 myfile

また、所有者の権限を文字 u で、グループ所有者の権限を文字 g で、残りの権限を で示す式を使用してファイルのモードを設定することもできます。 o

これらすべての「個人 」は、文字 a で同時に表すことができます。権限は、それぞれ + または - 記号で付与 (または取り消し) されます。

スクリプトの実行権限をすべてのユーザーから削除

前に説明したように、特定の権限を取り消すには、先頭にマイナス記号を付けて、その権限を所有者、グループ所有者、またはすべてのユーザーに対して取り消す必要があるかどうかを示します。以下の 1 行は次のように解釈できます: すべてのユーザー (a) のモードを変更し、実行許可 (x) を取り消します (-)。 。

chmod a-x backup.sh

ファイルの読み取り書き込み、および実行権限を所有者とグループ所有者に付与し、全世界に対して読み取り権限を付与します。

3 桁の 8 進数を使用してファイルのアクセス許可を設定する場合、最初の桁は所有者のアクセス許可、2 桁目はグループ所有者のアクセス許可、3 桁目はその他全員のアクセス許可を示します。

  • 所有者: (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 電子書籍は現在購入可能です。今すぐコピーを注文して、認定 Linux システム管理者になるための旅を始めましょう!

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

最後になりましたが、次のリンクを使用して試験バウチャーを購入することを検討してください。これにより少額の手数料が得られ、この書籍を常に最新の状態に保つことができます。