ci::UserList list = ci::GetUserList();
for (auto l : list) {
uid_t uid = std::get<0>(l);
+ uid_t gid = std::get<1>(l);
LOG(DEBUG) << "Adding shareddata directory for uid: " << uid;
bf::path apps_rw = ci::GetRootAppPath(false, uid);
if (!CreateSharedDataDirectories(apps_rw, pkgid))
return false;
+ std::vector<std::string> shared_dirs(kSharedDataEntries);
+ for (auto entry : shared_dirs) {
+ bf::path shared_dst = apps_rw / entry / pkgid;
+ if (!SetDirectoryOwnerAndPermissions(shared_dst, uid, gid))
+ return false;
+ }
+
+ for (bf::recursive_directory_iterator iter(apps_rw / pkgid);
+ iter != bf::recursive_directory_iterator(); ++iter) {
+ if (!SetSharedDirOwnerAndPermissions(iter->path(), uid))
+ return false;
+ }
+
std::string error_message;
if (!ci::RegisterSecurityContextForPath(pkgid, apps_rw / pkgid, uid,
false, &error_message)) {