1

To me this seems like it should be easy but I'm having a hard time finding a very good answer that seems definitive to me.

I have a I have a hard drive mounted that my wife and I share (internal drive). My wife are I both in admin group and this drive's group ownership is also admin.

This volume's current permissions are: drwxrwx---. My wife and I can both add and create files, however, these new files are not inheriting the parent volumes permissions. If I create a new folder or file, the g+w bit is not being set. It's read only.

I don't really want to change my umask from 022 to 002 because it's only this volume I want the g+w bit set. I guess I can if that's the only solution.

I want to ensure that any file created, copied, or moved to this Volume (anywhere on the volume) has the correct permissions. Is this possible?

Or do I need to fall back on umask and a cron job to reset permissions?

edit - first attempt with ACLs

Here is what I tried, as a test. It didn't carry it forward to the next file I created though. I don't think I fully understand how this is supposed to work ...

$ mkdir test-acl
$ chmod 770 test-acl
$ ls -le
total 0
drwxrwx---  2 damon  admin  68 Jan 13 09:50 test-acl
$ chmod +a "admin allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" test-acl
$ ls -le
total 0
drwxrwx---+ 2 damon  admin  68 Jan 13 09:50 test-acl
 0: group:admin allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit
$ cd test-acl
test-acl$  touch test.txt
test-acl$  ls -le
total 0
-rw-r--r--+ 1 damon  admin  0 Jan 13 09:50 test.txt
 0: group:admin inherited allow read,write,execute,delete,append,readattr,writeattr,readextattr,writeextattr,readsecurity
1

You can use the following command:

sudo chmod -R +a "group:examplegroup allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /path/to/folder

Note the -R which should apply recursively.

This won't work for items moved into the folder though.

  • This seems to work! I was a little thrown because the permission of the file are will g+r only ... but when I switched user accounts, my wife had read/write access despite what the terminal told us. Finder.app lists the permissions for admin twice, once with custom ... going to experiement with this more and see if preferable to the umask change. – thornomad Jan 13 '14 at 22:19
  • @thornomad Indeed, the POSIX permissions are different to the ACLs which override them in certain circumstances. – grg Jan 13 '14 at 22:20
1

You can fix this on a folder on the drive using an Access Control List (ACL) to set the right permissions.

Check the man page for chmod(1) and you will need to set 'file_inherit' and 'directory_inherit' on the parent folder and then set permissions on it to read and write the group but nothing for all users.

You may also need to turn on the use of ACLs for SMB sharing if you are sharing via SMB rather than AppleShare.

0

Get Info on on the drive, click the unlock icon (if locked), authenticate with admin creds, then check the Ignore ownership on this volume checkbox.

  • Would that not allow any user (including my kids) have access to the drive? My kids do have accounts on there and I prefer they not have any access. I didn't specify that specifically in my question ... – thornomad Jan 12 '14 at 18:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .