Here is the script that we use to create the home directory when the user first
logs in.
humboldt samba # cat mkhomedir.sh
#!/bin/bash
# Creates home directories when account is created
# gregorcy
# Created: 03/21/2008
# Last Mod: 06/10/2008 - Added the if for is fac and cleanup
###################################################################
#
# Variables
hostname=`hostname`
blessed="The permissions have been fixed "
subject1="does not have valid email in our LDAP"
subject2="A user is missing their homedir on $hostname the home dir has been
created but the old homedirs should be checked for data"
emailto="supp...@che.utah.edu"
emailmes="/tmp/emailmessage.txt"
ldapmail=`ldapsearch -D "cn=***,ou=***,dc=*****,dc=utah,dc=edu" -b
"ou=***,dc=***,dc=utah,dc=edu" -w ***** -x -LLL "(sAMAccountName=$1)" mail | grep mail |
sed 's/......//'`
ldapfac=`ldapsearch -D "cn=***,ou=***,dc=****,dc=utah,dc=edu" -b "ou=***,dc=***,dc=utah,dc=edu"
-w ********* -x -LLL "(sAMAccountName=$1)" memberof >> /tmp/testfac`
grep -q Faculty /tmp/testfac
isfac=$?
echo $isfac
# functionville
function createbless () {
touch /home/CHEMENG/$1/.blessed
echo "$blessed" >> /home/CHEMENG/$1/.blessed
#chown root:root /home/CHEMENG/$1/.blessed
chmod 700 /home/CHEMENG/$1/.blessed
}
# scriptage
if [ ! -e /home/CHEMENG/$1 ]; then
echo "The home dir for "$1 "was not found probably was not migrated "> $emailmes
mkdir /home/CHEMENG/$1
echo "Created the home directory but should check trashheap or CHE-2551-30 for old stuff" >> $emailmes
mail -s "$subject2" supp...@***.utah.edu < $emailmes
rm -r $emailmes
fi
if [ ! -e /home/CHEMENG/$1/.blessed ]; then
mkdir /home/CHEMENG/$1
if [ $isfac = 0 ]; then
xfs_quota -x -c "limit bsoft=61440M bhard=63000M $1"
/home
fi
if [ $isfac != 0 ]; then
xfs_quota -x -c "limit bsoft=3072M bhard=3200M $1" /home
fi
#cp -r /etc/skel/* /home/CHEMENG/$1/*
chown "$1:CHEMENG+Domain Users" /home/CHEMENG/$1
chmod -R 711 /home/CHEMENG/$1
if [ -z $ldapmail ]; then
echo "Add the attribute mail to the user $1"> $emailmes
echo "then manually :( create the .forward in
/home/CHEMENG/$1" >> $emailmes
echo "Or add the email attribute to the AD and delete the .blessed
file " >> $emailmes
mail -s "$1 $subject1" supp...@***.utah.edu <
$emailmes
rm -r $emailmes
createbless $1
exit 0
fi
touch /home/CHEMENG/$1/.forward
echo "$ldapmail" >> /home/CHEMENG/$1/.forward
#chown root:root /home/CHEMENG/$1/.forward
chmod 700 /home/CHEMENG/$1/.forward
createbless $1
# mod the public_html folder so apache can see it
chown -R "$1:apache" /home/CHEMENG/$1/public_html
chmod -R 751 /home/CHEMENG/$1/public_html
chmod -R g+s /home/CHEMENG/$1/public_html
fi
# Clean Up
rm /tmp/testfac
exit 0
# Notes
# Basic premise for the .forward add
# touch /home/CHEMENG/$1/foo.txt
# echo "grego...@***.utah.edu" >> /home/CHEMENG/$1/foo.txt
# LDAP Search String
# ldapsearch -D "cn=***,ou=********,dc=*********,dc=utah,dc=edu" -b
"ou=*********8,dc=********,dc=utah,dc=edu" -w ******** -x -LLL
"(sAMAccountName=********)" mail | grep mail
# Output looks like this:
# mail: j...@***.utah.edu
Adam Williams wrote:
see root preexec = in the man page. so when they go to %U$ (such as
using logon home = z: ) it will run a script that creates the required
directory in /home/pc/
Ken Lupo wrote:
Hello,
I am attempting to dynamically create user shares when they connect to the
server based on their username. I cannot use [homes]. My reasoning for this
is that the users require a $ at the end of the share or it becomes
confusing to them(long story). What I'm seeing is that some Windows XP
clients will connect to /home/<username> but other clients try to connect to
/home/<username>_ (with an underscore). For a work around I have symlinked
all home folders from <username> to <username>_
Here is my smb.conf file:
[global]
workgroup = PC
realm = PC.DOMAIN.COM
server string = FILE
security = ADS
log file = /var/log/samba/%m.log
local master = No
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
winbind use default domain = Yes
winbind offline logon = false
store dos attributes = Yes
ea support = Yes
dns proxy = no
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192
SO_RCVBUF=8192 SO_KEEPALIVE
inherit acls = yes
inherit permissions = yes
map acl inherit = yes
[%U$]
path = /home/PC/%U
comment = Homes
read only = No
Any help would be greatly appreicated.
Thank you,
Ken
--
To unsubscribe from this list go to the following URL and read the
instructions: https://lists.samba.org/mailman/options/samba