17

I'm migrating a lot of small custom scripts and data from a Linux system to another.

On the old system we had a shared user that owned most of the files and they where located in that users /home, but on the new one we would rather login with our own accounts and use group permissions to collaborate, but as there won't be a single owner of the files, there is no /home-dir.

So where should I put those shared files? Should I create a no-login-user that owns the files? Or is there a suitable /grouphome-like place?

(I don't want to spread them out in individual users /home:s.)

3
  • What kind of files are they?
    – Dan Carley
    Oct 29, 2009 at 10:25
  • Most are import scripts with different kind of associated data that should be filtered and imported to databases.
    – Daniel
    Oct 29, 2009 at 10:31
  • I like /grouphome. The no-login-user that owns the files idea is also good.
    – pjc50
    Oct 29, 2009 at 12:15

4 Answers 4

17

I'd almost certainly suggest using /usr/local.

Globally accessible user scripts can be placed in /usr/local/bin. Small amounts of associated data could also go into bin. Or you may wish to separate out the data into /usr/local/var or /usr/local/share.

By doing this you'll be quite sure that anyone FHS familar will be able to locate them pretty quickly without any prior knowledge of the particular system.

3
7

It is exactly the sort of thing that group rights are designed for. This is how I do it in Ubuntu:

sudo mkdir /home/shared
sudo addgroup shared
sudo chown :shared /home/shared
sudo chmod 770 /home/shared
sudo vim /etc/group

Add the list of users who are to have access to the shared directory to the shared group. For example:

shared:x:1002:norman,nextuser,and,so-on

You can, of course, use any name other than 'shared' and it does not have to be in the /home directory. The nice thing is that you don't need to do anything special to the user's accounts and you can easily add or remove users from the group.

3
  • Thanks for the down-vote. But I would like to know what I have written that is incorrect.
    – simplr
    Nov 18, 2009 at 10:58
  • also set the group sticky bit, so that the group is set for new files created. chmod g+s /home/shared
    – jris198944
    May 13, 2014 at 8:43
  • 1
    @jris198944 s is for SUID and GUID bits, t is for sticky bit. Double check before posting, please ;-) See : unix.stackexchange.com/a/79401/136321.
    – leaf
    Apr 8, 2018 at 17:05
1

The short answer is; Wherever you like :)

I like to use something like /projects, /shared or /common. /home/shared works too.

3
  • Thanks. Short and nice, but sometimes it's easier if you don't have to make up your own mind ... Would it be FHS-compliant to put my own directory right under /? When (if at all) does it matter? I'm not experienced enough to realize the implications of my choice.
    – Daniel
    Oct 29, 2009 at 10:48
  • Those are really just conventions. Other programs that look for stuff my look in these predefined locations. The bin directories will already be in your $PATH so you won't have specify the full path name to run the script. Other admins might expect them to be there. It probably doesn't really matter in your case, but good habits are good :-) Oct 29, 2009 at 11:43
  • There are a number of applicable conventions is UNIX environments. The FHS makes for a good baseline, but it is quite common to deviate from this standard. For example the Optimal Flexible Architecture for Oracle database servers use /u* (/u01, /u02) for local user data while Ubuntu among others use /media for removable media mount points. As long as you have a convention that you agree on internally in your operational environment, there should be no issue.
    – Roy
    Oct 29, 2009 at 12:36
0

I use /shares; this is also the location that qnap uses.

In /shares I have a symlinks to destination in a folder called /shares/.mnt/ where I have the mounted data drives.

This is done to prevent long wait times when moving files between shares when using hardlinks in /shares which are needed when data drives are only mounted in /mnt.

/shares/.mnt is not shared, by the way.

You must log in to answer this question.

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