From dd7f5a376cbb0121f33efa705803186b250c2bd2 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Thu, 15 Apr 2004 22:31:20 +0000 Subject: New code added (interacting with new script localuserconfig) for automount access to remote SMB share. --- user-init | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to 'user-init') diff --git a/user-init b/user-init index 5582200..7ede2c4 100755 --- a/user-init +++ b/user-init @@ -11,6 +11,41 @@ mac="mac" # Optimized for sharing through AppleShare (netatalk) pc="pc" # Optimized for sharing though SMB/CIFS (Samba) xchange="xchange" # Readable by group +# config (edit /etc/local/users.conf to override) + +# which are user accounts (adduser values are used if empty) +first_uid="" +last_uid="" + +do_quota="no" # Manage disk quota +do_distrib="no" # Distributed shares (software archive) +do_personal="no" # Personal shares (mac, pc, public_html) +do_xchange="no" # Group-readable shares +do_public="no" # Public share (web homepage) +do_mac="no" # AppleShare-optimized share (netatalk) +do_pc="no" # SMB-ptimized share (Samba) +do_server="no" # Personal share on remote SMB server + +quota_roots="" # space-delimited list of disk devices +quota_soft="100000" +quota_hard="1000000" +quota_newstyle="yes" # Woody used a different syntax... + +xchange_root="xchange" +xchange_sharedroot="/home/XCHANGE" + +mac_root="mac" + +pc_root="pc" + +server_name="SERVER" # SMB name of remote server +server_desc="remote server" +server_root="server" +server_conf="/etc/security/pam_mount.conf" +server_userconf=".winpassword" + +### No servicable parts below this line! ### + if [ -e /etc/adduser.conf ]; then . /etc/adduser.conf else @@ -20,6 +55,9 @@ fi [ -r /etc/local/users.conf ] && . /etc/local/users.conf +#TODO: Add conversion like below, and change remaining script to new variable names +#[ -n "$XDIR" ] && xchange_sharedroot="$XDIR" + # exit silently if this system lacks required hints [ -r /etc/local/volumes ] && . /etc/local/volumes || exit 0 @@ -96,6 +134,15 @@ for user in $USERS; do mkdir -p $HOME/public_html fi + su -s /bin/bash -c localuserconfig $user + + if [ "$do_server" = "yes" -a -r "$server_conf" -a -r $HOME/"$server_userconf" ]; then + server_username="$(grep '^username' $HOME/$server_userconf | awk -F= '{print $2}' | head -1 | awk '{print $1}')" +# grep -q "^volume $user smb $server_name $server_username " "$server_conf" || echo "volume $user smb $server_name $server_username $HOME/$server_root uid=$user,gid=$user - -" >> "$server_conf" + perl -pi -e "s|^volume $user .*|volume $user smb $server_name $server_username $HOME/$server_root uid=$user,gid=$user - -|" "$server_conf" + #TODO: Replace line using perl construct (currently a change of login adds a new line) + fi +exit 1 chown $user: $HOME chmod u=rwX,go=rX $HOME @@ -139,7 +186,7 @@ for user in $USERS; do chown -R $user: $HOME/$pc chmod -R u=rw,g=r,o=,ug+X $HOME/$pc fi - + # Exchange dir permissions if [ -d $XDIRREAL/$user ]; then chown -R $user:users $XDIRREAL/$user -- cgit v1.2.3