このトピックでは、次の問題の原因と問題を解決する方法について説明します。特定のシナリオでは、操作にOverlayFSファイルシステムのファイルまたはディレクトリに対する十分な読み取り権限がありません。 その結果、Alibaba Cloud Linux 2またはAlibaba Cloud Linux 3インスタンスで操作が失敗します。
問題の説明
読み取り専用モードでファイルを開こうとするか、またはtouchコマンドを実行して、OverlayFSファイルシステムでフォーマットされたAlibaba Cloud Linuxインスタンスでコピーアッププロセスをトリガーすると、エラーメッセージが返されます。 コピー・アップ・プロセスは、下位ディレクトリから上位ディレクトリにファイルをコピーすることを含む。 次のコマンドを実行して、問題の原因を特定することを推奨します。
mkdir -p /root/test/lower/dir /root/test/upper /root/test/work /root/test/mount
chmod 0737 /root/test/lower/dir
chown root:bin /root/test/lower/dir
mount -t overlay -o lowerdir=/root/test/lower,upperdir=/root/test/upper,workdir=/root/test/work overlay /root/test/mount
cd /root/test && sudo -u bin -g bin touch mount/dir/RANDOM
上記のコマンドを実行した後に次のエラーメッセージが返された場合、OverlayFSファイルシステム内のファイルまたはディレクトリに対する不十分な読み取り権限 (-wx) はありません。
touch: cannot touch 'mount/dir/RANDOM': Permission denied
インスタンスが次の条件を満たしている場合、問題が発生する可能性があります。
インスタンスは、次の表に示すカーネルバージョンのいずれかを使用します。
オペレーティングシステム
[イメージ]
カーネルバージョン
Alibaba Cloud Linux 2
Alibaba Cloud Linux 2.1903 LTS 64 ビット
4.19.91-27から4.19.91-27.4、
4.19.91-27.al7、4.19.91-27.1.al7、4.19.91-27.2.al7、4.19.91-27.3.al7、および4.19.91-27.4.al7を含む
Alibaba Cloud Linux 3
Alibaba Cloud Linux 3.2104 LTS 64ビット
5.10.134-13から5.10.134-14.1、
5.10.134-13.al8、5.10.134-13.1.al8、5.10.134-14.al8、および5.10.134-14.1.al8を含む
OverlayFSファイルシステムでは、上位ディレクトリと下位ディレクトリが同じファイルシステムに配置されます。
ファイルへの書き込みを試みるプロセスは、コピーアッププロセスをトリガする。 ただし, 下位ディレクトリのファイルまたはディレクトリに対する読み取り権限はありません。
原因
OverlayFSファイルシステムでは、上位ディレクトリと下位ディレクトリは同じファイルシステムにあります。 プロセスには、プロセスがアクセスするファイルまたはディレクトリに対する読み取り権限がありません。 その結果、ovl_override_creds() 関数は実行できません。 ファイルまたはディレクトリを下位ディレクトリから上位ディレクトリにコピーしようとするプロセスには、OverlayFSファイルシステムをマウントする権限がありません。 不十分な読み取り権限を示すエラーメッセージが返されます。
解決策
インスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、カーネルのバージョンを確認します。
uname -r
コマンド出力のサンプル:
Alibaba Cloud Linux 2のコマンド出力
4.19.91-27。al7.x86_64
Alibaba Cloud Linux 3のコマンド出力
5.10.134-13.1.al8.x86_64
次のコマンドを実行して問題を解決します。
カーネル修正プログラムをインストールして問題を解決します。
Alibaba Cloud Linux 3バージョン5.10.134-13.al8、5.10.134-13.1.al8、5.10.134-14.al8、および5.10.134-14.1.al8の場合、次の修正プログラムをインストールします。
yum install -y kernel-hotfix-13108708-5.10.134-13。1
Alibaba Cloud Linux 2バージョン4.19.91-27.al7、4.19.91-27.1.al7、4.19.91-27.2.al7、4.19.91-27.3.al7、および4.19.91-27.4.al7の場合は、次の修正プログラムをインストールします。
yum install -y kernel-hotfix-13110805-4.19.91-27
カーネルバージョンをアップグレードして問題を解決します。
yumアップグレードカーネル
Alibaba Cloud Linux 3の場合、バージョンを5.10.134-15.al8以降にアップグレードします。
Alibaba Cloud Linux 2の場合、バージョンを4.19.91-28.al7以降にアップグレードします。
次のコマンドを実行して、問題が解決したかどうかを確認します。
mkdir -p /root/test/lower/dir /root/test/upper /root/test/work /root/test/mount chmod 0737 /root/test/lower/dir chown root:bin /root/test/lower/dir mount -t overlay -o lowerdir=/root/test/lower,upperdir=/root/test/upper,workdir=/root/test/work overlay /root/test/mount cd /root/test && sudo -u bin -g bin touch mount/dir/RANDOM
エラーメッセージが返されない場合は、問題が解決されたことを示します。