JR Aquino wrote:
On Jun 14, 2011, at 11:06 AM, Rob Crittenden wrote:

JR Aquino wrote:
On Jun 10, 2011, at 3:11 PM, JR Aquino wrote:

On Jun 9, 2011, at 10:24 AM, Rob Crittenden wrote:

JR Aquino wrote:
https://fedorahosted.org/freeipa/ticket/1277

Raise DuplicateEntry Error when adding a duplicate sudo option

nack, this will still fail if no ipasudoopt is passed in.

Also, is this case-sensitive?

Yes, it is case sensitive (Example: sudoOption: env_keep+=SSH_AUTH_SOCK)

Here is an adjusted patch to account for no ipasudoopt as well as an empty 
space.

<freeipa-jraquino-0029-Raise-DuplicateEntry-Error-when-adding-a-duplicate.patch>


Minor correction: Addressed the 1 character change needed to address #1276

Added notes to indicate this patch fixes:
#1276 (Removed option from Sudo rule message is displayed even when the given 
option doesn't exist.)
#1277 (Added option to Sudo rule message is displayed even when the given 
option already exists.)
#1308 (Internal error while removing sudorule option without "--sudooption")


NACK

$ ipa sudorule-add test
----------------------
Added sudo rule "test"
----------------------
  Rule name: test
  Enabled: TRUE
$ ipa sudorule-remove-option test --sudooption=foo
-----------------------
sudorule-remove-option:
-----------------------
  Rule name: test
ipa: ERROR: KeyError: 'ipasudoopt'
Traceback (most recent call last):
  File "/home/rcrit/redhat/freeipa-master/ipalib/cli.py", line 1141, in run
    sys.exit(api.Backend.cli.run(argv))
  File "/home/rcrit/redhat/freeipa-master/ipalib/cli.py", line 965, in run
    rv = cmd.output_for_cli(self.api.Backend.textui, result, *args, **options)
  File "/home/rcrit/redhat/freeipa-master/ipalib/plugins/sudorule.py", line 
675, in output_for_cli
    textui.print_attribute('Sudo Options', result['result']['ipasudoopt'])
KeyError: 'ipasudoopt'
ipa: ERROR: an internal error has occurred

Is this legal?

$ ipa sudorule-add-option test --sudooption=foo
--------------------
sudorule-add-option:
--------------------
  Rule name: test
  Sudo Options: foo
$ ipa sudorule-add-option test --sudooption=foo
ipa: ERROR: This entry already exists
$ ipa sudorule-add-option test --sudooption=FOO
--------------------
sudorule-add-option:
--------------------
  Rule name: test
  Sudo Options: foo
  Sudo Options: FOO

This is legal ^ Or if you like double negatives, this is not illegal.

However, the only options that will be respected are listed: 
http://www.gratisoft.us/sudo/man/1.8.1/sudoers.man.html in the SUDOERS OPTIONS 
section. Some of the values can be singular like:
"sudoOption: !authenticate" which will allow you to run sudo without a password or 
"sudoOption: iolog_dir=/var/log/sudo-playback"


I also noticed that ipasudoopt doesn't have a label and isn't shown in the rule 
by default.

Here is a corrected patch to address the KeyError and the display issue.


A minor issue and a question.

The minor issue is you changed a couple of options from optional to mandatory, which is fine, but we need to bump up the minor version in VERSION (older clients otherwise could not send the string and blow things up).

The question is, should we raise EmptyModList() when removing an option that doesn't exist or NotFound(reason=_())? I think the second might be more explanatory but might be harder for handle in scripts (how would you distinguish between entry not found and option not found)?

rob

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to