Whamcloud - gitweb
LU-2302 scripts: prevent lfs_migrate data disclosure
authorDaniel Kobras <d.kobras@science-computing.de>
Wed, 28 Nov 2012 17:57:34 +0000 (09:57 -0800)
committerOleg Drokin <green@whamcloud.com>
Mon, 17 Dec 2012 06:44:13 +0000 (01:44 -0500)
Tighten umask to make sure temporary rsync files are created
with strict permissions that don't grant access to unprivileged
users.

Signed-off-by: Daniel Kobras <d.kobras@science-computing.de>
Change-Id: Ie662edfd615a24ce08cbddb9347f197de41d4d27
Reviewed-on: http://review.whamcloud.com/4699
Tested-by: Hudson
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Keith Mannthey <keith.mannthey@intel.com>
lustre/scripts/lfs_migrate

index 7d9386f..c285510 100755 (executable)
@@ -90,6 +90,12 @@ $RSYNC --help 2>&1 | grep -q acls && RSYNC_OPTS="$RSYNC_OPTS -A"
 # If rsync copies lustre xattrs in the future, then we can skip lfs (bug 22189)
 strings $(which $RSYNC) 2>&1 | grep -q lustre && LFS=:
 
 # If rsync copies lustre xattrs in the future, then we can skip lfs (bug 22189)
 strings $(which $RSYNC) 2>&1 | grep -q lustre && LFS=:
 
+# rsync creates its temporary files with lenient permissions, even if
+# permissions on the original files are more strict. Tighten umask here
+# to avoid the brief window where unprivileged users might be able to
+# access the temporary file.
+umask 0077
+
 lfs_migrate() {
        while IFS='' read -d '' OLDNAME; do
                $ECHO -n "$OLDNAME: "
 lfs_migrate() {
        while IFS='' read -d '' OLDNAME; do
                $ECHO -n "$OLDNAME: "