- gid_t list[64];
- int grsize = getgroups(64, list);
- size_t counter = 0;
-
- for (int i=0; i<grsize; ++i) {
- if (list[i] == cameraPrivId) {
- counter++;
- break;
- }
- }
-
- RUNNER_ASSERT_MSG(0 == counter, "Process should not have priv_camera group");
-
- PolicyConfiguration pc;
- auto gidVector = pc.getUserGid(PolicyConfiguration::NORMAL);
- gidVector.erase(
- std::remove_if(gidVector.begin(), gidVector.end(), [=](gid_t g) { return g == cameraPrivId; }),
- gidVector.end());
-
- for (size_t i=0; i<gidVector.size(); ++i) {
- for (int j=0; j<grsize; ++j)
- if(list[j] == gidVector[i]) {
- counter++;
- break;
- }
- }
-
- RUNNER_ASSERT_MSG(gidVector.size() == counter,
- "Process should have all groups related with privileges but it have only " <<
- counter << " of " << gidVector.size() << " required groups");
-}
-
-RUNNER_CHILD_TEST(nss_04_guest_user) {
- const std::string newUserName = "nss_04_user";
- TemporaryTestUser testUser(newUserName, GUM_USERTYPE_GUEST, false);
- testUser.create();
-
- UserRequest addUserRequest;
- addUserRequest.setUid(testUser.getUid());
- addUserRequest.setUserType(SM_USER_TYPE_GUEST);
- Api::addUser(addUserRequest);
-
- RUNNER_ASSERT_MSG(0 == initgroups(newUserName.c_str(), 0), "Init groups failed");
-
- gid_t list[64];
- int grsize = getgroups(64, list);
- size_t counter = 0;