Create per user directories only for users in 'users' group 59/60459/2
authorTomasz Iwanek <t.iwanek@samsung.com>
Fri, 26 Feb 2016 08:36:12 +0000 (09:36 +0100)
committerjongmyeong ko <jongmyeong.ko@samsung.com>
Wed, 2 Mar 2016 06:13:14 +0000 (22:13 -0800)
Change-Id: I2fa649ffc31979794f3a7d130be9a212dfdf3609

src/pkgdir_tool/pkgdir_tool.cc

index 7816bde..bef90e8 100644 (file)
@@ -11,6 +11,7 @@
 #include <vcore/Certificate.h>
 #include <pkgmgr-info.h>
 #include <pwd.h>
+#include <grp.h>
 #include <sys/types.h>
 #include <unistd.h>
 #include <tzplatform_config.h>
@@ -228,6 +229,11 @@ bool CreatePerUserDirectories(const std::string& pkgid,
       LOG(WARNING) << "Failed to get user for home directory: " << user;
       continue;
     }
+
+    struct group* gr = getgrgid(pwd->pw_gid);  // NOLINT
+    if (strcmp(gr->gr_name, tzplatform_getenv(TZ_SYS_USER_GROUP)) != 0)
+      continue;
+
     LOG(DEBUG) << "Creating directories for uid: " << pwd->pw_uid << ", gid: "
                << pwd->pw_gid << ", home: " << home_path;
     tzplatform_set_user(pwd->pw_uid);
@@ -304,6 +310,10 @@ bool DeletePerUserDirectories(const std::string& pkgid) {
       continue;
     }
 
+    struct group* gr = getgrgid(pwd->pw_gid);  // NOLINT
+    if (strcmp(gr->gr_name, tzplatform_getenv(TZ_SYS_USER_GROUP)) != 0)
+      continue;
+
     if (ci::IsPackageInstalled(pkgid, pwd->pw_uid)) continue;
 
     LOG(DEBUG) << "Deleting directories for uid: " << pwd->pw_uid << ", gid: "