tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

macからnfsマウントしてlinux(centos)のファイルをsublime textで保存/編集したときに困ったことメモ② - 一定時間経つと毎回パスワードを聞かれる(exportsのall_squash,anonuid,anongidで対応してみる)

はじめに

macからlinuxnfsマウントしてsublime textでファイルを編集する際に困ったことがあったのでメモ。

困った内容

以前macからlinuxnfsマウントをする記事を書いた。
Mac OS XでCentOSに入れたsamba経由でのアクセスが遅いのでNFSにしてみるメモ(exports, mount_nfs, diskutil unmount)

上記の記事でやりたいことはこれ

  • macnfsクライアント(マウントする側)
  • linuxnfsサーバー(exportsする側/マウントされる側)
  • mac側とlinux側のユーザ、グループは一致していない
  • macではエディタとしてsublime textを使ってlinux(nfs)のファイルを保存/編集
困ったこと

保存時にパスワードが聞かれる。
一度入力しても一定時間(3〜5分)たつごとに聞かれる。

キャプチャ的にはこんな感じ
  • 保存するとmacのユーザ名が出てmacユーザのパスワードを効かれる
    パスワードをいれれば保存できる

f:id:tweeeety:20141224230829p:plain

  • ちなみにキャンセルを押すとこんなん

f:id:tweeeety:20141224230834p:plain

対応前の設定

詳細は前回記事リンクを見てもらうとして、今回に関係ありそうな設定のみにフォーカス

linux

/etc/exportsの設定

# /etc/exports
/mnt/hoge 172.23.83.0/24(rw,insecure,no_root_squash,sync)
mac

mac側でマウントするときのコマンド(とオプションとか)

# sudo mount_nfs -P 10.33.87.216:/mnt/hoge /Volumes/nfs01

対応

対応したのはmac側、linux(exports)側の両方

  1. [linux]exportsファイル内の設定でall_squash,anonuid,anongidを指定
  2. [mac]1の設定に合わせ、linuxと同じgidのグループを作成。macのユーザをgroupに追加
  3. [linux]/mnt以下に貼ったシンボリックリンクのユーザ/グループを変更

※ 結果的には直ったが、直接どれかが効いたのか、もしくは、どれかとどれかの複合的な対応が効いたのかは検証していません

1. [linux]exportsファイル内の設定でall_squash,anonuid,anongidを指定

no_root_squash、all_squashを詳細には把握しきれなかったが
下記の記事を参考にall_squash,anonuid,anongidを指定してみた。

※ /etc/exportsにall_squash,anonuid,anongidを指定
# sudo vi /etc/exports
---- vi編集 ----
/mnt/hoge 172.23.83.0/24(rw,insecure,all_squash,anonuid=1105,anongid=1105,sync)
---------------

※ 再起動
# sudo /etc/init.d/nfs restart
参考

2. [mac]1の設定に合わせ、linuxと同じgidのグループを作成。macのユーザをgroupに追加

こちらは下記のサイトを参考にlinuxのグループと同じgidのグループを作成、ユーザをグループに追加した。
Macでグループを追加する方法など

linux

linuxでまずはグループ名とgidを確認

# id
uid=1105(hoge) gid=1105(hoge) 所属グループ=1105(hoge)
mac

主な対応はmac側。

※ グループをつくる
# sudo dscl . -create /Groups/hoge

※ グループにlinuxと同じgidを割り当てる
# sudo dscl . -append /Groups/hoge PrimaryGroupID 1105

※ ユーザをグループに追加
# sudo dscl . -append /Groups/hoge GroupMembership ユーザ名

※ 確認(表示された中にhogeグループがいればoK)
# id -p

3. [linux]/mnt以下に貼ったシンボリックリンクのユーザ/グループを変更

linux側で/mnt下にマウントされるディレクトリへのシンボリックリンクを貼ったが
sudoで行ったのでシンボリックリンクの所有権がrootだった。
(リンク先のディレクトリの所有権はhoge:hoge)

※ シンボリックリンクの所有権をリンク先のディレクトリと同じものに変更
# sudo chown -h hoge:hoge /mnt/hoge

関連の記事

まとめ

一応なおったがどれが直接的に効いたかわからないのが気持ち悪い(><)
まぁ、よしということで。。。。汗