私は自宅のネットワークに iMac を再インストールし、NFS 共有 (Ubuntu サーバーでホスト) 経由でユーザーのホーム ディレクトリをマウントしました。
問題は、sudo を使用すると、自分のホーム ディレクトリへのアクセス許可が拒否されることです。
私の UID は 501 で、管理者グループ (GID 80) のメンバーであるため、sudo を使用できます。
Ubuntu サーバーでは、ホーム ディレクトリを次のように構成しました。
Ubuntu# ls -ln | grep bryan
drwxrwx--- 35 501 80 4096 2012-01-27 14:09 bryan
これは Mac では正しく翻訳されます:
iMac$ ls -l | grep bryan
drwxrwx--- 35 bryan admin 4.0K 27 Jan 14:09 bryan/
root は admin (GID 80) のメンバーでもあるため、sudo によってホーム ディレクトリへのアクセスが許可されるはずですが、以下に示すように、そうではありません。
iMac$ whoami
bryan
iMac$ sudo bash
bash: /Volumes/home/bryan/.bashrc: Permission denied
iMac# whoami
root
iMac# cd /Volumes/home/bryan/
bash: cd: /Volumes/home/bryan/: Permission denied
確認ですが、以下はdscacheutil -q group
私の iMac からの出力の関連部分です。
name: admin
password: *
gid: 80
users: root bryan
sudo を使用するときに iMac 上のホームディレクトリにアクセスできるようにするにはどうすればいいですか?
答え1
を使用すると、ユーザー(uid 0)sudo
に切り替わります。root
失うUIDbrian
とadmin
グループ。(sudo id
正確な値が表示されます。)
以前のNFSバージョン(v3以前)では、すべてのセキュリティチェックをクライアント側でのみ実行していたため、不正なクライアントから保護するための安全策が組み込まれています。クライアントがUIDが0であると言った場合、ないルート権限を取得する –代わりに、NFS サーバーはあなたをユーザーとして認識しますnobody
。
/etc/exports
この保護を無効にするには、オプションが含まれるようにサーバーを編集しno_root_squash
、exportfs -ra
すべてのクライアントで共有を再実行して再マウントします。
NFS 権限をテストする場合、共有上に誰でも書き込み可能なディレクトリがあると便利です。たとえば、Ubuntu では、 ですsudo mkdir /home/temp; sudo chmod a+rwx /home/temp
。その後、OS X で を実行して、新しく作成されたファイルの所有者を即座に確認できますsudo touch /Volumes/home/temp/testfile
。