Linux permissions: Difference between revisions
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
mkdir myshare && chmod g+ws myshare # set up a folder for sharing - you want g+w(rite) and g+s(ticky) | mkdir myshare && chmod g+ws myshare # set up a folder for sharing - you want g+w(rite) and g+s(ticky) | ||
If you need to share an existing folder, you need to do | If you need to share an existing folder, you need to do +w and also retroactively update +s on all the directories manually with this stupid hack (because -R doesn't work, stupid linux bullshit): | ||
chmod | chmod ug+ws existingshare | ||
find existingshare -type d -exec chmod | find existingshare -type d -exec chmod ug+s {} \; | ||
find existingshare -type f -exec chmod | find existingshare -type f -exec chmod ug+w {} \; | ||
If this is a git repo, it should be configured to behave: | |||
git config core.sharedRepository group | |||
=== Restricting a user to a specific folder === | === Restricting a user to a specific folder === |
Revision as of 14:13, 24 June 2022
sudo groupadd mygroup # create a group sudo usermod -a -G mygroup myuser # add yourself (and others) mkdir myshare && chmod g+ws myshare # set up a folder for sharing - you want g+w(rite) and g+s(ticky)
If you need to share an existing folder, you need to do +w and also retroactively update +s on all the directories manually with this stupid hack (because -R doesn't work, stupid linux bullshit):
chmod ug+ws existingshare find existingshare -type d -exec chmod ug+s {} \; find existingshare -type f -exec chmod ug+w {} \;
If this is a git repo, it should be configured to behave:
git config core.sharedRepository group
Restricting a user to a specific folder
I have found that for several folders on my server I do not have the w+x bit set for folders:
drwxrwxr-- 12 m m 4.0K Feb 3 2017 .
This was killing me, as I tried to set user-specific permissions on symlinks to subfolders deep within the top level folder. They would fail because the user could not cd to the folder due to the missing +x. You have to make sure the WHOLE F'IN FOLDER CHAIN HAS g+x ON IT in order for a specific user to be able to cd to it.