#7978 Missing configuration point for the default shell of user/admin
Closed: fixed 4 years ago by cheimes. Opened 4 years ago by slev.

I run IPA XMLRPC tests.
My default user shell is changed from /bin/sh to /bin/bash.
This leads to errors like:

test_add_remove_cert_cmd.py" line="480" name="test_00_add_idoverrideuser" time="0.407"><failure message="AssertionError: assert_deepequal: expected != got.

  expected = &apos;/bin/sh&apos;
  got = &apos;/bin/bash&apos;
  path = (&apos;result&apos;, &apos;loginshell&apos;, 0)">self = &lt;ipatests.test_xmlrpc.test_add_remove_cert_cmd.TestCertManipIdOverride object at 0x7f34e3a034e0&gt;

Unfortunately, there is no corresponding configuration point. Hence, /bin/sh is hardcoded:

git grep '/bin/sh' ipatests

ipatests/test_integration/test_legacy_clients.py:                         r"Test User:%s:/bin/sh"\
ipatests/test_integration/test_legacy_clients.py:                         r"/bin/sh"\
ipatests/test_integration/test_legacy_clients.py:                          r"/home/{0}/treetestuser:/bin/sh".format(
ipatests/test_integration/test_trust.py:                         r"Test User:/home/%s/testuser:/bin/sh$"\
ipatests/test_integration/test_trust.py:            r"^{}@{}:\*:(\d+):(\d+):{}:/home/{}/{}:/bin/sh$".format(
ipatests/test_integration/test_trust.py:                          "Test User:/home/%s/testuser:/bin/sh"\
ipatests/test_integration/test_trust.py:                          r"/home/{1}/subdomaintestuser:/bin/sh$".format(
ipatests/test_integration/test_trust.py:                          r"/home/{1}/treetestuser:/bin/sh$".format(
ipatests/test_integration/test_trust.py:                         r"Test User:/home/%s/testuser:/bin/sh$"\
ipatests/test_integration/test_trust.py:                         r"Test User:/home/%s/testuser:/bin/sh$"\
ipatests/test_integration/test_winsyncmigrate.py:            r"^{0}:\*:(\d+):(\d+):{0}:/home/{0}:/bin/sh$".format(
ipatests/test_integration/test_winsyncmigrate.py:            '{trust_user}:*:{uid}:{gid}:{user}:/home/{domain}/{user}:/bin/sh')
ipatests/test_integration/test_winsyncmigrate.py:            'loginshell: /bin/sh'
ipatests/test_xmlrpc/test_stageuser_plugin.py:    ('shell', {u'loginshell': u'/bin/shell'}),
ipatests/test_xmlrpc/test_user_plugin.py:            'config_mod', **{u'ipadefaultloginshell': u'/bin/sh'}
ipatests/test_xmlrpc/test_user_plugin.py:        loginshell=[u'/bin/sh'],       
ipatests/test_xmlrpc/tracker/stageuser_plugin.py:            loginshell=[u'/bin/sh'],
ipatests/test_xmlrpc/tracker/user_plugin.py:            loginshell=[u'/bin/sh']

Your default user shell is changed where? Post-install?

Actually, I've changed ipaDefaultLoginShell directly in install/share/bootstrap-template.ldif,
but I can do this whenever I want through configuration.

Well, if you're going to make a code change then change the tests as well. Assumptions are made in the tests that they are run against a vanilla installation. The thinking being that sure, everything could be looked up, but at what cost of test performance, etc.

master:

  • d86b57c Make use of the single configuration point for the default shells

Metadata Update from @cheimes:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

4 years ago

Login to comment on this ticket.

Metadata