summaryrefslogtreecommitdiff
path: root/user-init
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2004-04-15 22:31:20 +0000
committerJonas Smedegaard <dr@jones.dk>2004-04-15 22:31:20 +0000
commitdd7f5a376cbb0121f33efa705803186b250c2bd2 (patch)
treeb7b580db34071c3b3501df11b062c8b66aa455d1 /user-init
parent7802f291cacd15c3c62617959129025e71bc3c0c (diff)
New code added (interacting with new script localuserconfig) for automount access to remote SMB share.
Diffstat (limited to 'user-init')
-rwxr-xr-xuser-init49
1 files changed, 48 insertions, 1 deletions
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