自動的にユーザー間でファイルを読み書き可能にして共有する方法
in

Macでファイルを別のユーザーと共有するには普通は2つの方法がある。

  • パブリックフォルダ
  • Drop Boxにファイルをコピーすると相手がそのファイルを見れるようになる。

  • Sharedフォルダ
  • ここにコピーしたファイルは誰でも見れるようになる。

これだとファイルを作った人(所有者/Owner)しか書き込みや削除が出来ない。Windowsでは共有フォルダを作ったらそこにあるファイルは自動的にそのフォルダにアクセス権がある人は誰でも読み書きできる。重要なのは「自動的に」というところ。Macではいちいち、ファイルやフォルダごとに書き込み権限を他のユーザーに与えないといけない。複数の人でMac上のファイルを編集したりするには自動的に読み書きできたほうが便利。

ところがMacでは自動的にこれをするのはなかなか難しいよう。いろいろ調べてやっと、Access Control Lists (ACLs)というのを設定しないといけないと分かった。ちょっと手順が面倒なのでここでまとめておく。

  1. 新しいグループを作る
  2. 最初に新しいグループを作る。System Preferences -> Accounts
    と開いて+を押す。ドロップメニューからGroupを選択。グループ名を入力する。ここではグループ名を「Family」とする。ファイルを共有するユーザーにチェックマークをつけておく(チェックをつけたユーザーはそのグループに所属することになる)。

    ここで注意が必要なのは見た目上のグループ名はFamilyだが、OS内部の扱いは「family」(全部小文字)になること。後でコマンドを入力するときはグループ名を指定するときにはこの小文字のほうを指定する(AdvancedでOS内部でのグループ名を確認できる)。

  3. 新規にフォルダを作る
  4. ここから先はTerminal上で操作する。今回は/Users/Sharedの下にFamilyというフォルダを作ることにする。

    cd /Users/Shared
    mkdir Family

  5. オーナーを変更する
  6. Familyフォルダのオーナーをグループのfamily (1.で作ったグループ名。小文字であることに注意)

    sudo chown :family Family

    このときもしかしたら :family ではなく他の指定方法もあるのかも。僕は :family でうまく行ったようなのでこれで良しとする。

  7. パーミッションも変更する
  8. フォルダFamilyにグループに読み書きのパーミッションを追加。

    sudo chmod 770 Family

  9. ACLを設定する
  10. これが一番の肝。フォルダFamily新しく作られたファイルがすべてグループfamilyで動作するようにする。

    sudo chmod +a "group:family allow delete,readattr,writeattr,readextattr,writeextattr,list,search,add_file,add_subdirectory,delete_child,file_inherit,directory_inherit" Family

これで共有フォルダとしてFamilyが使えるようになる。

注意点

この方法で作ったフォルダにファイルをコピーしたり、このフォルダで新規にファイルを作成した場合はグループFamilyに所属する人は誰でも読み書き、削除ができる。ところが、自分のフォルダ、例えばデスクトップに作ったファイルを「移動」すると、他の人は読むことは出来ても書き込みや削除は出来ない。その場合は、そのファイルのパーミッションを手動で変更する必要がある。

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <code> <cite> <ul> <ol> <li> <dl> <dt> <dd> <p>
  • Lines and paragraphs break automatically.
  • Link to Amazon products with: [amazon product_id inline|full|thumbnail]. Example: [amazon 1590597559 thumbnail]
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Images can be added to this post.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.