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