That will work for my dynamic creation. Does anyone know why the %U variable returns username + underscore(username_) instead of just username?
On Wed, Apr 8, 2009 at 2:27 PM, Brian Gregorcy <brian.grego...@utah.edu>wrote: > 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 >>> >>> >> -- Ken Lupo, Saline Area Schools Office: 734.429.8014 Mobile: 248.881.5681 Blog: http://blogs.salineschools.com/lupok -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/options/samba