Don't make /var group writable
authorMarcin Cieslak <saper@saper.info>
Tue, 25 Sep 2012 14:50:23 +0000 (16:50 +0200)
committerJon Trulson <jon@radscan.com>
Tue, 25 Sep 2012 17:33:11 +0000 (11:33 -0600)
* Use 0755 permissions for /var (not 0775)
  - this makes sendmail unhappy
* Don't change permissions on /var on dtlogin startup

cde/programs/dtlogin/dm.c
cde/programs/dtsearchpath/dtappg/dtappgather.C

index 3c9fc6e60568dc3e04faed00433a69e7db9b6414..9e7b960eba2be365ff5037189f2581ca3c68c502 100644 (file)
@@ -122,7 +122,7 @@ static long StorePid( void ) ;
 static void TerminateProcess( int pid, int sig) ;
 static void UnlockPidFile( void ) ;
 static void dtMakeDefaultDir( void );
-static void dtmkdir(char *dir, mode_t dir_mode);
+static void dtmkdir(char *dir, mode_t dir_mode, int force);
 
 
 
@@ -1877,15 +1877,15 @@ MarkShutdownTime( void )
 static void
 dtMakeDefaultDir( void )
 {
-    dtmkdir("/var", 0775);
-    dtmkdir("/var/dt", 0755);
-    dtmkdir("/var/dt/tmp", 0755);
-    dtmkdir("/var/dt/appconfig", 0755);
-    dtmkdir("/var/dt/appconfig/appmanager", 0755);
+    dtmkdir("/var", 0755, 0);
+    dtmkdir("/var/dt", 0755, 1);
+    dtmkdir("/var/dt/tmp", 0755, 1);
+    dtmkdir("/var/dt/appconfig", 0755, 1);
+    dtmkdir("/var/dt/appconfig/appmanager", 0755, 1);
 }
 
 static void
-dtmkdir(char *dir, mode_t dir_mode)
+dtmkdir(char *dir, mode_t dir_mode, int force)
 {
     struct stat file_status;
 
@@ -1898,7 +1898,7 @@ dtmkdir(char *dir, mode_t dir_mode)
             LogError((unsigned char *)"Unable to create dir %s\n", dir);
         }
     } else {
-        if ( (file_status.st_mode & dir_mode) != dir_mode) {
+        if ( force && (file_status.st_mode & dir_mode) != dir_mode) {
             /** try to set correct permissions **/
             if ( chmod(dir, file_status.st_mode | dir_mode) == 0) {
                 Debug("Set permissions on %s\n", dir);
index ee09040d5481df2cb8bfc4f923f00208d55832e3..45f37eb74d282f126190532cc9e383a15f2f0bd1 100644 (file)
@@ -164,9 +164,9 @@ AppManagerDirectory::AppManagerDirectory
                if (!user->OS()->isDirectory(dir)) {   // does dt exist?
                    dir.replace("/dt","");
                    if (!user->OS()->isDirectory(dir)) {  // does /var exist?
-                       user->OS()->MakeDirectory(dir,0775);
+                       user->OS()->MakeDirectory(dir,0755);
                        user->OS()->changeOwnerGroup(dir,"root","other");
-                       user->OS()->changePermissions(dir,0775);
+                       user->OS()->changePermissions(dir,0755);
                    }
                    dir += "/dt";
                    user->OS()->MakeDirectory(dir,0755);