Bug 856550

Summary: record not found in the database: setsebool -P old_boolean_name ...
Product: Red Hat Enterprise Linux 7 Reporter: Milos Malik <mmalik>
Component: policycoreutilsAssignee: Daniel Walsh <dwalsh>
Status: CLOSED CURRENTRELEASE QA Contact: Milos Malik <mmalik>
Severity: high Docs Contact:
Priority: high    
Version: 7.0CC: mgrepl
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 12:30:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 913612    

Description Milos Malik 2012-09-12 09:51:16 UTC
Description of problem:
inspired by https://fedoraproject.org/wiki/Features/SELinuxBooleansRename

Version-Release number of selected component (if applicable):
policycoreutils-sandbox-2.1.12-5.el7.x86_64
policycoreutils-python-2.1.12-5.el7.x86_64
policycoreutils-newrole-2.1.12-5.el7.x86_64
policycoreutils-2.1.12-5.el7.x86_64

How reproducible:
always

Steps to Reproduce:
# getsebool allow_ypbind
nis_enabled --> on
# setsebool allow_ypbind off
# setsebool -P allow_ypbind on
libsemanage.dbase_llist_set: record not found in the database
libsemanage.dbase_llist_set: could not set record value
Could not change boolean allow_ypbind
Could not change policy booleans
# echo $?
255
#

Actual results:
 * boolean value cannot be set permanently when old name is used

Expected results:
 * boolean value can be set permanently when old name is used

Comment 1 Miroslav Grepl 2012-09-12 11:46:29 UTC
The problem is we renamed boolean.

setsebool -P nis_enabled on

should work.

Comment 2 Milos Malik 2012-09-12 12:29:13 UTC
I know it will work.

Excerpt from https://fedoraproject.org/wiki/Features/SELinuxBooleansRename:

This fix will rename the booleans to something that makes better sense, but will continue to support the old booleans so scripts, documentation and web searches that return the old names will continue to work. Also if you are using an older system and wanted to set allow_polyinstantion on all platforms you will be able to set it on the new system, even thought the boolean name has been renamed to polyinstantion_enabled.

Comment 3 Daniel Walsh 2012-09-18 14:29:37 UTC
Yes we have fixed this in F18, I will begin updating RHEL with the new packages.

Comment 4 Daniel Walsh 2012-09-18 14:45:12 UTC
Fixed in libselinux-2.1.12-1.el7 and libsemanage-2.1.9-1.el7

Comment 5 Milos Malik 2012-10-19 12:23:53 UTC
# semanage boolean -l -F > all-booleans.txt
# cat all-booleans.txt | wc -l
230
# semanage boolean -m -F all-booleans.txt 
# echo $?
0
# sed -i 's/nis_enabled/allow_ypbind/' all-booleans.txt 
# cat all-booleans.txt | wc -l
230
# semanage boolean -m -F all-booleans.txt 
/usr/sbin/semanage: Boolean allow_ypbind is not defined
# echo $?
1
#

Comment 6 Milos Malik 2012-10-19 12:25:24 UTC
Sorry, I forgot to mention NVRs:

# rpm -qa | grep -e libselinux -e libsemanage | sort
libselinux-2.1.12-5.el7.x86_64
libselinux-devel-2.1.12-5.el7.x86_64
libselinux-python-2.1.12-5.el7.x86_64
libselinux-ruby-2.1.12-5.el7.x86_64
libselinux-utils-2.1.12-5.el7.x86_64
libsemanage-2.1.9-1.el7.x86_64
libsemanage-python-2.1.9-1.el7.x86_64
#

Comment 7 Daniel Walsh 2012-10-25 18:23:52 UTC
Fixed in policycoreutils-2.1.13-17.el7

Comment 11 Ludek Smid 2014-06-13 12:30:33 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.