Skip to main content

Setting Up a Workgroup Directory in Linux

The following procedure may be useful to create workgroup folder for a team of people.

The workgroup name is HR and has some members cbing, mgeller, rgreen
The folder is /data/hr
Only the creators of files in /data/hr folder should be able to delete them.
Members shouldn't worry about file ownership, and all members of the group need full access to files.
Non-members should not have access to any of the files.

The followings will match the requirements written above:

Create the hr group:
# groupadd hr

Create the users:
# useradd -G hr cbing
# useradd -G hr mgeller
# useradd -G hr rgreen

Create /data/hr folder for the group:
# mkdir -p /data/hr

Set the group ownership of the /data/hr folder:
# chown :hr /data/hr

Protect the folder from non-members:
# chmod 770 /data/hr 

SGID bit should be set to ensure that the hr group will have ownership of all newly created files, and also the sticky bit should be set to protect files from deletion by non-owners:
# chmod g+s,o+t /data/hr

Now we can test what we have done:
# su - cbing
$ cd /data/hr
$ touch test_file
$ ls -l test_file
-rw-rw-r-- 1 cbing hr 0 Mar 13 14:21 test_file
$ exit
# su - mgeller
$ cd /data/hr
$ rm test_file
rm: cannot remove 'test_file': Operation not permitted

After the ls command, we can see that the group ownership is set to hr. After the rm command, we can see that mgeller can not delete test_file, which was created by cbing. We also note that although test_file has mode 664 and the folder containing it has mode 770, preventing other users from reading test_file.


Popular posts from this blog

Find and replace with sed command in Linux

Find and replace feature is always handy. It can turn into a torture when it comes to change or delete a simple constant string in a text file. There is a handy tool in linux for doing these kind of tihngs. Actually sed is not a text editor but it is used outside of the text file to make changes.