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:
parent
0ba25c7e68
commit
5ecede781b
@ -26,7 +26,7 @@ class BasePathNamespace:
|
||||
BASH = "/bin/bash"
|
||||
BIN_HOSTNAMECTL = "/bin/hostnamectl"
|
||||
ECHO = "/bin/echo"
|
||||
GZIP = "/usr/bin/gzip"
|
||||
GZIP = "/bin/gzip"
|
||||
LS = "/bin/ls"
|
||||
SH = "/bin/sh"
|
||||
SYSTEMCTL = "/bin/systemctl"
|
||||
@ -391,7 +391,7 @@ class BasePathNamespace:
|
||||
BAK2DB = '/usr/sbin/bak2db'
|
||||
DB2BAK = '/usr/sbin/db2bak'
|
||||
IPA_SERVER_UPGRADE = '/usr/sbin/ipa-server-upgrade'
|
||||
KEYCTL = '/usr/bin/keyctl'
|
||||
KEYCTL = '/bin/keyctl'
|
||||
GETENT = '/usr/bin/getent'
|
||||
SSHD = '/usr/sbin/sshd'
|
||||
SSSCTL = '/usr/sbin/sssctl'
|
||||
|
@ -63,7 +63,6 @@ class DebianPathNamespace(BasePathNamespace):
|
||||
DNSSEC_TRUSTED_KEY = "/etc/bind/trusted-key.key"
|
||||
GSSAPI_SESSION_KEY = "/etc/apache2/ipasession.key"
|
||||
OLD_KRA_AGENT_PEM = "/etc/apache2/nssdb/kra-agent.pem"
|
||||
KEYCTL = "/bin/keyctl"
|
||||
SBIN_SERVICE = "/usr/sbin/service"
|
||||
CERTMONGER_COMMAND_TEMPLATE = "/usr/lib/ipa/certmonger/%s"
|
||||
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
|
||||
# reverse zone lookups
|
||||
master.run_command([
|
||||
'/usr/bin/mv',
|
||||
'/bin/mv',
|
||||
paths.RESOLV_CONF,
|
||||
'%s.sav' % paths.RESOLV_CONF
|
||||
])
|
||||
@ -44,7 +44,7 @@ def create_broken_resolv_conf(master):
|
||||
def restore_resolv_conf(master):
|
||||
if os.path.exists('%s.sav' % paths.RESOLV_CONF):
|
||||
master.run_command([
|
||||
'/usr/bin/mv',
|
||||
'/bin/mv',
|
||||
'%s.sav' % 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
|
||||
'''
|
||||
# Make a backup
|
||||
host.run_command(['/usr/bin/cp',
|
||||
host.run_command(['/bin/cp',
|
||||
paths.HOSTS,
|
||||
'%s.sav' % paths.HOSTS])
|
||||
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):
|
||||
'''Restores /etc/hosts.sav into /etc/hosts
|
||||
'''
|
||||
host.run_command(['/usr/bin/mv',
|
||||
host.run_command(['/bin/mv',
|
||||
'%s.sav' % paths.HOSTS,
|
||||
paths.HOSTS],
|
||||
raiseonerr=False)
|
||||
|
@ -156,8 +156,8 @@ class TestSudo(IntegrationTest):
|
||||
|
||||
def test_add_sudo_commands(self):
|
||||
# Group: Readers
|
||||
self.master.run_command(['ipa', 'sudocmd-add', '/usr/bin/cat'])
|
||||
self.master.run_command(['ipa', 'sudocmd-add', '/usr/bin/tail'])
|
||||
self.master.run_command(['ipa', 'sudocmd-add', '/bin/cat'])
|
||||
self.master.run_command(['ipa', 'sudocmd-add', '/bin/tail'])
|
||||
|
||||
# No group
|
||||
self.master.run_command(['ipa', 'sudocmd-add', '/usr/bin/yum'])
|
||||
@ -167,10 +167,10 @@ class TestSudo(IntegrationTest):
|
||||
'--desc', '"Applications that read"'])
|
||||
|
||||
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',
|
||||
'--sudocmds', '/usr/bin/tail'])
|
||||
'--sudocmds', '/bin/tail'])
|
||||
|
||||
def test_create_allow_all_rule(self):
|
||||
# Create rule that allows everything
|
||||
@ -441,8 +441,8 @@ class TestSudo(IntegrationTest):
|
||||
result1 = self.list_sudo_commands("testuser1")
|
||||
assert "(ALL : ALL) NOPASSWD:" in result1.stdout_text
|
||||
assert "/usr/bin/yum" in result1.stdout_text
|
||||
assert "/usr/bin/tail" in result1.stdout_text
|
||||
assert "/usr/bin/cat" in result1.stdout_text
|
||||
assert "/bin/tail" in result1.stdout_text
|
||||
assert "/bin/cat" in result1.stdout_text
|
||||
|
||||
def test_setting_category_to_all_with_valid_entries_command(self):
|
||||
result = self.reset_rule_categories(safe_delete=False)
|
||||
|
@ -72,7 +72,7 @@ class TestUninstallBase(IntegrationTest):
|
||||
# uninstaller to raise an exception and return with a
|
||||
# non-zero return code.
|
||||
self.master.run_command([
|
||||
'/usr/bin/mv',
|
||||
'/bin/mv',
|
||||
'%s/%s' % (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
|
||||
# successfully.
|
||||
self.master.run_command([
|
||||
'/usr/bin/mv',
|
||||
'/bin/mv',
|
||||
'%s/%s.test' % (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', [
|
||||
# Valid values
|
||||
('cat', '/usr/bin/cat'),
|
||||
('/usr/bin/cat', '/usr/bin/cat'),
|
||||
('cat', '/bin/cat'),
|
||||
('/bin/cat', '/bin/cat'),
|
||||
# Invalid values (wrong command, package is not installed, etc)
|
||||
('cat_', None),
|
||||
('', None)
|
||||
])
|
||||
def test_get_pager(pager, expected_result):
|
||||
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
|
||||
|
||||
pushd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
Loading…
Reference in New Issue
Block a user