On Fri, Jan 15, 2016 at 02:26:48PM +0100, Lukas Slebodnik wrote:
> On (15/01/16 10:21), Pavel Březina wrote:
> >On 01/14/2016 06:37 PM, Sumit Bose wrote:
> >>On Thu, Jan 14, 2016 at 01:55:39PM +0100, Pavel Březina wrote:
> >>>On 01/13/2016 05:12 PM, Sumit Bose wrote:
> >>>>>
> >>>>>@@ -1018,7 +1019,6 @@ rules_iterator(hash_entry_t *item,
> >>>>>
> >>>>>      if (ctx == NULL) {
> >>>>>          DEBUG(SSSDBG_CRIT_FAILURE, "Bug: ctx is NULL\n");
> >>>>>-        ctx->ret = ERR_INTERNAL;
> >>>>>          return false;
> >>>>>      }
> >>>>>
> >>>>>@@ -1066,7 +1066,6 @@ cmdgroups_iterator(hash_entry_t *item,
> >>>>>
> >>>>>      if (ctx == NULL) {
> >>>>>          DEBUG(SSSDBG_CRIT_FAILURE, "Bug: ctx is NULL\n");
> >>>>>-        ctx->ret = ERR_INTERNAL;
> >>>>>          return false;
> >>>>>      }
> >>>>>
> >>>>
> >>>>it looks like the last 2 hunks are not available in the latest tar ball.
> >>>
> >>>Sorry about that. Added.
> >>>
> >>>>and there are some trailing whitespaces in patch 9 at line 41.
> >>>
> >>>Fixed by git.
> >>>
> >>>I also attached two more patches then converts usn into number and then use
> >>>in filter entryUSN >= (current + 1) instead of (entryUSN >= cur) &&
> >>>(entryUSN != cur) as per Thierry request.
> >>>
> >>>It could probably be squashed and replace some previous patches but I think
> >>>sending it as new patches is easier for you to review, given the previous
> >>>patches are basically acked.
> >>
> >>>+    errno = 0;
> >>>      usn_number = strtoul(usn, &endptr, 10);
> >>>-    if ((endptr == NULL || (*endptr == '\0' && endptr != usn))
> >>>-         && (usn_number > srv_opts->last_usn)) {
> >>>-         srv_opts->last_usn = usn_number;
> >>>+    if (endptr != NULL && *endptr != '\0') {
> >>
> >>Currently an empty string in usn would result in usn_number==0, I wonder
> >>if this is valid or if it would be better to error out in this case?
> >
> >Zero value will not change anything since we always compare if the current
> >usn value is lower than the new one, we switch them only in such case. So I
> >think it is not necessary to error out in this case since strtoul succeeds.
> >
> >>
> >>Otherwise all looks good, CI and Coverity test are currently running.
> >>
> >>bye,
> >>Sumit
> >>
> >>>+        DEBUG(SSSDBG_MINOR_FAILURE, "Unable to convert USN %s\n", usn);
> >>>+        return;
> >>>+    } else if (errno != 0) {
> >>>+        ret = errno;
> >>>+        DEBUG(SSSDBG_MINOR_FAILURE, "Unable to convert USN %s [%d]:
> >>>%s\n",
> >>>+              usn, ret, sss_strerror(ret));
> >>>+        return;
> >>>      }
> 
> There are 4 failed test from freeipa sudo test suite.
> 
> test-integration-test-sudo-TestSudo-test-sudo-rule-restricted-to-one-hostmask
> test-integration-test-sudo-TestSudo-test-sudo-rule-restricted-to-running-as-single-local-user
> test-integration-test-sudo-TestSudo-test-sudo-rule-restricted-to-run-as-users-from-local-group
> test-integration-test-sudo-TestSudo-test-sudo-rule-restricted-to-running-as-single-local-group
> 
> 
> =================================== FAILURES 
> ===================================
> ______________ TestSudo.test_sudo_rule_restricted_to_one_hostmask 
> ______________
> 
> self = <ipatests.test_integration.test_sudo.TestSudo object at 0x7fe0d7ace8d0>
> 
>     def test_sudo_rule_restricted_to_one_hostmask(self):
>         if self.__class__.skip_hostmask_based:
>             raise pytest.skip("Hostmask could not be detected")
>     
>         result1 = self.list_sudo_commands("testuser1")
> >       assert "(ALL : ALL) NOPASSWD: ALL" in result1.stdout_text
> E       assert '(ALL : ALL) NOPASSWD: ALL' in ''
> E        +  where '' = <pytest_multihost.transport.SSHCommand object at 
> 0x7fe0d7acee10>.stdout_text
> 
> test_integration/test_sudo.py:295: AssertionError
> ______ TestSudo.test_sudo_rule_restricted_to_running_as_single_local_user 
> ______
> 
> self = <ipatests.test_integration.test_sudo.TestSudo object at 0x7fe0d79de990>
> 
>     def test_sudo_rule_restricted_to_running_as_single_local_user(self):
>         result1 = self.list_sudo_commands("testuser1", verbose=True)
> >       assert "RunAsUsers: localuser" in result1.stdout_text

There are just too many options. I tested RunAsUsers and RunAsUsers
but only with IPA users and groups. I looks like the handling for the
ipasudorunasextuser and ipasudorunasextgroup attributes are missing.

> E       assert 'RunAsUsers: localuser' in 'Matching Defaults entries for 
> testuser1 on nec-em15:\n    !visiblepw, env_reset, env_keep="COLORS DISPLAY 
> HOSTNAME HI... may run the following commands on nec-em15:\n    RunAsUsers: 
> root\n    Options: !authenticate\n    Commands:\n\tALL\n'
> E        +  where 'Matching Defaults entries for testuser1 on nec-em15:\n    
> !visiblepw, env_reset, env_keep="COLORS DISPLAY HOSTNAME HI... may run the 
> following commands on nec-em15:\n    RunAsUsers: root\n    Options: 
> !authenticate\n    Commands:\n\tALL\n' = 
> <pytest_multihost.transport.SSHCommand object at 0x7fe0d7a81650>.stdout_text
> 
> test_integration/test_sudo.py:418: AssertionError
> _____ TestSudo.test_sudo_rule_restricted_to_run_as_users_from_local_group 
> ______
> 
> self = <ipatests.test_integration.test_sudo.TestSudo object at 0x7fe0d56d7d90>
> 
>     def test_sudo_rule_restricted_to_run_as_users_from_local_group(self):
>         result1 = self.list_sudo_commands("testuser1", verbose=True)
> >       assert "RunAsUsers: %localgroup" in result1.stdout_text
> E       assert 'RunAsUsers: %localgroup' in 'Matching Defaults entries for 
> testuser1 on nec-em15:\n    !visiblepw, env_reset, env_keep="COLORS DISPLAY 
> HOSTNAME HI... may run the following commands on nec-em15:\n    RunAsUsers: 
> root\n    Options: !authenticate\n    Commands:\n\tALL\n'
> E        +  where 'Matching Defaults entries for testuser1 on nec-em15:\n    
> !visiblepw, env_reset, env_keep="COLORS DISPLAY HOSTNAME HI... may run the 
> following commands on nec-em15:\n    RunAsUsers: root\n    Options: 
> !authenticate\n    Commands:\n\tALL\n' = 
> <pytest_multihost.transport.SSHCommand object at 0x7fe0d7b08510>.stdout_text
> 
> test_integration/test_sudo.py:460: AssertionError
> _____ TestSudo.test_sudo_rule_restricted_to_running_as_single_local_group 
> ______
> 
> self = <ipatests.test_integration.test_sudo.TestSudo object at 0x7fe0d544e790>
> 
>     def test_sudo_rule_restricted_to_running_as_single_local_group(self):
>         result1 = self.list_sudo_commands("testuser1", verbose=True)
>         assert "RunAsUsers: root" in result1.stdout_text
> >       assert "RunAsGroups: localgroup" in result1.stdout_text
> E       assert 'RunAsGroups: localgroup' in 'Matching Defaults entries for 
> testuser1 on nec-em15:\n    !visiblepw, env_reset, env_keep="COLORS DISPLAY 
> HOSTNAME HI... may run the following commands on nec-em15:\n    RunAsUsers: 
> root\n    Options: !authenticate\n    Commands:\n\tALL\n'
> E        +  where 'Matching Defaults entries for testuser1 on nec-em15:\n    
> !visiblepw, env_reset, env_keep="COLORS DISPLAY HOSTNAME HI... may run the 
> following commands on nec-em15:\n    RunAsUsers: root\n    Options: 
> !authenticate\n    Commands:\n\tALL\n' = 
> <pytest_multihost.transport.SSHCommand object at 0x7fe0d79e4350>.stdout_text
> 
> test_integration/test_sudo.py:503: AssertionError
> ==================== 4 failed, 71 passed in 1384.43 seconds 
> ====================
> 
> LS
> _______________________________________________
> sssd-devel mailing list
> sssd-devel@lists.fedorahosted.org
> https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org

Reply via email to