> How can I perform a simple check to make sure a user's home directory is mounted to a specific system?
sub has_mounted_home {
my $uid = shift || die 'Wrong Parameters!\n';
my @userinfo = getpwnam("$uid");
# $uid not found:
return if @userinfo == 0;
my $local_homedir = $userinfo[7];
# perhaps use Linux::Mounts instead of:
my $mount_result = `/bin/mount | /bin/grep $local_homedir`;
# needs improvement because /homes/user1 will match e.g. /homes/us
+er12 ...
return $mount_result ne "";
}
foreach my $uid ('uid1', 'uid2', 'uid3') {
print "$uid has a mounted home\n" if has_mounted_home($uid);
}
That should do if you don't have an automounter but static mounted homes. If you have an automounter, try f00li5h or shmems solutions since you'll have to access the directories before they are mounted automatically what you'll have to check then.
I prefere looking into the 'mounts' instead of just checking if e.g. '/homes/user1' exists. It may exist but without a mounted home directory to it!
k
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|