リモート サーバーからローカルにマウントされたフォルダーがあります:
mount -o nolock 92.xxx.xxx.xxx:/var/www/html/static/data /home/myaccount/public_html/forum/data_remote
問題は、ローカル アカウントの UID が 500 で、リモート アカウントが 48 であるため、/home/myaccount/public_html/forum/data_remote
アクセス許可が拒否されたエラーが発生し、ローカル データにコンテンツを書き込むことができないことです。
これが私のです/etc/exports
:
/var/www/html/static/data/ 5.xxx.xxx.xxx(rw,insecure,no_root_squash)
myaccount がリモート フォルダーに書き込めるように権限を適切にマップするにはどうすればよいでしょうか?
答え1
リモート サーバー上のものと一致するように UID を変更する必要があります。これを行う前に、ユーザー アカウントがプロセスを実行していないことを確認してください。
usermod -u NEWUID username
ホーム ディレクトリ外のファイルの所有権は手動で変更する必要があることに注意してください。UID を変更したシステムで次のコマンドを使用して所有権を変更できます。
find / -user OLDUID -exec chown -h username {} \;
これにより、各システムで同じ UID が付与され、リモート ディレクトリに書き込み、ファイルを変更できるようになります。リモート マシンを定期的に使用しておらず、ファイルが少ない場合は、アクセス権があるものとして、リモート マシンで実行する方が簡単な場合があります。
各マシンに同じ GID を持つグループを作成し、共有に接続しようとしているマシンのグループにユーザーを追加することで、同じことを実行することもできます。
各マシンで:
groupadd -g GID groupname
NFS 共有をホストしているマシンで:
chown :groupname /nfs/share
共有に接続するマシンで:
usermod -aG groupname username