script to check for a directory in /home for all users


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting script to check for a directory in /home for all users
# 1  
Old 12-30-2010
script to check for a directory in /home for all users

Following on from this post:
https://www.unix.com/shell-programmin...sers-home.html
and getting told off for bumping the threadSmilie

Please could someone help me with a short script to check is a certain directory is present in /home for all users and if not create it?

Thanks

Last edited by barrydocks; 12-30-2010 at 01:38 PM.. Reason: typo
# 2  
Old 12-30-2010
Posts #1 and #7 in that thread are vague, difficult to understand and appear contradictory. I can see why post #7 stopped the thread dead.

In order to script something there would need to be an existing working manual process or at least a clear definition of the process. I see neither.
I don't think that it is even clear which computer(s) need the process or whether you are clear what "mount" means in the unix world.

Others may differ.
# 3  
Old 12-30-2010
Quote:
Originally Posted by methyl
Posts #1 and #7 in that thread are vague, difficult to understand and appear contradictory. I can see why post #7 stopped the thread dead.

In order to script something there would need to be an existing working manual process or at least a clear definition of the process. I see neither.
I don't think that it is even clear which computer(s) need the process or whether you are clear what "mount" means in the unix world.

Others may differ.
Yes, you are probably right and demonstrates my lack of knowledge as I have only been using Linux for about 18months. I have come a long way in the last 18months as a non-IT proffessional but realise these types of scripts are way beyond my ability, hence the posts on these types of forums - this is probably the best I have found so far.

Basically I have a central server running ubuntu 10.04 server edition. This acts as a file, print, samba, ftp server and gateway for my local network. I have used a mix of ebox, webmin and CLI to administer it. I would like to mount a common directory in the /home directory of all the users at start up. I quickly realised that this was not possible by mounting them via fstab without listing all the mount points individually which is why I have turned to creating a startup script. All the users have real accounts on the server and login via LDAP for samba. In summary I need a script that will:
1. check if a given directory is present in /home of all users
2. create the directory if it is not present to act as a mount point
3. mount a separate directory that resided on a different partition at the mount point that has just been created for all users.

Hopefully this is clearerSmilie

Thanks
# 4  
Old 12-30-2010
Quote:
Originally Posted by barrydocks
1. check if a given directory is present in /home of all users
2. create the directory if it is not present to act as a mount point
Code:
Dir=directory
if ! [ -d "$Dir" ]; then
   mkdir "$Dir"
   # ... other processing 
fi

Quote:
3. mount a separate directory that resided on a different partition at the mount point that has just been created for all users.
How to determine what that separate directory is ?
Is it's name the user's name ?
Why mounting ? Can't you just create a symbolic link pointing to the other dir ?
# 5  
Old 12-30-2010
Thanks. So hypothetically if the directory to be mounted was
Code:
/media/share

the mount point in the users home is:
Code:
/home/{username}/newdir

would the following script do what I want:
Code:
Dir=newdir
if ! [ -d "$Dir" ]; then
 mkdir "$Dir"
fi
ls /home | xargs -n1 -I{} mount /media/share /home/{}/newdir
exit 0

Quote:
Why mounting ? Can't you just create a symbolic link pointing to the other dir ?
I want to jail the user to their home directory for ftp access which is easily done with ProFTP

Thanks again
# 6  
Old 12-30-2010
I'm not totally certain but this should jail the user too :
Code:
cd ~user
ln -fs /media/share/ newdir

This done, if you cd newdir you will be in /media/share/ and after if you cd .. you will be in user's home, not in /media/.
Depending on how the user is jailed in his home directory...
# 7  
Old 12-30-2010
Thank you for making the question clear. Sorry if I was a bit abrupt earlier.

Quote:
3. mount a separate directory that resided on a different partition at the mount point that has just been created for all users.
Like frans I am having difficulty understanding item 3 in a unix context.

The Linux "mount" command is used to mount a filesystem on a mountpoint.
A mountpoint is an empty directory which acts as a pointer to the filesystem.
We would normally mount the filesystem on system startup using parameters in one line of "fstab". I can't see a reason to make this dynamic.

As frans correctly deduced, the conventional approach in unix is to use a soft link (see "man ln") to point a directory under a user's home directory to a directory in a filesystem which is under a different mountpoint from the user's home directory.
I am unclear whether there is to be one common directory for all users or multiple individual directories.

Quote:
1. check if a given directory is present in /home of all users
2. create the directory if it is not present to act as a mount point
If we are using soft links, items 1 and 2 only need to be done once for existing accounts and then as required when a new account is created.


(I had not seen posts #5 and #6 before eventually posting).
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Permissions on a directory in /home for all users

Hi, I have created a shared directory on /home, where all users on a certain group have read, write and execute permissions. I did this using chmod -R g+rwx /home/shared/ The problem is, when a particular user creates a directory within /home/shared, other users are not able to write to... (8 Replies)
Discussion started by: lost.identity
8 Replies

2. Shell Programming and Scripting

Get Home Directory for Users in Login Hook Script

I'm writing a script to use as a LoginHook for my Mac users. As part of this script, I need to write to a location in their home directory, but I can't seem to access the path - at this point in the login process, $HOME is empty and ~ gives the path to root's home. Unfortunately, I can't just do... (1 Reply)
Discussion started by: blondepianist
1 Replies

3. Red Hat

SSH lock users to the Home Directory

Hi friends, I must to give ssh connection to own customer. So I want to lock ssh user on own home directory. It is not necessery to reach other folders. I know that ftp user can lock on own folder but I don't know how to lock ssh user. I am waitting your kindly helps :D ---------- Post... (10 Replies)
Discussion started by: getrue
10 Replies

4. UNIX for Advanced & Expert Users

about the access permission of users home directory

RHEL5.0 As we know, when root create a new user, a new home directory will be created : /home/user I want to know what determine the access permission of /home/user . Thanks! (1 Reply)
Discussion started by: cqlouis
1 Replies

5. Solaris

Common Home directory for different users??

Hi Guys, I have a problem with configuring a server. this is a solaris 10 with sparc platform. I have setup so that the server is Authenticating through NIS but I dont want the server to Mount the Home directories. The users need to logged in through the CDE/display. I have over 200 users... (2 Replies)
Discussion started by: Luky
2 Replies

6. Solaris

find home directory paths for all users

How to find al the user's home directories? (2 Replies)
Discussion started by: a2156z
2 Replies

7. UNIX for Dummies Questions & Answers

lost /home/directory for users

I'm using HPUX 11i. The other day a user logon to the workstation and was not able to find the /home/directory (tom is the directory) I login myself and it is the same thing. The home directory is on the server, so I was thinking of using sam to map it again. does anyone know how to do it... (5 Replies)
Discussion started by: blizzgamer
5 Replies

8. UNIX for Dummies Questions & Answers

Home Directory Jail for Users

Hi, I am looking for a shell script (or any other way), that puts a user in a home directory jail. So for example, I have a user named richard and I don't want him wandering outside /usr/users/richard. I don't want him to cd to anywhere including cd .. Somebody said you can do that with... (3 Replies)
Discussion started by: mz043
3 Replies

9. UNIX for Dummies Questions & Answers

Profiles for users without home directory

Hi I want to know which profile will be called when a user without home directory is created. When I created a user without home directory(by setting in /etc/default/useradd), the user is able to login directly into the main "/" folder but with only read permissions. Thanks naina (3 Replies)
Discussion started by: naina
3 Replies

10. UNIX for Dummies Questions & Answers

Restrict users to ther home directory

Hello! I want users in a certain group to be restricted to their home directory. So that they have full access to all files and folders in their home directory but the cant go to any directory above. Does anyone know how to do this? Anders (1 Reply)
Discussion started by: alfabetman
1 Replies
Login or Register to Ask a Question