From d7484c8c2aa3d5c52824559d27adcb9528613679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Wei=C3=9F?= Date: Wed, 14 Sep 2011 23:04:20 +0200 Subject: POSIX: Honor the user's umask The umask was set to zero in order to address the issue that mknod(2)'s mode argument is modified by the process's umask. However, this umask setting also affected auto-created parent directories of configuration entries: their permissions were set to `drwxrwxrwx'. So, we now call chmod(2) after mknod(2) instead of setting the umask to zero. --- src/lib/Client/Tools/POSIX.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/lib/Client') diff --git a/src/lib/Client/Tools/POSIX.py b/src/lib/Client/Tools/POSIX.py index a7a0c4f63..372d4d9e4 100644 --- a/src/lib/Client/Tools/POSIX.py +++ b/src/lib/Client/Tools/POSIX.py @@ -115,13 +115,6 @@ class POSIX(Bcfg2.Client.Tools.Tool): setup.parse([]) ppath = setup['ppath'] max_copies = setup['max_copies'] - """ - Python uses the OS mknod(2) implementation which modifies the mode - based on the umask of the running process (at least on some Linuxes - that were tested). We set this to zero so that POSIX-related paths - will be created as specified in the Bcfg2 configuration. - """ - os.umask(0) def canInstall(self, entry): """Check if entry is complete for installation.""" @@ -257,6 +250,13 @@ class POSIX(Bcfg2.Client.Tools.Tool): os.mknod(entry.get('name'), mode, device) else: os.mknod(entry.get('name'), mode) + """ + Python uses the OS mknod(2) implementation which modifies the + mode based on the umask of the running process. Therefore, the + following chmod(2) call is needed to make sure the permissions + are set as specified by the user. + """ + os.chmod(entry.get('name'), mode) os.chown(entry.get('name'), normUid(entry), normGid(entry)) return True except KeyError: -- cgit v1.2.3-1-g7c22