tags 338920 + patch thanks, Jason Hoover @ 2005-11-13 (Sunday), 15:26 (-0500) > Migrationtools leaves insecure temporary files containing information from > /etc/shadow.
Attached is a patch that calls mktemp at appropriate places. I took the liberty to change the variable names used from TMPDIR to TEMPDIR, as the first one has a special meaning. During a test run it seemed to still work for me, without leaving any world readable files around. -- /Martin
diff -ur migrationtools-46/migrate_all_netinfo_offline.sh migrationtools-46-patched/migrate_all_netinfo_offline.sh --- migrationtools-46/migrate_all_netinfo_offline.sh 2004-10-28 10:38:46.000000000 +0200 +++ migrationtools-46-patched/migrate_all_netinfo_offline.sh 2005-11-18 18:51:06.982095768 +0100 @@ -39,16 +39,16 @@ PATH=$PATH:. export PATH -TMPDIR="/tmp" -ETC_PASSWD="$TMPDIR/passwd.$$.ldap" -ETC_GROUP="$TMPDIR/group.$$.ldap" -ETC_SERVICES="$TMPDIR/services.$$.ldap" -ETC_PROTOCOLS="$TMPDIR/protocols.$$.ldap" -ETC_FSTAB="$TMPDIR/fstab.$$.ldap" -ETC_RPC="$TMPDIR/rpc.$$.ldap" -ETC_HOSTS="$TMPDIR/hosts.$$.ldap" -ETC_NETWORKS="$TMPDIR/networks.$$.ldap" -ETC_ALIASES="$TMPDIR/aliases.$$.ldap" +TEMPDIR="`/bin/mktemp -dt`" +ETC_PASSWD="$TEMPDIR/passwd.$$.ldap" +ETC_GROUP="$TEMPDIR/group.$$.ldap" +ETC_SERVICES="$TEMPDIR/services.$$.ldap" +ETC_PROTOCOLS="$TEMPDIR/protocols.$$.ldap" +ETC_FSTAB="$TEMPDIR/fstab.$$.ldap" +ETC_RPC="$TEMPDIR/rpc.$$.ldap" +ETC_HOSTS="$TEMPDIR/hosts.$$.ldap" +ETC_NETWORKS="$TEMPDIR/networks.$$.ldap" +ETC_ALIASES="$TEMPDIR/aliases.$$.ldap" EXIT=no question="Enter the NetInfo domain to import from [/]:" diff -ur migrationtools-46/migrate_all_netinfo_online.sh migrationtools-46-patched/migrate_all_netinfo_online.sh --- migrationtools-46/migrate_all_netinfo_online.sh 2004-10-28 10:38:46.000000000 +0200 +++ migrationtools-46-patched/migrate_all_netinfo_online.sh 2005-11-18 18:51:22.649713928 +0100 @@ -39,16 +39,16 @@ PATH=$PATH:. export PATH -TMPDIR="/tmp" -ETC_PASSWD="$TMPDIR/passwd.$$.ldap" -ETC_GROUP="$TMPDIR/group.$$.ldap" -ETC_SERVICES="$TMPDIR/services.$$.ldap" -ETC_PROTOCOLS="$TMPDIR/protocols.$$.ldap" -ETC_FSTAB="$TMPDIR/fstab.$$.ldap" -ETC_RPC="$TMPDIR/rpc.$$.ldap" -ETC_HOSTS="$TMPDIR/hosts.$$.ldap" -ETC_NETWORKS="$TMPDIR/networks.$$.ldap" -ETC_ALIASES="$TMPDIR/aliases.$$.ldap" +TEMPDIR="`/bin/mktemp -dt`" +ETC_PASSWD="$TEMPDIR/passwd.$$.ldap" +ETC_GROUP="$TEMPDIR/group.$$.ldap" +ETC_SERVICES="$TEMPDIR/services.$$.ldap" +ETC_PROTOCOLS="$TEMPDIR/protocols.$$.ldap" +ETC_FSTAB="$TEMPDIR/fstab.$$.ldap" +ETC_RPC="$TEMPDIR/rpc.$$.ldap" +ETC_HOSTS="$TEMPDIR/hosts.$$.ldap" +ETC_NETWORKS="$TEMPDIR/networks.$$.ldap" +ETC_ALIASES="$TEMPDIR/aliases.$$.ldap" EXIT=no question="Enter the NetInfo domain to import from [/]:" diff -ur migrationtools-46/migrate_all_nis_offline.sh migrationtools-46-patched/migrate_all_nis_offline.sh --- migrationtools-46/migrate_all_nis_offline.sh 2004-10-28 10:38:46.000000000 +0200 +++ migrationtools-46-patched/migrate_all_nis_offline.sh 2005-11-18 18:51:30.386537752 +0100 @@ -39,16 +39,16 @@ PATH=$PATH:. export PATH -TMPDIR="/tmp" -ETC_PASSWD="$TMPDIR/passwd.$$.ldap" -ETC_GROUP="$TMPDIR/group.$$.ldap" -ETC_SERVICES="$TMPDIR/services.$$.ldap" -ETC_PROTOCOLS="$TMPDIR/protocols.$$.ldap" -ETC_FSTAB="$TMPDIR/fstab.$$.ldap" -ETC_RPC="$TMPDIR/rpc.$$.ldap" -ETC_HOSTS="$TMPDIR/hosts.$$.ldap" -ETC_NETWORKS="$TMPDIR/networks.$$.ldap" -ETC_ALIASES="$TMPDIR/aliases.$$.ldap" +TEMPDIR="`mktemp -dt`" +ETC_PASSWD="$TEMPDIR/passwd.$$.ldap" +ETC_GROUP="$TEMPDIR/group.$$.ldap" +ETC_SERVICES="$TEMPDIR/services.$$.ldap" +ETC_PROTOCOLS="$TEMPDIR/protocols.$$.ldap" +ETC_FSTAB="$TEMPDIR/fstab.$$.ldap" +ETC_RPC="$TEMPDIR/rpc.$$.ldap" +ETC_HOSTS="$TEMPDIR/hosts.$$.ldap" +ETC_NETWORKS="$TEMPDIR/networks.$$.ldap" +ETC_ALIASES="$TEMPDIR/aliases.$$.ldap" EXIT=no question="Enter the NIS domain to import from (optional): " diff -ur migrationtools-46/migrate_all_nis_online.sh migrationtools-46-patched/migrate_all_nis_online.sh --- migrationtools-46/migrate_all_nis_online.sh 2004-10-28 10:38:46.000000000 +0200 +++ migrationtools-46-patched/migrate_all_nis_online.sh 2005-11-18 18:51:39.221194680 +0100 @@ -40,16 +40,16 @@ export PATH -TMPDIR="/tmp" -ETC_PASSWD="$TMPDIR/passwd.$$.ldap" -ETC_GROUP="$TMPDIR/group.$$.ldap" -ETC_SERVICES="$TMPDIR/services.$$.ldap" -ETC_PROTOCOLS="$TMPDIR/protocols.$$.ldap" -ETC_FSTAB="$TMPDIR/fstab.$$.ldap" -ETC_RPC="$TMPDIR/rpc.$$.ldap" -ETC_HOSTS="$TMPDIR/hosts.$$.ldap" -ETC_NETWORKS="$TMPDIR/networks.$$.ldap" -ETC_ALIASES="$TMPDIR/aliases.$$.ldap" +TEMPDIR="`/bin/mktemp -dt`" +ETC_PASSWD="$TEMPDIR/passwd.$$.ldap" +ETC_GROUP="$TEMPDIR/group.$$.ldap" +ETC_SERVICES="$TEMPDIR/services.$$.ldap" +ETC_PROTOCOLS="$TEMPDIR/protocols.$$.ldap" +ETC_FSTAB="$TEMPDIR/fstab.$$.ldap" +ETC_RPC="$TEMPDIR/rpc.$$.ldap" +ETC_HOSTS="$TEMPDIR/hosts.$$.ldap" +ETC_NETWORKS="$TEMPDIR/networks.$$.ldap" +ETC_ALIASES="$TEMPDIR/aliases.$$.ldap" EXIT=no question="Enter the NIS domain to import from (optional): " diff -ur migrationtools-46/migrate_all_nisplus_offline.sh migrationtools-46-patched/migrate_all_nisplus_offline.sh --- migrationtools-46/migrate_all_nisplus_offline.sh 2004-10-28 10:38:46.000000000 +0200 +++ migrationtools-46-patched/migrate_all_nisplus_offline.sh 2005-11-18 18:51:46.266123688 +0100 @@ -39,17 +39,17 @@ PATH=$PATH:/usr/lib/nis:. export PATH -TMPDIR="/tmp" -ETC_PASSWD="$TMPDIR/passwd.$$.ldap" -ETC_GROUP="$TMPDIR/group.$$.ldap" -ETC_SERVICES="$TMPDIR/services.$$.ldap" -ETC_PROTOCOLS="$TMPDIR/protocols.$$.ldap" -ETC_FSTAB="$TMPDIR/fstab.$$.ldap" -ETC_RPC="$TMPDIR/rpc.$$.ldap" -ETC_HOSTS="$TMPDIR/hosts.$$.ldap" -ETC_NETWORKS="$TMPDIR/networks.$$.ldap" -ETC_NETGROUP="$TMPDIR/netgroup.$$.ldap" -ETC_ALIASES="$TMPDIR/aliases.$$.ldap" +TEMPDIR="`/bin/mktemp -dt`" +ETC_PASSWD="$TEMPDIR/passwd.$$.ldap" +ETC_GROUP="$TEMPDIR/group.$$.ldap" +ETC_SERVICES="$TEMPDIR/services.$$.ldap" +ETC_PROTOCOLS="$TEMPDIR/protocols.$$.ldap" +ETC_FSTAB="$TEMPDIR/fstab.$$.ldap" +ETC_RPC="$TEMPDIR/rpc.$$.ldap" +ETC_HOSTS="$TEMPDIR/hosts.$$.ldap" +ETC_NETWORKS="$TEMPDIR/networks.$$.ldap" +ETC_NETGROUP="$TEMPDIR/netgroup.$$.ldap" +ETC_ALIASES="$TEMPDIR/aliases.$$.ldap" EXIT=no question="Enter the NIS+ domain to import from (optional): " diff -ur migrationtools-46/migrate_all_nisplus_online.sh migrationtools-46-patched/migrate_all_nisplus_online.sh --- migrationtools-46/migrate_all_nisplus_online.sh 2004-10-28 10:38:46.000000000 +0200 +++ migrationtools-46-patched/migrate_all_nisplus_online.sh 2005-11-18 18:51:52.851122616 +0100 @@ -40,17 +40,17 @@ export PATH -TMPDIR="/tmp" -ETC_PASSWD="$TMPDIR/passwd.$$.ldap" -ETC_GROUP="$TMPDIR/group.$$.ldap" -ETC_SERVICES="$TMPDIR/services.$$.ldap" -ETC_PROTOCOLS="$TMPDIR/protocols.$$.ldap" -ETC_FSTAB="$TMPDIR/fstab.$$.ldap" -ETC_RPC="$TMPDIR/rpc.$$.ldap" -ETC_HOSTS="$TMPDIR/hosts.$$.ldap" -ETC_NETWORKS="$TMPDIR/networks.$$.ldap" -ETC_NETGROUP="$TMPDIR/netgroup.$$.ldap" -ETC_ALIASES="$TMPDIR/aliases.$$.ldap" +TEMPDIR="`mktemp -dt`" +ETC_PASSWD="$TEMPDIR/passwd.$$.ldap" +ETC_GROUP="$TEMPDIR/group.$$.ldap" +ETC_SERVICES="$TEMPDIR/services.$$.ldap" +ETC_PROTOCOLS="$TEMPDIR/protocols.$$.ldap" +ETC_FSTAB="$TEMPDIR/fstab.$$.ldap" +ETC_RPC="$TEMPDIR/rpc.$$.ldap" +ETC_HOSTS="$TEMPDIR/hosts.$$.ldap" +ETC_NETWORKS="$TEMPDIR/networks.$$.ldap" +ETC_NETGROUP="$TEMPDIR/netgroup.$$.ldap" +ETC_ALIASES="$TEMPDIR/aliases.$$.ldap" EXIT=no question="Enter the NIS+ domain to import from (optional): " diff -ur migrationtools-46/migrate_all_offline.sh migrationtools-46-patched/migrate_all_offline.sh --- migrationtools-46/migrate_all_offline.sh 2004-10-28 10:38:46.000000000 +0200 +++ migrationtools-46-patched/migrate_all_offline.sh 2005-11-18 18:52:01.406821952 +0100 @@ -41,7 +41,7 @@ # Luke Howard <[EMAIL PROTECTED]> April 1997 # -DB="/tmp/nis.$$.ldif" +DB="`mktemp -dt`/nis.$$.ldif" if [ "X$ETC_ALIASES" = "X" ]; then ETC_ALIASES=/etc/aliases diff -ur migrationtools-46/migrate_all_online.sh migrationtools-46-patched/migrate_all_online.sh --- migrationtools-46/migrate_all_online.sh 2004-10-28 10:38:46.000000000 +0200 +++ migrationtools-46-patched/migrate_all_online.sh 2005-11-18 18:52:13.561974088 +0100 @@ -38,7 +38,7 @@ SHELL=/bin/sh export SHELL -DB=/tmp/nis.$$.ldif +DB=`/bin/mktemp -dt`/nis.$$.ldif if [ "X$ETC_ALIASES" = "X" ]; then ETC_ALIASES=/etc/aliases