NFSを次のように設定しました。この映像はJay(Linux Guy)が制作した映像です。autofsを設定するまで。
私の場合、サーバー(192.168.1.99)はProxmox 8(Debianベース)を実行し、ラップトップ(192.168.1.8)はUbuntu 22.04を実行しています。
ノートブックに共有フォルダをインストールした後にファイルを書き込もうとすると、次のエラーが発生します。
$ echo 'from laptop' >> /mnt/nfs/local/message.txt
bash: /mnt/nfs/local/message.txt: Permission denied
これは/etc/exports
サーバー上の私のファイルです。
/srv/local 192.168.0.0/255.255.254.0(rw,no_subtree_check)
次のコマンドを使用してラップトップにフォルダをマウントしました。
$ sudo mount 192.168.1.99:/srv/local /mnt/nfs/local
このエラーを解決する方法をご存知ですか?誰もがこの共有フォルダに書くことができることを願っています。
答え1
これはコメントでなければなりませんが、少し長いです。
使用しているツールを理解することなく、一部の機能設定を開始できます。しかし、実際にツールを使用することを学ぶための最良の方法です。しかし、常に最初に少し読んでみることをお勧めします。インターネットには、Unix/Linux 権限に関する紹介記事がたくさんあります。例えばhttps://mason.gmu.edu/~montecin/UNIXpermiss.htm
クライアントファイルシステムの権限はマウントポイントによって異なり、その後はサーバーに対する権限が適用されます。権限(-rwx-rxr--など)は、/ etc / passwdを介してユーザー名にマップされるユーザーIDとグループID(両方とも数字)に関連付けられています。 NFS クライアントと NFS サーバーは、それぞれの /etc/passwd ファイルで異なるマッピングを持つことができます。 NFSv4には、この問題を解決するメカニズムがあります(設定されている場合)。
コメントでは、all_squashを使用するよう提案するようです。ただし、これは/ etc / exportsが参照する行には表示されません。
圧縮オプションを使用すると、NFSマウント境界にわたってユーザーIDを簡単にマッピングできます。
/mnt/nfs/local/message.txt: 権限が拒否されました。
このファイルに書き込むには、UIDに次のものが必要です。
- /mnt、/mnt/nfsに対する読み取りおよび実行権限
- /mnt/nfs/localに対する読み取り、書き込み、および実行権限
- /mnt/nfs/local/message.txt への書き込み権限 (既に存在する場合)
(そして、NFSファイルシステムは読み取り/書き込みでマウントする必要があります。デフォルトのrwを使用してマウントしても、特定のエラー状態ではROに戻ることができます。)
@Jaromanda /srv/localの所有者/グループと権限を要求します。あなたの答えは、所有者がルートであり、グループがルートであるということです。しかし、権限が何であるかについては言及していません。階層内の各ノードの所有者、グループ、および権限を確認する必要があります。
答え2
私の場合、共有フォルダ()に対する他の人の権限が問題でした/srv/nfs/local
。
何らかの理由でJayの動画ではこれは問題になりません。おそらく彼はUbuntuとUbuntu Serverを使い、私はUbuntuとProxmox(Debianベース)を使っているからです。
私の問題を解決するために私は頼らなければなりませんでした。前方十字靭帯。
acl
まず、私のサーバー(Proxmox 8)にインストールする必要がありました。
apt install acl
その後、次のコマンドを実行しました(まだサーバー上にあります)。
setfacl -PRdm o::rw /srv/local
このコマンドで使用されている各パラメーターを読み取ることができます。ここ。
/srv/local
このコマンドは、フォルダ内のユーザーやグループとは異なる他のユーザーが読み書きできるように、デフォルトの共有を変更します。
私のラップトップのユーザーはその他Proxmox システムユーザーです。これで、ノートブックの共有フォルダに書き込むことができます。
コメントをいただいた@jaromanda-xと@symcbeanに感謝します。