2 ファイル・システムの作成と管理

警告:

Oracle Linux 7は現在延長サポート中です。詳細は、Oracle Linux拡張サポートおよびOracleオープン・ソース・サポート・ポリシーを参照してください。

できるだけ早くアプリケーションとデータをOracle Linux 8またはOracle Linux 9に移行してください。

この章では、ファイル・システムの作成、マウント、チェックおよび修理方法、アクセス制御リストの構成方法、およびディスク割当ての構成と管理方法について説明します。

ファイル・システムの作成

mkfsコマンドは、ブロック・デバイス上にファイル・システムを作成します。

sudo mkfs [options] device

mkfsは、/sbinにあるmkfs.ext4などのビルダー・ユーティリティのフロント・エンドです。-t fstypeオプションを指定したmkfsコマンドまたはビルダー・ユーティリティのいずれかを使用して、作成するファイル・システムのタイプを指定できます。たとえば、次のコマンドはいずれも、ラベルがProjectsext4ファイル・システムをデバイス/dev/sdb1上に作成します。

sudo mkfs -t ext4 -L Projects /dev/sdb1
sudo mkfs.ext4 -L Projects /dev/sdb1

ファイル・システムのタイプをmakefsに指定しないと、ext2ファイル・システムが作成されます。

ファイル・システムのタイプを表示するには、blkidコマンドを使用します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="ad8113d7-b279-4da8-b6e4-cfba045f66ff" TYPE="ext4" LABEL="Projects"

また、blkidコマンドによって、デバイスに関する情報(UUID、ラベルなど)も表示されます。

各ファイル・システム・タイプではいくつかの機能がサポートされており、それらの機能はmkfsまたはビルダー・ユーティリティに追加オプションを指定して有効または無効にできます。たとえば、-Jオプションを使用して、ext3およびext4ファイル・システム・タイプで使用されるジャーナルのサイズと場所を指定できます。

詳細は、blkid(8)mkfs(8)およびmkfs.fstype(8)の各マニュアル・ページを参照してください。

ファイル・システムのマウント

ファイル・システムの内容にアクセスするには、ファイル・システムのブロック・デバイスをディレクトリ階層のマウント・ポイントにアタッチする必要があります。マウント・ポイントとして使用するディレクトリを作成するには、mkdirコマンドを使用できます。たとえば:

mkdir /var/projects

既存のディレクトリをマウント・ポイントとして使用できますが、上に重ねられたファイル・システムをアンマウントするまで、その内容は表示されません。

mountコマンドは、ファイル・システムが格納されたデバイスをマウント・ポイントにアタッチします。

sudo mount [options] device mount_point

デバイスは、名前、UUIDまたはラベルで指定できます。たとえば、次のコマンドはブロック・デバイス/dev/sdb1のファイル・システムをマウントする同等の方法です。

sudo mount /dev/sdb1 /var/projects
sudo mount UUID="ad8113d7-b279-4da8-b6e4-cfba045f66ff" /var/projects
sudo mount LABEL="Projects" /var/projects

mountに引数を指定しないと、現在マウントされているすべてのファイル・システムが表示されます。たとえば:

sudo mount
/dev/mapper/vg_host01-lv_root on / type ext4 (rw)
...

この例では、LVM論理ボリューム/dev/mapper/vg_host01-lv_root/にマウントされています。ファイル・システム・タイプはext4で、読取り/書込み両用としてマウントされています。(マウントされたファイル・システムに関する情報は、コマンドcat /proc/mountsを使用して表示することもできます。)

dfコマンドでは、マウントされたファイル・システムの残りの領域に関する情報が表示されます。たとえば:

sudo df -h
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg_host01-lv_root  36G   12G   22G  36% /
...

mountコマンドに-B (バインド)オプションを使用して、複数のマウント・ポイントにブロック・デバイスをアタッチできます。完全なファイル・システムではない、ある場所のディレクトリ階層の一部を再マウントすることもできます。たとえば、次のコマンドは/var/projects/project1/mntにマウントします。

sudo mount -B /var/projects/project1 /mnt

各ディレクトリ階層は、他のミラーとして機能します。同じファイルはどちらの場所でもアクセスできますが、サブマウントはレプリケートされません。これらのミラーではデータ冗長性は提供されません。

ファイルを別のファイルに重ねてマウントすることもできます。たとえば:

touch /mnt/foo
mount -B /etc/hosts /mnt/foo

この例では、/etc/hosts/mnt/fooは同じファイルを表します。マウント・ポイントとして機能する既存のファイルは、重ねられたファイルをアンマウントするまでアクセスできません。

-Bオプションは、ディレクトリ階層の下位にサブマウントを再帰的にアタッチしません。ミラーにサブマウントを挿入するには、かわりに-R (再帰バインド)オプションを使用します。

-Bまたは-Rを使用すると、ファイル・システムのmountのオプションは、元のマウント・ポイントのオプションと同じままになります。mountのオプションを変更するには、個別のremountコマンドを使用します。たとえば:

sudo mount -o remount,ro /mnt/foo

マウント・ポイントの下のサブマウントを、共有、プライベートまたはセカンダリ(スレーブ)としてマークできます。

mount --make-shared mount_point

指定のマウント・ポイントの下位でのマウントまたはアンマウントは、作成したあらゆるミラーに伝播され、他のミラーに適用したマウントまたはアンマウントの変更も、このマウント階層に反映されます。

mount --make-private mount_point

指定のマウント・ポイントの下位でのマウントまたはアンマウントは、他のミラーには伝播されず、他のミラーに適用したマウントまたはアンマウントの変更も、このマウント階層には反映されません。

mount --make-slave mount_point

指定のマウント・ポイントの下位でのマウントまたはアンマウントは、他のミラーには伝播されませんが、他のミラーに適用したマウントまたはアンマウントの変更は、このマウント階層に反映されます。

-Bまたは-Rオプションの使用によるマウントのミラーリングを回避するには、そのマウント・ポイントをバインド不可(unbindable)としてマークします。

sudo mount --make-unbindable mount_point

マウントされたファイル・システム、ディレクトリ階層またはファイルをマウント・ポイント間で移動するには、-Mオプションを使用します。たとえば:

touch /mnt/foo
mount -M /mnt/foo /mnt/bar

ファイル・システムをアンマウントするには、umountコマンドを使用します。たとえば:

sudo umount /var/projects

別の方法として、単一のマウント・ポイントにのみマウントされている場合は、ブロック・デバイスを指定できます。

詳細は、mount(8)およびumount(8)の各マニュアル・ページを参照してください。

マウント・オプションについて

mountの動作を変更するには、-oフラグの後にカンマ区切りのオプションのリストを使用するか、/etc/fstabファイルにオプションを指定します。次に、使用可能ないくつかのオプションを示します。

auto

mount -aコマンドを使用することで、ファイル・システムの自動マウントを許可します。

exec

ファイル・システムに配置されたバイナリ・ファイルの実行を許可します。

loop

ループ・デバイス(/dev/loop*)を使用して、ファイル・システム・イメージが格納されたファイルをマウントします。ファイル・システムのイメージを含むファイルのマウントファイルでのファイル・システムの作成およびlosetup(8)マニュアル・ページを参照してください。

ノート:

使用可能なループ・デバイス数のデフォルトは8です。カーネル・ブート・パラメータmax_loop=N を使用して、最大255のデバイスを構成できます。別の方法としては、次のエントリを/etc/modprobe.confに追加します。

options loop max_loop=N

前の例では、Nは、必要なループ・デバイスの数(0から255)です。その後、システムを再起動します。

noauto

mount -aを使用したファイル・システムの自動マウントを禁止します。

noexec

ファイル・システムに配置されたバイナリ・ファイルの実行を禁止します。

nouser

root以外のユーザーによるファイル・システムのマウントまたはアンマウントを禁止します。

remount

ファイル・システムがすでにマウント済の場合に再マウントします。多くの場合、このオプションをrorwなどの別のオプションと組み合せて、マウント済のファイル・システムの動作を変更します。

ro

ファイル・システムを読取り専用でマウントします。

rw

ファイル・システムを読取り/書込み用でマウントします。

user

任意のユーザーによるファイル・システムのマウントまたはアンマウントを許可します。

たとえば、/dev/sdd1を読取り専用アクセスおよびファイル・システムのマウントまたはアンマウントが許可されたルートのみで/testにマウントします:

sudo mount -o nouser,ro /dev/sdd1 /test

ループ・ドライブを使用して読取り専用アクセスでISOイメージ・ファイルを/mount/cdromにマウントします。

sudo mount -o ro,loop ./OracleLinux-R6-U1-Server-x86_64-dvd.iso /media/cdrom

/testファイル・システムを読取り/書込みアクセスで再マウントしますが、ファイル・システムに配置されたバイナリ・ファイルの実行は許可しません。

sudo mount -o remount,rw,noexec /test

ファイル・システムのマウント表について

/etc/fstabファイルにはファイル・システムのマウント表があり、mountコマンドによるブロック・デバイスのマウントまたはマウントのバインディングの実装に必要なすべての情報が提供されます。ファイル・システムを追加する場合は、ブート時にそのファイル・システムが確実にマウントされるように/etc/fstabに適切なエントリを作成します。次に、/etc/fstabのエントリのサンプルを示します。

/dev/sda1         /boot   ext4     defaults  1 2
/dev/sda2         /       ext4     defaults  1 1
/dev/sda3         swap    swap     defaults  0 0

最初のフィールドは、デバイス名、UUIDまたはデバイス・ラベルで指定するマウント対象デバイス、またはリモート・ファイル・システムの仕様です。デバイス名が変わる可能性がある場合は、デバイス名ではなくUUIDまたはデバイス・ラベルを使用してください。たとえば:

LABEL=Projects    /var/projects  ext4  defaults  1 2

2番目のフィールドは、ファイル・システムのマウント・ポイントまたはスワップ・パーティションを示すswapです。

3番目のフィールドは、ファイル・システム・タイプ(例:, ext4またはswap)です。

4番目のフィールドにはマウント・オプションを指定します。

5番目の列はdumpコマンドに使用されます。1の値はファイル・システムをダンプし、0の値はファイル・システムのダンプが必要ないことを意味します。

6番目の列は、ブート時のファイル・システム・チェックの実行順序を判断するためにファイル・システム・チェッカfsckによって使用されます。rootファイル・システムには1、その他のファイル・システムには2の値を指定します。0の値はチェックをスキップし、スワップ用、ブート時にマウントされないファイル・システム、または既存のマウントのバインドに使用します。

バインド・マウントの場合は、先頭から4個のフィールドのみを指定します。たとえば:

pathmount_point    none     bind

最初のフィールドには、2番目のフィールドで指定するマウント・ポイントにマウントするファイル・システム、ディレクトリ階層またはファイルのパスを指定します。マウント・ポイントは、パスがファイルを示す場合はファイル、その他の場合はディレクトリになります。3番目と4番目のフィールドには、noneおよびbindを指定します。

詳細は、fstab(5)マニュアル・ページを参照してください。

自動マウンタの構成

自動マウンタは、そのマウントに対して常に接続を維持するのではなく、ファイル・システムがアクセスされるときにそのファイル・システムをマウントします。一定期間を超えてファイル・システムが非アクティブになると、そのファイル・システムは自動マウンタによってアンマウントされます。自動マウントを使用することで、システム・リソースが解放され、システム・パフォーマンスが向上します。

自動マウンタは、autofsカーネル・モジュールとautomountユーザー空間デーモンの2つのコンポーネントで構成されます。

自動マウントを使用するようにシステムを構成するには:

  1. autofsパッケージ、およびリモート・ファイル・システムのサポートに必要なその他のパッケージをインストールします。

    sudo yum install autofs
  2. /etc/auto.master構成ファイルを編集し、マップのエントリを定義します。各マップ・エントリには、マウント・ポイントと、マウントされるリモート・ファイル・システムの定義が格納されたマップ・ファイルを指定します。たとえば:

    /-          /etc/auto.direct
    /misc       /etc/auto.misc
    /net        -hosts

    /-/miscおよび/netエントリは、それぞれ直接マップ、間接マップおよびホスト・マップの例です。直接マップのエントリには、マウント・ポイントとして常に/-を指定します。ホスト・マップには、マップ・ファイルのかわりに常に-hostsのキーワードを指定します。

    直接マップには、指定された絶対パスで自動マウントされるディレクトリの定義が含まれます。この例のauto.directマップ・ファイルには、次のようなエントリが格納されます。

    /usr/man   -fstype=nfs,ro,soft             host01:/usr/man

    このエントリは、オプションroおよびsoftを使用してhost01がエクスポートしたファイル・システム/usr/manをマウントし、/usr/manマウント・ポイントが存在しない場合は作成します。マウント・ポイントがすでに存在する場合、マウントしたファイル・システムに含まれている既存のファイルは非表示になります。

    ファイル・システムのデフォルト・タイプはNFSであるため、前述の例は次のように短くできます。

    /usr/man   -ro,soft                        host01:/usr/man

    間接マップには、/etc/auto.masterで指定されたマウント・ポイント(/misc)から相対的に自動マウントされるディレクトリの定義(キー)が含まれます。この例の/etc/auto.miscマップ・ファイルには、次のようなエントリが格納されます。

    xyz       -ro,soft                         host01:/xyz
    cd        -fstype=iso9600,ro,nosuid,nodev        :/dev/cdrom
    abc       -fstype=ext3                           :/dev/hda1
    fenetres  -fstype=cifs,credentials=credfile      ://fenetres/c

    /miscディレクトリはすでに存在している必要がありますが、xyzcdなどのキーが存在しない場合は、それらに対するマウント・ポイントが自動マウンタにより作成され、ファイル・システムのアンマウント時に削除されます。たとえば、ls /misc/xyzなどのコマンドを入力すると、host01がエクスポートした/xyzディレクトリが/misc/xyzとしてマウントされます。

    cdおよびabcのエントリにより、ローカル・ファイル・システムがマウント(CD-ROMドライブのISOイメージが/misc/cdに、/dev/hda1のext3ファイル・システムが/misc/abcに)されます。fenetresエントリにより、Samba共有が/misc/fenetresとしてマウントされます。

    ホスト・マップ・エントリが存在し、コマンドによって、マウント・ポイント(/net)から相対的にNFSサーバーが名前で参照される場合、サーバーがエクスポートしたすべてのディレクトリは、そのサーバーの名前が付いたマウント・ポイントのサブディレクトリの下にマウントされます。たとえば、コマンドcd /net/host03では、自動マウンタによって、host03からのすべてのエクスポートが、/net/host03ディレクトリの下にマウントされます。デフォルトでは、ホスト・マップ・エントリでオプションをオーバーライドしないかぎり、nosuid,nodev,intrのマウント・オプションが使用されます。たとえば:

    /net        -hosts    -suid,dev,nointr

    ノート:

    NFSサーバーの名前は、DNSまたは/etc/hostsファイルのIPアドレスに解決できる必要があります。

    NIS、NIS+およびLDAPでのマップの使用方法などの詳細は、hosts.master(5)マニュアル・ページを参照してください。

  3. autofsサービスを開始し、システムの再起動後にサービスが開始するように構成します。

    sudo systemctl stat autofs
    sudo systemctl enable autofs

/etc/sysconfig/autofsautofsには、ファイル・システムを自動的にアンマウントするアイドル・タイムアウト値など、様々な設定を構成できます。

/etc/auto.masterまたは/etc/sysconfig/autofsを変更した場合は、autofsサービスを再起動してこれらのファイルが再度読み取られるようにします。

sudo systemctl restart autofs

詳細は、automount(8)autofs(5)およびauto.master(5)の各マニュアル・ページを参照してください。

ファイル・システムのイメージを含むファイルのマウント

ループ・デバイスを使用すると、ブロック・デバイスとしてファイルにアクセスできます。たとえば、DVD ISOイメージを含むファイルをディレクトリ・マウント・ポイント/ISOにマウントするには、次のようにします。
sudo mount -t iso9660 -o ro,loop /var/ISO_files/V33411-01.iso /ISO

必要に応じて、ファイル・システムの永続エントリを/etc/fstabに作成します。

/var/ISO_files/V33411-01.iso          /ISO      iso9660    ro,loop     0 0

ファイルでのファイル・システムの作成

別のファイル・システム内のファイルにファイル・システムを作成するには:

  1. 必要なサイズの空のファイルを作成します。たとえば:

    sudo dd if=/dev/zero of=/fsfile bs=1024 count=1000000
    1000000+0 records in
    1000000+0 records out
    1024000000 bytes (1.0 GB) copied, 8.44173 s, 121 MB/s
  2. ファイルにファイル・システムを作成します。

    sudo mkfs.ext4 -F /fsfile
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    62592 inodes, 250000 blocks
    12500 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=260046848
    8 block groups
    32768 blocks per group, 32768 fragments per group
    7824 inodes per group
    Superblock backups stored on blocks: 
    	32768, 98304, 163840, 229376
    
    Writing inode tables: done                            
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 33 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
  3. ループ・デバイスを使用して、ファイルをファイル・システムとしてマウントします。

    sudo mount -o loop /fsfile /mnt

    ファイルが通常のファイル・システムとして表示されます。

    sudo mount
    ...
    /fsfile on /mnt type ext4 (rw,loop=/dev/loop0)
    # df -h
    Filesystem            Size  Used Avail Use% Mounted on
    ...
    /fsfile               962M   18M  896M   2% /mnt

    必要に応じて、ファイル・システムの永続エントリを/etc/fstabに作成します。

    /fsfile          /mnt      ext4    rw,loop     0 0

ファイル・システムのチェックおよび修復

fsckユーティリティは、ファイル・システムをチェックして修復します。/ (ルート)および/boot以外のファイル・システムには、mountの実行時に、マウントが特定の回数を超えたか、チェックを実行せずに180日を経過したかを確認するファイル・システム・チェックが起動されます。ファイル・システムが数か月間チェックされていない場合は、fsckを手動で実行できます。

注意:

マウントしたファイル・システムに対してfsckを実行すると、ファイル・システムが破損し、データが消失する可能性があります。

ファイル・システムをチェックして修復するには:

  1. ファイル・システムをアンマウントします。

    sudo umount filesystem
  2. fsckコマンドを使用して、ファイル・システムをチェックします。

    sudo fsck [-y] filesystem

    filesystemは、デバイス名、マウント・ポイント、またはラベルまたはUUID指定子です。たとえば:

    sudo fsck UUID=ad8113d7-b279-4da8-b6e4-cfba045f66ff

    fsckでは、デフォルトの場合、提示された修復をファイル・システムに適用するかどうかを選択するプロンプトが表示されます。-yオプションを指定すると、fsckでは、それらのすべての質問がyesレスポンスとみなされます。

ext2ext3およびext4のファイル・システム・タイプでは、ファイル・システム・メンテナンスの実行に必要なその他のコマンドとして、dumpe2fsおよびdebugfsが含まれます。dumpe2fsは、指定したデバイス上のファイル・システムのスーパー・ブロックおよびブロック・グループ情報を出力します。debugfsは、ファイル・システム・アーキテクチャの専門的な知識を必要とする対話型のファイル・システム・デバッガです。ほとんどのファイル・システム・タイプには、専門的な知識を必要とする類似のコマンドがあります。

詳細は、fsck(8)マニュアル・ページを参照してください。

ファイル・システム・チェックの頻度の変更

ファイル・システムの整合性を自動的にチェックするまでのマウント回数を変更するには:

sudo tune2fs -c mount_count device

前の例では、deviceはファイル・システムに対応するブロック・デバイスを指定します。

0または-1のmount_countは、マウント回数に基づく自動チェックを無効にします。

ヒント:

ファイル・システムごとにmount_countに異なる値を指定すると、ファイル・システムのすべてが同時にチェックされる可能性が低くなります。

ファイル・システム・チェックの最大間隔を指定するには:

sudo tune2fs -i interval[unit] device

unitdwまたはmで、日数、週数または月数を示します。デフォルトの単位はd (日数)です。0のintervalは、前回のチェック以降に経過した時間に基づくチェックを無効にします。間隔を超えたとしても、次回マウントされるまでファイル・システムはチェックされません。

詳細は、tune2fs(8)マニュアル・ページを参照してください。

アクセス制御リストについて

POSIXアクセス制御リスト(ACL)は、所有者、グループおよび他のすべてのシステム・ユーザーの読取り、書込み、実行権限を設定する従来のUNIX任意アクセス制御(DAC)よりも豊富なアクセス制御モデルを提供します。複数のユーザーまたはグループのアクセス権を定義し、プログラム、プロセス、ファイル、ディレクトリの権限を指定するACLを構成できます。ディレクトリにデフォルトのACLを設定すると、その子孫が同じ権限を自動的に継承します。ACLは、btrfs、ext3、ext4、OCFS2およびXFSファイル・システムで、およびマウントされたNFSファイル・システムで使用できます。

ACLは、ACLが関連付けられているファイルまたはディレクトリに対して、特定のユーザーまたはグループがどのようにアクセスできるかを指定する一連のルールで構成されます。通常のACLエントリは、単一のファイルまたはディレクトリついてアクセス情報を指定します。デフォルトのACLエントリはディレクトリに対してのみ設定され、アクセスACLがないディレクトリ内のファイルに対してデフォルトのアクセス情報を指定します。

ACLサポートの構成

ACLサポートを有効にするには:

  1. aclパッケージをインストールします。

    sudo yum install acl
  2. /etc/fstabを編集してACLを使用するファイル・システムのエントリを変更し、ACLをサポートする適切なオプションを挿入します。たとえば:

    LABEL=/work      /work       ext4     acl     0 0

    マウントされたSamba共有には、aclのかわりにcifsaclオプションを使用します。

  3. ファイル・システムを再マウントします。たとえば:

    sudo mount -o remount /work

ACLの設定および表示

ファイルに対するACLルールを追加または変更するには、setfaclコマンドを使用します。

sudo setfacl -m rules file ...

ルールは次の形式をとります。

[d:]u: user[: permissions]

名前またはユーザーIDで指定されたユーザーのアクセスACLを設定します。ユーザーの指定がない場合、権限は所有者に適用されます。

[d:]g: group[: permissions]

名前またはグループIDで指定されたグループのアクセスACLを設定します。グループの指定がない場合、権限は所有グループに適用されます。

[d:]m[:][: permissions]

所有グループのすべての権限とユーザーおよびグループのエントリすべてを結合した、有効な権限マスクを設定します。

[d:]o[:][: permissions]

その他(他のいずれのルールも適用されない全員)のアクセスACLを設定します。

権限は、chmodで使用されるように、読取り、書込みおよび実行を示すrwおよびxです。

d:接頭辞を使用して、ディレクトリのデフォルトACLにルールを適用します。

ファイルのACLを表示するには、getfaclコマンドを使用します。たとえば:

sudo getfacl foofile
# file: foofile
# owner: bob
# group: bob
user::rw-
user::fiona:r--
user::jack:rw-
user::jill:rw-
group::r--
mask::r--
other::r--

拡張ACLがファイルに対してアクティブな場合は、ls-lオプションを使用すると、権限の後にプラス記号(+)が表示されます。次に例を示します。

ls -l foofile
-rw-r--r--+ 1 bob bob  105322 Apr 11 11:02 foofile

次に、ディレクトリおよびファイルのACLを設定および表示する例を示します。

ユーザーにファイルまたはディレクトリへの読取りアクセス権を付与します。
sudo setfacl -m u:user:r file
ファイルまたはディレクトリの名前、所有者、グループおよびACLを表示します。
sudo getfacl file
ACLではなく有効な権限マスクを変更して、すべてのグループおよびユーザーのファイルへの読取りアクセスを削除します。
sudo setfacl -m m::rx file

-xオプションは、ユーザーまたはグループのルールを削除します。

ファイルのACLからユーザーのルールを削除します。
sudo setfacl -x u:user file
ファイルのACLからグループのルールを削除します。
sudo setfacl -x g:group file

-bオプションは、ファイルまたはディレクトリから拡張ACLエントリをすべて削除します。

sudo setfacl -b file
ファイルf1のACLをファイルf2にコピーします。
sudo getfacl f1 | setfacl --set-file=- f2

ディレクトリのその他に対して読取りおよび実行アクセスのデフォルトのACLを設定します。

sudo setfacl -m d:o:rx directory
ディレクトリのACL設定を、継承可能なデフォルトのACL設定に昇格させます。
sudo getfacl --access directory | setfacl -d -M- directory

-kオプションは、ディレクトリからデフォルトのACLを削除します。

sudo setfacl -k directory

詳細は、acl(5)setfacl(1)およびgetfacl(1)の各マニュアル・ページを参照してください。

ディスク割当てについて

ノート:

XFSファイル・システムに対する割当ての構成方法の詳細は、XFSファイル・システム上での割当て設定を参照してください。

ユーザーまたはグループが使用できるディスク領域(blocks)や、ユーザーまたはグループが作成できるファイル数(inode)を制限したり、使用量が指定した制限に達したときに通知を送信するには、ディスク割当てを設定します。強い制限では、ファイル・システム上でユーザーまたはグループが使用できるブロックまたはinodeの最大数を指定します。ユーザーまたはグループは、猶予期間として知られる、期間に対する弱い制限を超過できます。

ファイル・システムでのディスク割当ての有効化

ファイル・システム上のユーザーまたはグループのディスク割当てを有効にするには:

  1. quotaパッケージをインストールまたは更新します。

    sudo yum install quota
  2. ファイル・システムの/etc/fstabエントリに、usrquotaまたはgrpquotaオプションを挿入します。たとえば:

    /dev/sdb1       /home        ext4    usrquota,grpquota   0 0
  3. ファイル・システムを再マウントします。

    sudo mount -o remount /home
  4. 割当てデータベース・ファイルを作成します。

    sudo quotacheck -cug /home

    このコマンドにより、ファイル・システムのルート(この例では/home)にファイルaquota.userおよびaquota.groupが作成されます。

詳細は、quotacheck(8)マニュアル・ページを参照してください。

ユーザーおよびグループへのディスク割当ての割当て

ユーザーに対するディスク割当てを構成するには:

  1. ユーザーの場合は、次のコマンドを入力します。

    sudo edquota username

    グループの場合は、次のコマンドを入力します。

    sudo edquota -g group

    このコマンドは、環境変数EDITORで定義されたデフォルトのエディタでテキスト・ファイルを開き、ユーザーまたはグループに対する制限を指定できます。次に例を示します。

    Disk quotas for user guest (uid 501)
    Filesystem  blocks  soft  hard  inodes  soft  hard
     /dev/sdb1   10325     0     0    1054     0     0

    blocksおよびinodesのエントリには、ファイル・システムにおけるユーザーの現在の使用量が表示されます。

    ヒント:

    制限を0に設定すると、blocksまたはinodesカテゴリに対応する割当てチェックおよび強制が無効になります。

  2. ブロック数およびinode数に対する弱い制限および強い制限を編集し、ファイルを保存して閉じます。

別の方法として、setquotaコマンドを使用してコマンドラインから割当て制限を構成できます。-pオプションを使用して、あるユーザーまたはグループから別のユーザーまたはグループに割当て設定を適用できます。

詳細は、edquota(8)およびsetquota(8)の各マニュアル・ページを参照してください。

猶予期間の設定

弱い制限の猶予期間を構成するには:

  1. 次のコマンドを入力します。

    sudo edquota -t

    このコマンドは、環境変数EDITORで定義されたデフォルトのエディタでテキスト・ファイルを開き、猶予期間を指定できます。次に例を示します。

    Grace period before enforcing soft limits for users:
    Time units may be: days, hours, minutes, or seconds
      Filesystem     Block grace period     Inode grace period
      /dev/sdb1            7days                  7days 
  2. ブロック数およびinode数に対する弱い制限の猶予期間を編集し、ファイルを保存して閉じます。

詳細は、edquota(8)マニュアル・ページを参照してください。

ディスク割当ての表示

ユーザーのディスク使用量を表示するには:

sudo quota username

グループのディスク使用量を表示するには:

sudo quota -g group

使用量が割当て限度を超えるファイル・システムに関する情報を表示するには:

sudo quota -q

quotaコマンドを使用して、ユーザー自身および自分のグループの使用量を表示することもできます。

詳細は、quota(1)マニュアル・ページを参照してください。

ディスク割当ての有効化および無効化

特定のファイル・システムのすべてのユーザー、グループのディスク割当てを無効にするには、次のようにします。

sudo quotaoff -guv filesystem

すべてのユーザー、グループおよびファイル・システムのディスク割当てを無効にするには、次のようにします。

sudo quotaoff -aguv

すべてのユーザー、グループおよびファイル・システムのディスク割当てを再度有効にするには、次のようにします。

sudo quotaon -aguv

詳細は、quotaon(1)マニュアル・ページを参照してください。

ディスク割当て使用量のレポート

単一のファイル・システムのディスク割当て使用量を表示するには:

sudo repquota filesystem

すべてのファイル・システムのディスク割当て使用量を表示するには:

sudo repquota -a

詳細は、repquota(8)マニュアル・ページを参照してください。

ディスク割当てレポートの精度の保持

制御不能なシステム停止によって、ディスク割当てレポートが正確でなくなる可能性があります。

ファイル・システムの割当てデータベースを再構築するには:

  1. ファイル・システムのディスク割当てを無効にします。

    sudo quotaoff -guv  filesystem
  2. ファイル・システムをアンマウントします。

    sudo umountfilesystem
  3. 次のコマンドを入力して、割当てデータベースを再構築します。

    sudo quotacheck -guv filesystem
  4. ファイル・システムをマウントします。

    sudo mount filesystem
  5. ファイル・システムのディスク割当てを有効にします。

    sudo quotaoff -guv filesystem

詳細は、quotacheck(8)マニュアル・ページを参照してください。