All of lore.kernel.org
 help / color / mirror / Atom feed
* Help with python seobject.loginRecords
@ 2009-03-11 16:15 Joe Nall
  2009-03-11 19:35 ` Daniel J Walsh
  0 siblings, 1 reply; 11+ messages in thread
From: Joe Nall @ 2009-03-11 16:15 UTC (permalink / raw)
  To: SELinux List

I need to add login mappings in python firstboot modules during system  
configuration. In my first module a simple:

seobject.loginRecords().add(username, "siterep_u", "SystemLow- 
SystemHigh")

works. In subsequent modules, I get an exception:

libsemanage.enter_rw: this operation requires a transaction
libsemanage.enter_rw: could not enter read-write section
Traceback (most recent call last):
   File "./t", line 6, in <module>
     seobject.loginRecords().add("test3", "sysadm_u", "SystemLow- 
SystemHigh")
   File "/usr/lib64/python2.5/site-packages/seobject.py", line 442, in  
add
     raise error
ValueError: Could not add login mapping for test3

What is the right way to do this?

joe


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-03-11 16:15 Help with python seobject.loginRecords Joe Nall
@ 2009-03-11 19:35 ` Daniel J Walsh
  2009-03-11 19:50   ` Joe Nall
  0 siblings, 1 reply; 11+ messages in thread
From: Daniel J Walsh @ 2009-03-11 19:35 UTC (permalink / raw)
  To: Joe Nall; +Cc: SELinux List

On 03/11/2009 12:15 PM, Joe Nall wrote:
> I need to add login mappings in python firstboot modules during system
> configuration. In my first module a simple:
>
> seobject.loginRecords().add(username, "siterep_u", "SystemLow-SystemHigh")
>
> works. In subsequent modules, I get an exception:
>
> libsemanage.enter_rw: this operation requires a transaction
> libsemanage.enter_rw: could not enter read-write section
> Traceback (most recent call last):
> File "./t", line 6, in <module>
> seobject.loginRecords().add("test3", "sysadm_u", "SystemLow-SystemHigh")
> File "/usr/lib64/python2.5/site-packages/seobject.py", line 442, in add
> raise error
> ValueError: Could not add login mapping for test3
>
> What is the right way to do this?
>
> joe
>
>
> --
> This message was distributed to subscribers of the selinux mailing list.
> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov
> with
> the words "unsubscribe selinux" without quotes as the message.
Probably an MLS issue.  firtstboot is running in a context that is not 
allowed to lock/manage selinux.

You probably should exec semanage rather then calling seobject so you 
could do a transition and not have to give a huge app like first boot 
the ability to manage security policy.



--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-03-11 19:35 ` Daniel J Walsh
@ 2009-03-11 19:50   ` Joe Nall
  2009-03-11 20:16     ` Daniel J Walsh
  2009-03-11 20:49     ` Daniel J Walsh
  0 siblings, 2 replies; 11+ messages in thread
From: Joe Nall @ 2009-03-11 19:50 UTC (permalink / raw)
  To: Daniel J Walsh; +Cc: SELinux List


On Mar 11, 2009, at 2:35 PM, Daniel J Walsh wrote:

> On 03/11/2009 12:15 PM, Joe Nall wrote:
>> I need to add login mappings in python firstboot modules during  
>> system
>> configuration. In my first module a simple:
>>
>> seobject.loginRecords().add(username, "siterep_u", "SystemLow- 
>> SystemHigh")
>>
>> works. In subsequent modules, I get an exception:
>>
>> libsemanage.enter_rw: this operation requires a transaction
>> libsemanage.enter_rw: could not enter read-write section
>> Traceback (most recent call last):
>> File "./t", line 6, in <module>
>> seobject.loginRecords().add("test3", "sysadm_u", "SystemLow- 
>> SystemHigh")
>> File "/usr/lib64/python2.5/site-packages/seobject.py", line 442, in  
>> add
>> raise error
>> ValueError: Could not add login mapping for test3
>>
>> What is the right way to do this?
>>
>> joe
>>
>>
>> --
>> This message was distributed to subscribers of the selinux mailing  
>> list.
>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov
>> with
>> the words "unsubscribe selinux" without quotes as the message.
> Probably an MLS issue.  firtstboot is running in a context that is  
> not allowed to lock/manage selinux.

I'm installing in permissive and switching to enforcing after  
firstboot. You are correct that firstboot_t doesn't have the policy  
for all the stuff I'm trying to do yet.

> You probably should exec semanage rather then calling seobject so  
> you could do a transition and not have to give a huge app like first  
> boot the ability to manage security policy.

That is what is installing right now. I would still like an  
explanation/code snippet of correct usage for future use

joe



--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-03-11 19:50   ` Joe Nall
@ 2009-03-11 20:16     ` Daniel J Walsh
  2009-03-11 20:36       ` Joe Nall
  2009-03-11 20:49     ` Daniel J Walsh
  1 sibling, 1 reply; 11+ messages in thread
From: Daniel J Walsh @ 2009-03-11 20:16 UTC (permalink / raw)
  To: Joe Nall; +Cc: SELinux List

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Joe Nall wrote:
> 
> On Mar 11, 2009, at 2:35 PM, Daniel J Walsh wrote:
> 
>> On 03/11/2009 12:15 PM, Joe Nall wrote:
>>> I need to add login mappings in python firstboot modules during system
>>> configuration. In my first module a simple:
>>>
>>> seobject.loginRecords().add(username, "siterep_u",
>>> "SystemLow-SystemHigh")
>>>
>>> works. In subsequent modules, I get an exception:
>>>
>>> libsemanage.enter_rw: this operation requires a transaction
>>> libsemanage.enter_rw: could not enter read-write section
>>> Traceback (most recent call last):
>>> File "./t", line 6, in <module>
>>> seobject.loginRecords().add("test3", "sysadm_u", "SystemLow-SystemHigh")
>>> File "/usr/lib64/python2.5/site-packages/seobject.py", line 442, in add
>>> raise error
>>> ValueError: Could not add login mapping for test3
>>>
>>> What is the right way to do this?
>>>
>>> joe
>>>
>>>
>>> -- 
>>> This message was distributed to subscribers of the selinux mailing list.
>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov
>>> with
>>> the words "unsubscribe selinux" without quotes as the message.
>> Probably an MLS issue.  firtstboot is running in a context that is not
>> allowed to lock/manage selinux.
> 
> I'm installing in permissive and switching to enforcing after firstboot.
> You are correct that firstboot_t doesn't have the policy for all the
> stuff I'm trying to do yet.
> 
>> You probably should exec semanage rather then calling seobject so you
>> could do a transition and not have to give a huge app like first boot
>> the ability to manage security policy.
> 
> That is what is installing right now. I would still like an
> explanation/code snippet of correct usage for future use
> 
> joe
> 
> 
Looks at system-config-selinux,  does it all over the place.

commands.getstatusoutput("semanage ...")

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAkm4HDUACgkQrlYvE4MpobM7UwCfa63yef/yTXkqJXw5QqaygCfm
qMsAnix/6yGKm33Wq7ulyga6S3oaUvZh
=LQDc
-----END PGP SIGNATURE-----

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-03-11 20:16     ` Daniel J Walsh
@ 2009-03-11 20:36       ` Joe Nall
  0 siblings, 0 replies; 11+ messages in thread
From: Joe Nall @ 2009-03-11 20:36 UTC (permalink / raw)
  To: Daniel J Walsh; +Cc: SELinux List


On Mar 11, 2009, at 3:16 PM, Daniel J Walsh wrote:

>> ...
> Looks at system-config-selinux,  does it all over the place.
>
> commands.getstatusoutput("semanage ...")

I meant the python code :)

joe



--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-03-11 19:50   ` Joe Nall
  2009-03-11 20:16     ` Daniel J Walsh
@ 2009-03-11 20:49     ` Daniel J Walsh
  2009-03-11 21:00       ` Stephen Smalley
  2009-03-11 21:07       ` Joe Nall
  1 sibling, 2 replies; 11+ messages in thread
From: Daniel J Walsh @ 2009-03-11 20:49 UTC (permalink / raw)
  To: Joe Nall; +Cc: SELinux List

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Joe Nall wrote:
> 
> On Mar 11, 2009, at 2:35 PM, Daniel J Walsh wrote:
> 
>> On 03/11/2009 12:15 PM, Joe Nall wrote:
>>> I need to add login mappings in python firstboot modules during system
>>> configuration. In my first module a simple:
>>>
>>> seobject.loginRecords().add(username, "siterep_u",
>>> "SystemLow-SystemHigh")
>>>
>>> works. In subsequent modules, I get an exception:
>>>
>>> libsemanage.enter_rw: this operation requires a transaction
>>> libsemanage.enter_rw: could not enter read-write section
>>> Traceback (most recent call last):
>>> File "./t", line 6, in <module>
>>> seobject.loginRecords().add("test3", "sysadm_u", "SystemLow-SystemHigh")
>>> File "/usr/lib64/python2.5/site-packages/seobject.py", line 442, in add
>>> raise error
>>> ValueError: Could not add login mapping for test3
>>>
>>> What is the right way to do this?
>>>
>>> joe
>>>
>>>
>>> -- 
>>> This message was distributed to subscribers of the selinux mailing list.
>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov
>>> with
>>> the words "unsubscribe selinux" without quotes as the message.
>> Probably an MLS issue.  firtstboot is running in a context that is not
>> allowed to lock/manage selinux.
> 
> I'm installing in permissive and switching to enforcing after firstboot.
> You are correct that firstboot_t doesn't have the policy for all the
> stuff I'm trying to do yet.
> 
>> You probably should exec semanage rather then calling seobject so you
>> could do a transition and not have to give a huge app like first boot
>> the ability to manage security policy.
> 
> That is what is installing right now. I would still like an
> explanation/code snippet of correct usage for future use
> 
> joe
> 
> 
This works on F10 Targeted policy

# python -c "import seobject; seobject.loginRecords().add("pwalsh",
"staff_u", "s0")
# python -c 'import seobject; seobject.loginRecords().delete("pwalsh")'

Could it be a translation problem?


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAkm4I80ACgkQrlYvE4MpobPITACgj0orf8wCagcwCJS0oPLnnlqP
oPQAoJfLLAn5mTAQ2uem/RFhZj4M3qqW
=rYfA
-----END PGP SIGNATURE-----

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-03-11 20:49     ` Daniel J Walsh
@ 2009-03-11 21:00       ` Stephen Smalley
  2009-03-12 13:29         ` Daniel J Walsh
  2009-03-11 21:07       ` Joe Nall
  1 sibling, 1 reply; 11+ messages in thread
From: Stephen Smalley @ 2009-03-11 21:00 UTC (permalink / raw)
  To: Daniel J Walsh; +Cc: Joe Nall, SELinux List, Joshua Brindle

On Wed, 2009-03-11 at 16:49 -0400, Daniel J Walsh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Joe Nall wrote:
> > 
> > On Mar 11, 2009, at 2:35 PM, Daniel J Walsh wrote:
> > 
> >> On 03/11/2009 12:15 PM, Joe Nall wrote:
> >>> I need to add login mappings in python firstboot modules during system
> >>> configuration. In my first module a simple:
> >>>
> >>> seobject.loginRecords().add(username, "siterep_u",
> >>> "SystemLow-SystemHigh")
> >>>
> >>> works. In subsequent modules, I get an exception:
> >>>
> >>> libsemanage.enter_rw: this operation requires a transaction
> >>> libsemanage.enter_rw: could not enter read-write section
> >>> Traceback (most recent call last):
> >>> File "./t", line 6, in <module>
> >>> seobject.loginRecords().add("test3", "sysadm_u", "SystemLow-SystemHigh")
> >>> File "/usr/lib64/python2.5/site-packages/seobject.py", line 442, in add
> >>> raise error
> >>> ValueError: Could not add login mapping for test3
> >>>
> >>> What is the right way to do this?
> >>>
> >>> joe
> >>>
> >>>
> >>> -- 
> >>> This message was distributed to subscribers of the selinux mailing list.
> >>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov
> >>> with
> >>> the words "unsubscribe selinux" without quotes as the message.
> >> Probably an MLS issue.  firtstboot is running in a context that is not
> >> allowed to lock/manage selinux.
> > 
> > I'm installing in permissive and switching to enforcing after firstboot.
> > You are correct that firstboot_t doesn't have the policy for all the
> > stuff I'm trying to do yet.
> > 
> >> You probably should exec semanage rather then calling seobject so you
> >> could do a transition and not have to give a huge app like first boot
> >> the ability to manage security policy.
> > 
> > That is what is installing right now. I would still like an
> > explanation/code snippet of correct usage for future use
> > 
> > joe
> > 
> > 
> This works on F10 Targeted policy
> 
> # python -c "import seobject; seobject.loginRecords().add("pwalsh",
> "staff_u", "s0")
> # python -c 'import seobject; seobject.loginRecords().delete("pwalsh")'
> 
> Could it be a translation problem?

Try running multiple calls within the same python interpreter.
I think seobject.py isn't using libsemanage correctly.  For example, in
add(), you do:
                       self.begin()
                        self.__add(name, sename, serange)
                        self.commit()
but begin() only ever invokes semanage_begin_transaction() the very
first time:
       def begin(self):
               if self.transaction:
                      return
               rc = semanage_begin_transaction(self.sh)

So after the first commit(), you'll start failing.

-- 
Stephen Smalley
National Security Agency


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-03-11 20:49     ` Daniel J Walsh
  2009-03-11 21:00       ` Stephen Smalley
@ 2009-03-11 21:07       ` Joe Nall
  1 sibling, 0 replies; 11+ messages in thread
From: Joe Nall @ 2009-03-11 21:07 UTC (permalink / raw)
  To: Daniel J Walsh; +Cc: SELinux List


On Mar 11, 2009, at 3:49 PM, Daniel J Walsh wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Joe Nall wrote:
>>
>> On Mar 11, 2009, at 2:35 PM, Daniel J Walsh wrote:
>>
>>> On 03/11/2009 12:15 PM, Joe Nall wrote:
>>>> I need to add login mappings in python firstboot modules during  
>>>> system
>>>> configuration. In my first module a simple:
>>>>
>>>> seobject.loginRecords().add(username, "siterep_u",
>>>> "SystemLow-SystemHigh")
>>>>
>>>> works. In subsequent modules, I get an exception:
>>>>
>>>> libsemanage.enter_rw: this operation requires a transaction
>>>> libsemanage.enter_rw: could not enter read-write section
>>>> Traceback (most recent call last):
>>>> File "./t", line 6, in <module>
>>>> seobject.loginRecords().add("test3", "sysadm_u", "SystemLow- 
>>>> SystemHigh")
>>>> File "/usr/lib64/python2.5/site-packages/seobject.py", line 442,  
>>>> in add
>>>> raise error
>>>> ValueError: Could not add login mapping for test3
>>>>
>>>> What is the right way to do this?
>>>>
>>>> joe
>>>>
>>>>
>>>> -- 
>>>> This message was distributed to subscribers of the selinux  
>>>> mailing list.
>>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov
>>>> with
>>>> the words "unsubscribe selinux" without quotes as the message.
>>> Probably an MLS issue.  firtstboot is running in a context that is  
>>> not
>>> allowed to lock/manage selinux.
>>
>> I'm installing in permissive and switching to enforcing after  
>> firstboot.
>> You are correct that firstboot_t doesn't have the policy for all the
>> stuff I'm trying to do yet.
>>
>>> You probably should exec semanage rather then calling seobject so  
>>> you
>>> could do a transition and not have to give a huge app like first  
>>> boot
>>> the ability to manage security policy.
>>
>> That is what is installing right now. I would still like an
>> explanation/code snippet of correct usage for future use
>>
>> joe
>>
>>
> This works on F10 Targeted policy
>
> # python -c "import seobject; seobject.loginRecords().add("pwalsh",
> "staff_u", "s0")
> # python -c 'import seobject;  
> seobject.loginRecords().delete("pwalsh")'
>
> Could it be a translation problem?

I don't think so, mcstrans is installed and running at this point in  
the install. Try this, sometimes it works, sometimes it fails with:

[joe@fast firstboot]$ sudo ./t
libsemanage.enter_rw: this operation requires a transaction
libsemanage.enter_rw: could not enter read-write section
Traceback (most recent call last):
   File "./t", line 7, in <module>
     seobject.loginRecords().delete("pwalsh")
   File "/usr/lib64/python2.5/site-packages/seobject.py", line 526, in  
delete
     raise error
ValueError: Could not delete login mapping for pwalsh

------------

#!/usr/bin/python

import seobject

seobject.loginRecords().add("pwalsh", "staff_u", "s0")

seobject.loginRecords().delete("pwalsh")

seobject.loginRecords().add("pwalsh", "staff_u", "s0")

seobject.loginRecords().delete("pwalsh")

joe



--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-03-11 21:00       ` Stephen Smalley
@ 2009-03-12 13:29         ` Daniel J Walsh
  2009-04-22 21:08           ` Chad Sellers
  0 siblings, 1 reply; 11+ messages in thread
From: Daniel J Walsh @ 2009-03-12 13:29 UTC (permalink / raw)
  To: Stephen Smalley; +Cc: Joe Nall, SELinux List, Joshua Brindle

[-- Attachment #1: Type: text/plain, Size: 2873 bytes --]

On 03/11/2009 05:00 PM, Stephen Smalley wrote:
> On Wed, 2009-03-11 at 16:49 -0400, Daniel J Walsh wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Joe Nall wrote:
>>> On Mar 11, 2009, at 2:35 PM, Daniel J Walsh wrote:
>>>
>>>> On 03/11/2009 12:15 PM, Joe Nall wrote:
>>>>> I need to add login mappings in python firstboot modules during system
>>>>> configuration. In my first module a simple:
>>>>>
>>>>> seobject.loginRecords().add(username, "siterep_u",
>>>>> "SystemLow-SystemHigh")
>>>>>
>>>>> works. In subsequent modules, I get an exception:
>>>>>
>>>>> libsemanage.enter_rw: this operation requires a transaction
>>>>> libsemanage.enter_rw: could not enter read-write section
>>>>> Traceback (most recent call last):
>>>>> File "./t", line 6, in<module>
>>>>> seobject.loginRecords().add("test3", "sysadm_u", "SystemLow-SystemHigh")
>>>>> File "/usr/lib64/python2.5/site-packages/seobject.py", line 442, in add
>>>>> raise error
>>>>> ValueError: Could not add login mapping for test3
>>>>>
>>>>> What is the right way to do this?
>>>>>
>>>>> joe
>>>>>
>>>>>
>>>>> --
>>>>> This message was distributed to subscribers of the selinux mailing list.
>>>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov
>>>>> with
>>>>> the words "unsubscribe selinux" without quotes as the message.
>>>> Probably an MLS issue.  firtstboot is running in a context that is not
>>>> allowed to lock/manage selinux.
>>> I'm installing in permissive and switching to enforcing after firstboot.
>>> You are correct that firstboot_t doesn't have the policy for all the
>>> stuff I'm trying to do yet.
>>>
>>>> You probably should exec semanage rather then calling seobject so you
>>>> could do a transition and not have to give a huge app like first boot
>>>> the ability to manage security policy.
>>> That is what is installing right now. I would still like an
>>> explanation/code snippet of correct usage for future use
>>>
>>> joe
>>>
>>>
>> This works on F10 Targeted policy
>>
>> # python -c "import seobject; seobject.loginRecords().add("pwalsh",
>> "staff_u", "s0")
>> # python -c 'import seobject; seobject.loginRecords().delete("pwalsh")'
>>
>> Could it be a translation problem?
>
> Try running multiple calls within the same python interpreter.
> I think seobject.py isn't using libsemanage correctly.  For example, in
> add(), you do:
>                         self.begin()
>                          self.__add(name, sename, serange)
>                          self.commit()
> but begin() only ever invokes semanage_begin_transaction() the very
> first time:
>         def begin(self):
>                 if self.transaction:
>                        return
>                 rc = semanage_begin_transaction(self.sh)
>
> So after the first commit(), you'll start failing.
>
I think this patch fixes the transaction patch in semanage.

[-- Attachment #2: diff --]
[-- Type: text/plain, Size: 2408 bytes --]

diff --exclude-from=exclude --exclude=sepolgen-1.0.16 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semanage/semanage policycoreutils-2.0.62/semanage/semanage
--- nsapolicycoreutils/semanage/semanage	2009-02-18 16:44:47.000000000 -0500
+++ policycoreutils-2.0.62/semanage/semanage	2009-03-12 09:22:45.000000000 -0400
@@ -464,10 +464,10 @@
                       else:
                              fd = open(input, 'r')
                       trans = seobject.semanageRecords(store)
-                      trans.begin()
+                      trans.start()
                       for l in fd.readlines():
                              process_args(mkargv(l))
-                      trans.commit()
+                      trans.finish()
                else:
                       process_args(sys.argv[1:])
 			
diff --exclude-from=exclude --exclude=sepolgen-1.0.16 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-2.0.62/semanage/seobject.py
--- nsapolicycoreutils/semanage/seobject.py	2008-11-14 17:10:15.000000000 -0500
+++ policycoreutils-2.0.62/semanage/seobject.py	2009-03-12 09:25:27.000000000 -0400
@@ -281,15 +281,20 @@
                global handle
                       
                if handle != None:
-                      self.transaction = True
                       self.sh = handle
                else:
                       self.sh=get_handle(store)
-                      self.transaction = False
+               self.transaction = False
 
         def deleteall(self):
                raise ValueError(_("Not yet implemented"))
 
+        def start(self):
+               if self.transaction:
+                      raise ValueError(_("Semanage transaction already in progress"))
+               self.begin()
+               self.transaction = True
+
         def begin(self):
                if self.transaction:
                       return
@@ -303,6 +308,12 @@
                if rc < 0:
                       raise ValueError(_("Could not commit semanage transaction"))
 
+        def finish(self):
+               if not self.transaction:
+                      raise ValueError(_("Semanage transaction not in progress"))
+               self.transaction = False
+               self.commit()
+
 class permissiveRecords(semanageRecords):
 	def __init__(self, store):
                semanageRecords.__init__(self, store)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-03-12 13:29         ` Daniel J Walsh
@ 2009-04-22 21:08           ` Chad Sellers
  2009-05-18 15:28             ` Joshua Brindle
  0 siblings, 1 reply; 11+ messages in thread
From: Chad Sellers @ 2009-04-22 21:08 UTC (permalink / raw)
  To: Daniel J Walsh, Stephen Smalley; +Cc: Joe Nall, SELinux List, Joshua Brindle

On 3/12/09 9:29 AM, "Daniel J Walsh" <dwalsh@redhat.com> wrote:

> On 03/11/2009 05:00 PM, Stephen Smalley wrote:
>> On Wed, 2009-03-11 at 16:49 -0400, Daniel J Walsh wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>> 
>>> Joe Nall wrote:
>>>> On Mar 11, 2009, at 2:35 PM, Daniel J Walsh wrote:
>>>> 
>>>>> On 03/11/2009 12:15 PM, Joe Nall wrote:
>>>>>> I need to add login mappings in python firstboot modules during system
>>>>>> configuration. In my first module a simple:
>>>>>> 
>>>>>> seobject.loginRecords().add(username, "siterep_u",
>>>>>> "SystemLow-SystemHigh")
>>>>>> 
>>>>>> works. In subsequent modules, I get an exception:
>>>>>> 
>>>>>> libsemanage.enter_rw: this operation requires a transaction
>>>>>> libsemanage.enter_rw: could not enter read-write section
>>>>>> Traceback (most recent call last):
>>>>>> File "./t", line 6, in<module>
>>>>>> seobject.loginRecords().add("test3", "sysadm_u", "SystemLow-SystemHigh")
>>>>>> File "/usr/lib64/python2.5/site-packages/seobject.py", line 442, in add
>>>>>> raise error
>>>>>> ValueError: Could not add login mapping for test3
>>>>>> 
>>>>>> What is the right way to do this?
>>>>>> 
>>>>>> joe
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> This message was distributed to subscribers of the selinux mailing list.
>>>>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov
>>>>>> with
>>>>>> the words "unsubscribe selinux" without quotes as the message.
>>>>> Probably an MLS issue.  firtstboot is running in a context that is not
>>>>> allowed to lock/manage selinux.
>>>> I'm installing in permissive and switching to enforcing after firstboot.
>>>> You are correct that firstboot_t doesn't have the policy for all the
>>>> stuff I'm trying to do yet.
>>>> 
>>>>> You probably should exec semanage rather then calling seobject so you
>>>>> could do a transition and not have to give a huge app like first boot
>>>>> the ability to manage security policy.
>>>> That is what is installing right now. I would still like an
>>>> explanation/code snippet of correct usage for future use
>>>> 
>>>> joe
>>>> 
>>>> 
>>> This works on F10 Targeted policy
>>> 
>>> # python -c "import seobject; seobject.loginRecords().add("pwalsh",
>>> "staff_u", "s0")
>>> # python -c 'import seobject; seobject.loginRecords().delete("pwalsh")'
>>> 
>>> Could it be a translation problem?
>> 
>> Try running multiple calls within the same python interpreter.
>> I think seobject.py isn't using libsemanage correctly.  For example, in
>> add(), you do:
>>                         self.begin()
>>                          self.__add(name, sename, serange)
>>                          self.commit()
>> but begin() only ever invokes semanage_begin_transaction() the very
>> first time:
>>         def begin(self):
>>                 if self.transaction:
>>                        return
>>                 rc = semanage_begin_transaction(self.sh)
>> 
>> So after the first commit(), you'll start failing.
>> 
> I think this patch fixes the transaction patch in semanage.

Patch looks good to me.

Acked-by: Chad Sellers <csellers@tresys.com>


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Help with python seobject.loginRecords
  2009-04-22 21:08           ` Chad Sellers
@ 2009-05-18 15:28             ` Joshua Brindle
  0 siblings, 0 replies; 11+ messages in thread
From: Joshua Brindle @ 2009-05-18 15:28 UTC (permalink / raw)
  To: Chad Sellers
  Cc: Daniel J Walsh, Stephen Smalley, Joe Nall, SELinux List,
	Joshua Brindle

Chad Sellers wrote:
> On 3/12/09 9:29 AM, "Daniel J Walsh" <dwalsh@redhat.com> wrote:
> 
>> On 03/11/2009 05:00 PM, Stephen Smalley wrote:
>>> On Wed, 2009-03-11 at 16:49 -0400, Daniel J Walsh wrote:
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA1
>>>>
>>>> Joe Nall wrote:
>>>>> On Mar 11, 2009, at 2:35 PM, Daniel J Walsh wrote:
>>>>>
>>>>>> On 03/11/2009 12:15 PM, Joe Nall wrote:
>>>>>>> I need to add login mappings in python firstboot modules during system
>>>>>>> configuration. In my first module a simple:
>>>>>>>
>>>>>>> seobject.loginRecords().add(username, "siterep_u",
>>>>>>> "SystemLow-SystemHigh")
>>>>>>>
>>>>>>> works. In subsequent modules, I get an exception:
>>>>>>>
>>>>>>> libsemanage.enter_rw: this operation requires a transaction
>>>>>>> libsemanage.enter_rw: could not enter read-write section
>>>>>>> Traceback (most recent call last):
>>>>>>> File "./t", line 6, in<module>
>>>>>>> seobject.loginRecords().add("test3", "sysadm_u", "SystemLow-SystemHigh")
>>>>>>> File "/usr/lib64/python2.5/site-packages/seobject.py", line 442, in add
>>>>>>> raise error
>>>>>>> ValueError: Could not add login mapping for test3
>>>>>>>
>>>>>>> What is the right way to do this?
>>>>>>>
>>>>>>> joe
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> This message was distributed to subscribers of the selinux mailing list.
>>>>>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov
>>>>>>> with
>>>>>>> the words "unsubscribe selinux" without quotes as the message.
>>>>>> Probably an MLS issue.  firtstboot is running in a context that is not
>>>>>> allowed to lock/manage selinux.
>>>>> I'm installing in permissive and switching to enforcing after firstboot.
>>>>> You are correct that firstboot_t doesn't have the policy for all the
>>>>> stuff I'm trying to do yet.
>>>>>
>>>>>> You probably should exec semanage rather then calling seobject so you
>>>>>> could do a transition and not have to give a huge app like first boot
>>>>>> the ability to manage security policy.
>>>>> That is what is installing right now. I would still like an
>>>>> explanation/code snippet of correct usage for future use
>>>>>
>>>>> joe
>>>>>
>>>>>
>>>> This works on F10 Targeted policy
>>>>
>>>> # python -c "import seobject; seobject.loginRecords().add("pwalsh",
>>>> "staff_u", "s0")
>>>> # python -c 'import seobject; seobject.loginRecords().delete("pwalsh")'
>>>>
>>>> Could it be a translation problem?
>>> Try running multiple calls within the same python interpreter.
>>> I think seobject.py isn't using libsemanage correctly.  For example, in
>>> add(), you do:
>>>                         self.begin()
>>>                          self.__add(name, sename, serange)
>>>                          self.commit()
>>> but begin() only ever invokes semanage_begin_transaction() the very
>>> first time:
>>>         def begin(self):
>>>                 if self.transaction:
>>>                        return
>>>                 rc = semanage_begin_transaction(self.sh)
>>>
>>> So after the first commit(), you'll start failing.
>>>
>> I think this patch fixes the transaction patch in semanage.
> 
> Patch looks good to me.
> 
> Acked-by: Chad Sellers <csellers@tresys.com>
> 

Merged in policycoreutils-2.0.63

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-05-18 15:28 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-11 16:15 Help with python seobject.loginRecords Joe Nall
2009-03-11 19:35 ` Daniel J Walsh
2009-03-11 19:50   ` Joe Nall
2009-03-11 20:16     ` Daniel J Walsh
2009-03-11 20:36       ` Joe Nall
2009-03-11 20:49     ` Daniel J Walsh
2009-03-11 21:00       ` Stephen Smalley
2009-03-12 13:29         ` Daniel J Walsh
2009-04-22 21:08           ` Chad Sellers
2009-05-18 15:28             ` Joshua Brindle
2009-03-11 21:07       ` Joe Nall

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.