私たちのシステム管理者が休暇中に新しいサーバーにいくつかの新しいファイルをインストールしようとしています:
これが私のdf
です
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb3 273G 11G 248G 5% /
tmpfs 48G 260K 48G 1% /dev/shm
/dev/sdb1 485M 187M 273M 41% /boot
xxx.xx.xxx.xxx:/commun
63T 2.2T 61T 4% /commun
rootとして、新しいディレクトリを作成し、/ home/lindenbの下でchown
を実行できます
# cd /home/lindenb/
# mkdir X
# chown lindenb X
/ communで同じコマンドを実行することはできません
# cd /commun/data/users/lindenb/
# mkdir X
# chown lindenb X
chown: changing ownership of `X': Invalid argument
どうして ?どうすれば修正できますか?
更新済み:
マウント:
/dev/sdb3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sdb1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
xxx.xx.xxx.xxx:/commun on /commun type nfs (rw,noatime,noac,hard,intr,vers=4,addr=xxx.xx.xxx.xxx,clientaddr=xxx.xx.xxx.xxx)
バージョン:
$ cat /etc/redhat-release
CentOS release 6.3 (Final)
/commun
ファイルシステムはリモートサーバーからマウントされ、nfsv4マウントである可能性があることを示すエラーメッセージが表示されます(以前のnfsバージョンと同じで、アクセスが拒否されます)。デフォルトでは、リモートファイルサーバーはリモートroot
ユーザーをnobody
アカウントにマップするため、ファイルの所有権を変更できません。
最も簡単な解決策は、ローカルのlindenb
アカウントを使用して、/commun
ディレクトリの下にディレクトリを作成することです。ルートとして
Sudo -u linedb mkdir -p /commun/data/users/lindenb
それが機能しない場合は、IDマッピングが行われている可能性があるため、サーバーのディレクトリをxxx.xx.xxx.xxx
にmkaeし、そこで所有権/権限を変更する必要があります。
mount -t nfs -o vers=3 SERVER:PATH MOUNT_PATH
これでうまくいきました。
これは確かにNFS4の問題です。特に多くのユーザーがクライアントとNFSサーバー間の正しいマッピングを必要とする場合、そのような問題を解決するためにrpc.idmapd NFS4マッピングデーモンを検討する必要があるかもしれません。 NFS3(CentOS <6など)では、マッピングデーモンを使用していません。