私は組み込みLinuxシステム用のソフトウェアを作成しており、NFS共有をルートディレクトリとして使用しています。ルートファイルシステムは次の方法で検索/srv/nfs/rootfs
してエクスポートします/etc/exports
。
/srv/nfs *(rw,no_root_squash,no_subtree_check,async,wdelay)
コンテンツは/srv/nfs/rootfs
ルートが所有する必要があります。そうしないと、ターゲットシステムのマウントに問題が発生します/dev
。ただし、通常のユーザーとしてファイルを変更できる必要があり、スクリプトに/srv/nfs/rootfs
追加したり、他のすべてのコマンドに対してsudoを実行したくありません。sudo
ルート権限を偽造するようにNFSを設定する方法はありますか/srv/nfs/rootfs
?私はfakerootを使ってnfsを実行しようとしていますが、それが私にとって最善の解決策ではないようです。
答え1
/srv/nfs/rootfs
ACLを使用して他のユーザーに書き込み権限を付与できます。詳細情報man setfacl
このman getfacl
パスを選択することにした場合は、デフォルトのACLを使用することをお勧めします。これにより、ファイル/ディレクトリが作成されたときにディレクトリに設定されたACLが伝播されます。しかし、問題があります。新しく作成されたファイルは、そのファイルを作成したユーザーが所有します。したがって、chown root:
NFSエクスポートを定期的に実行するか、ファイル変更モニター(FAM)に接続することをお勧めしますgamin
。
注:エクスポート書き込み可能ものグローバル(/srv/nfs *(rw,...
)は、自分の環境が宇宙の残りの部分から隔離されているとどう考えても決して良い考えではありません。