mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Fix unnecessary usrmerge assumptions
On non-usrmerge systems (e.g., Debian), bash, mv, cp, cat, tail, keyctl, and gzip live in /bin, not /usr/bin. On usrmerge systems, /bin is a symlink to /usr/bin (or vice versa), so this has no effect. Signed-off-by: Robbie Harwood <rharwood@redhat.com> Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com> Reviewed-By: Christian Heimes <cheimes@redhat.com>
This commit is contained in:
committed by
Christian Heimes
parent
0ba25c7e68
commit
5ecede781b
@@ -26,7 +26,7 @@ class BasePathNamespace:
|
|||||||
BASH = "/bin/bash"
|
BASH = "/bin/bash"
|
||||||
BIN_HOSTNAMECTL = "/bin/hostnamectl"
|
BIN_HOSTNAMECTL = "/bin/hostnamectl"
|
||||||
ECHO = "/bin/echo"
|
ECHO = "/bin/echo"
|
||||||
GZIP = "/usr/bin/gzip"
|
GZIP = "/bin/gzip"
|
||||||
LS = "/bin/ls"
|
LS = "/bin/ls"
|
||||||
SH = "/bin/sh"
|
SH = "/bin/sh"
|
||||||
SYSTEMCTL = "/bin/systemctl"
|
SYSTEMCTL = "/bin/systemctl"
|
||||||
@@ -391,7 +391,7 @@ class BasePathNamespace:
|
|||||||
BAK2DB = '/usr/sbin/bak2db'
|
BAK2DB = '/usr/sbin/bak2db'
|
||||||
DB2BAK = '/usr/sbin/db2bak'
|
DB2BAK = '/usr/sbin/db2bak'
|
||||||
IPA_SERVER_UPGRADE = '/usr/sbin/ipa-server-upgrade'
|
IPA_SERVER_UPGRADE = '/usr/sbin/ipa-server-upgrade'
|
||||||
KEYCTL = '/usr/bin/keyctl'
|
KEYCTL = '/bin/keyctl'
|
||||||
GETENT = '/usr/bin/getent'
|
GETENT = '/usr/bin/getent'
|
||||||
SSHD = '/usr/sbin/sshd'
|
SSHD = '/usr/sbin/sshd'
|
||||||
SSSCTL = '/usr/sbin/sssctl'
|
SSSCTL = '/usr/sbin/sssctl'
|
||||||
|
@@ -63,7 +63,6 @@ class DebianPathNamespace(BasePathNamespace):
|
|||||||
DNSSEC_TRUSTED_KEY = "/etc/bind/trusted-key.key"
|
DNSSEC_TRUSTED_KEY = "/etc/bind/trusted-key.key"
|
||||||
GSSAPI_SESSION_KEY = "/etc/apache2/ipasession.key"
|
GSSAPI_SESSION_KEY = "/etc/apache2/ipasession.key"
|
||||||
OLD_KRA_AGENT_PEM = "/etc/apache2/nssdb/kra-agent.pem"
|
OLD_KRA_AGENT_PEM = "/etc/apache2/nssdb/kra-agent.pem"
|
||||||
KEYCTL = "/bin/keyctl"
|
|
||||||
SBIN_SERVICE = "/usr/sbin/service"
|
SBIN_SERVICE = "/usr/sbin/service"
|
||||||
CERTMONGER_COMMAND_TEMPLATE = "/usr/lib/ipa/certmonger/%s"
|
CERTMONGER_COMMAND_TEMPLATE = "/usr/lib/ipa/certmonger/%s"
|
||||||
UPDATE_CA_TRUST = "/usr/sbin/update-ca-certificates"
|
UPDATE_CA_TRUST = "/usr/sbin/update-ca-certificates"
|
||||||
|
@@ -32,7 +32,7 @@ def create_broken_resolv_conf(master):
|
|||||||
# Force a broken resolv.conf to simulate a bad response to
|
# Force a broken resolv.conf to simulate a bad response to
|
||||||
# reverse zone lookups
|
# reverse zone lookups
|
||||||
master.run_command([
|
master.run_command([
|
||||||
'/usr/bin/mv',
|
'/bin/mv',
|
||||||
paths.RESOLV_CONF,
|
paths.RESOLV_CONF,
|
||||||
'%s.sav' % paths.RESOLV_CONF
|
'%s.sav' % paths.RESOLV_CONF
|
||||||
])
|
])
|
||||||
@@ -44,7 +44,7 @@ def create_broken_resolv_conf(master):
|
|||||||
def restore_resolv_conf(master):
|
def restore_resolv_conf(master):
|
||||||
if os.path.exists('%s.sav' % paths.RESOLV_CONF):
|
if os.path.exists('%s.sav' % paths.RESOLV_CONF):
|
||||||
master.run_command([
|
master.run_command([
|
||||||
'/usr/bin/mv',
|
'/bin/mv',
|
||||||
'%s.sav' % paths.RESOLV_CONF,
|
'%s.sav' % paths.RESOLV_CONF,
|
||||||
paths.RESOLV_CONF
|
paths.RESOLV_CONF
|
||||||
])
|
])
|
||||||
|
@@ -635,7 +635,7 @@ def update_etc_hosts(host, ip, old_hostname, new_hostname):
|
|||||||
:param new_hostname the new hostname to put in /etc/hosts
|
:param new_hostname the new hostname to put in /etc/hosts
|
||||||
'''
|
'''
|
||||||
# Make a backup
|
# Make a backup
|
||||||
host.run_command(['/usr/bin/cp',
|
host.run_command(['/bin/cp',
|
||||||
paths.HOSTS,
|
paths.HOSTS,
|
||||||
'%s.sav' % paths.HOSTS])
|
'%s.sav' % paths.HOSTS])
|
||||||
contents = host.get_file_contents(paths.HOSTS, encoding='utf-8')
|
contents = host.get_file_contents(paths.HOSTS, encoding='utf-8')
|
||||||
@@ -655,7 +655,7 @@ def update_etc_hosts(host, ip, old_hostname, new_hostname):
|
|||||||
def restore_etc_hosts(host):
|
def restore_etc_hosts(host):
|
||||||
'''Restores /etc/hosts.sav into /etc/hosts
|
'''Restores /etc/hosts.sav into /etc/hosts
|
||||||
'''
|
'''
|
||||||
host.run_command(['/usr/bin/mv',
|
host.run_command(['/bin/mv',
|
||||||
'%s.sav' % paths.HOSTS,
|
'%s.sav' % paths.HOSTS,
|
||||||
paths.HOSTS],
|
paths.HOSTS],
|
||||||
raiseonerr=False)
|
raiseonerr=False)
|
||||||
|
@@ -156,8 +156,8 @@ class TestSudo(IntegrationTest):
|
|||||||
|
|
||||||
def test_add_sudo_commands(self):
|
def test_add_sudo_commands(self):
|
||||||
# Group: Readers
|
# Group: Readers
|
||||||
self.master.run_command(['ipa', 'sudocmd-add', '/usr/bin/cat'])
|
self.master.run_command(['ipa', 'sudocmd-add', '/bin/cat'])
|
||||||
self.master.run_command(['ipa', 'sudocmd-add', '/usr/bin/tail'])
|
self.master.run_command(['ipa', 'sudocmd-add', '/bin/tail'])
|
||||||
|
|
||||||
# No group
|
# No group
|
||||||
self.master.run_command(['ipa', 'sudocmd-add', '/usr/bin/yum'])
|
self.master.run_command(['ipa', 'sudocmd-add', '/usr/bin/yum'])
|
||||||
@@ -167,10 +167,10 @@ class TestSudo(IntegrationTest):
|
|||||||
'--desc', '"Applications that read"'])
|
'--desc', '"Applications that read"'])
|
||||||
|
|
||||||
self.master.run_command(['ipa', 'sudocmdgroup-add-member', 'readers',
|
self.master.run_command(['ipa', 'sudocmdgroup-add-member', 'readers',
|
||||||
'--sudocmds', '/usr/bin/cat'])
|
'--sudocmds', '/bin/cat'])
|
||||||
|
|
||||||
self.master.run_command(['ipa', 'sudocmdgroup-add-member', 'readers',
|
self.master.run_command(['ipa', 'sudocmdgroup-add-member', 'readers',
|
||||||
'--sudocmds', '/usr/bin/tail'])
|
'--sudocmds', '/bin/tail'])
|
||||||
|
|
||||||
def test_create_allow_all_rule(self):
|
def test_create_allow_all_rule(self):
|
||||||
# Create rule that allows everything
|
# Create rule that allows everything
|
||||||
@@ -441,8 +441,8 @@ class TestSudo(IntegrationTest):
|
|||||||
result1 = self.list_sudo_commands("testuser1")
|
result1 = self.list_sudo_commands("testuser1")
|
||||||
assert "(ALL : ALL) NOPASSWD:" in result1.stdout_text
|
assert "(ALL : ALL) NOPASSWD:" in result1.stdout_text
|
||||||
assert "/usr/bin/yum" in result1.stdout_text
|
assert "/usr/bin/yum" in result1.stdout_text
|
||||||
assert "/usr/bin/tail" in result1.stdout_text
|
assert "/bin/tail" in result1.stdout_text
|
||||||
assert "/usr/bin/cat" in result1.stdout_text
|
assert "/bin/cat" in result1.stdout_text
|
||||||
|
|
||||||
def test_setting_category_to_all_with_valid_entries_command(self):
|
def test_setting_category_to_all_with_valid_entries_command(self):
|
||||||
result = self.reset_rule_categories(safe_delete=False)
|
result = self.reset_rule_categories(safe_delete=False)
|
||||||
|
@@ -72,7 +72,7 @@ class TestUninstallBase(IntegrationTest):
|
|||||||
# uninstaller to raise an exception and return with a
|
# uninstaller to raise an exception and return with a
|
||||||
# non-zero return code.
|
# non-zero return code.
|
||||||
self.master.run_command([
|
self.master.run_command([
|
||||||
'/usr/bin/mv',
|
'/bin/mv',
|
||||||
'%s/%s' % (paths.ETC_DIRSRV, instance_name),
|
'%s/%s' % (paths.ETC_DIRSRV, instance_name),
|
||||||
'%s/%s.test' % (paths.ETC_DIRSRV, instance_name)
|
'%s/%s.test' % (paths.ETC_DIRSRV, instance_name)
|
||||||
])
|
])
|
||||||
@@ -95,7 +95,7 @@ class TestUninstallBase(IntegrationTest):
|
|||||||
# Moving it back should allow the uninstall to finish
|
# Moving it back should allow the uninstall to finish
|
||||||
# successfully.
|
# successfully.
|
||||||
self.master.run_command([
|
self.master.run_command([
|
||||||
'/usr/bin/mv',
|
'/bin/mv',
|
||||||
'%s/%s.test' % (paths.ETC_DIRSRV, instance_name),
|
'%s/%s.test' % (paths.ETC_DIRSRV, instance_name),
|
||||||
'%s/%s' % (paths.ETC_DIRSRV, instance_name)
|
'%s/%s' % (paths.ETC_DIRSRV, instance_name)
|
||||||
])
|
])
|
||||||
|
@@ -14,12 +14,13 @@ from ipalib.util import get_pager
|
|||||||
|
|
||||||
@pytest.mark.parametrize('pager,expected_result', [
|
@pytest.mark.parametrize('pager,expected_result', [
|
||||||
# Valid values
|
# Valid values
|
||||||
('cat', '/usr/bin/cat'),
|
('cat', '/bin/cat'),
|
||||||
('/usr/bin/cat', '/usr/bin/cat'),
|
('/bin/cat', '/bin/cat'),
|
||||||
# Invalid values (wrong command, package is not installed, etc)
|
# Invalid values (wrong command, package is not installed, etc)
|
||||||
('cat_', None),
|
('cat_', None),
|
||||||
('', None)
|
('', None)
|
||||||
])
|
])
|
||||||
def test_get_pager(pager, expected_result):
|
def test_get_pager(pager, expected_result):
|
||||||
with mock.patch.dict(os.environ, {'PAGER': pager}):
|
with mock.patch.dict(os.environ, {'PAGER': pager}):
|
||||||
assert get_pager() == expected_result
|
pager = get_pager()
|
||||||
|
assert(pager == expected_result or pager.endswith(expected_result))
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/bash
|
#!/bin/bash
|
||||||
set -o errexit
|
set -o errexit
|
||||||
|
|
||||||
pushd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
pushd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
Reference in New Issue
Block a user