aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-03-21 17:38:15 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-03-21 17:38:15 +0000
commite29c4698e94365bc47981ccc057076425f74ab8d (patch)
tree8406fe6881b869b32509d0eba0e790fef7d657f9 /include
parentdd11dfcc3fe43c594d8d58917378bd454a1de492 (diff)
downloadupstream-e29c4698e94365bc47981ccc057076425f74ab8d.tar.gz
upstream-e29c4698e94365bc47981ccc057076425f74ab8d.tar.bz2
upstream-e29c4698e94365bc47981ccc057076425f74ab8d.zip
[include] image.mk: only upgrade permissions instead of overwriting, utilize tar -p flag for targz image targets (#7667)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26259 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'include')
-rw-r--r--include/image.mk10
1 files changed, 6 insertions, 4 deletions
diff --git a/include/image.mk b/include/image.mk
index 29328b314e..c72ec81806 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -111,7 +111,8 @@ endif
ifneq ($(CONFIG_TARGET_ROOTFS_TARGZ),)
define Image/mkfs/targz
- $(TAR) -zcf $(BIN_DIR)/$(IMG_PREFIX)-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
+ # Preserve permissions (-p) when building as non-root user
+ $(TAR) -czpf $(BIN_DIR)/$(IMG_PREFIX)-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
endef
endif
@@ -137,9 +138,10 @@ endif
define Image/mkfs/prepare/default
- - $(FIND) $(TARGET_DIR) -type f -not -perm +0100 -not -name 'ssh_host*' -print0 | $(XARGS) -0 chmod 0644
- - $(FIND) $(TARGET_DIR) -type f -perm +0100 -print0 | $(XARGS) -0 chmod 0755
- - $(FIND) $(TARGET_DIR) -type d -print0 | $(XARGS) -0 chmod 0755
+ # Use symbolic permissions to avoid clobbering SUID/SGID/sticky bits
+ - $(FIND) $(TARGET_DIR) -type f -not -perm +0100 -not -name 'ssh_host*' -print0 | $(XARGS) -0 chmod u+rw,g+r,o+r
+ - $(FIND) $(TARGET_DIR) -type f -perm +0100 -print0 | $(XARGS) -0 chmod u+rwx,g+rx,o+rx
+ - $(FIND) $(TARGET_DIR) -type d -print0 | $(XARGS) -0 chmod u+rwx,g+rx,o+rx
$(INSTALL_DIR) $(TARGET_DIR)/tmp
chmod 0777 $(TARGET_DIR)/tmp
endef