Import Upstream version 4.12.4
This commit is contained in:
@@ -5,33 +5,130 @@
|
||||
'''
|
||||
This base platform module exports platform dependant constants.
|
||||
'''
|
||||
import grp
|
||||
import os
|
||||
import pwd
|
||||
import sys
|
||||
|
||||
|
||||
class _Entity(str):
|
||||
__slots__ = ("_entity", )
|
||||
|
||||
def __new__(cls, name):
|
||||
# if 'name' is already an instance of cls, return identical name
|
||||
if isinstance(name, cls):
|
||||
return name
|
||||
else:
|
||||
return super().__new__(cls, name)
|
||||
|
||||
def __init__(self, name):
|
||||
super().__init__()
|
||||
self._entity = None
|
||||
|
||||
def __str__(self):
|
||||
return super().__str__()
|
||||
|
||||
def __repr__(self):
|
||||
return f'<{self.__class__.__name__} "{self!s}">'
|
||||
|
||||
|
||||
class User(_Entity):
|
||||
__slots__ = ()
|
||||
|
||||
@property
|
||||
def entity(self):
|
||||
"""User information struct
|
||||
|
||||
:return: pwd.struct_passwd instance
|
||||
"""
|
||||
entity = self._entity
|
||||
if entity is None:
|
||||
try:
|
||||
self._entity = entity = pwd.getpwnam(self)
|
||||
except KeyError:
|
||||
raise ValueError(f"user '{self!s}' not found") from None
|
||||
return entity
|
||||
|
||||
@property
|
||||
def uid(self):
|
||||
"""Numeric user id (int)
|
||||
"""
|
||||
return self.entity.pw_uid
|
||||
|
||||
@property
|
||||
def pgid(self):
|
||||
"""Primary group id (int)"""
|
||||
return self.entity.pw_gid
|
||||
|
||||
def chown(self, path, gid=None, **kwargs):
|
||||
"""chown() file by path or file descriptor
|
||||
|
||||
gid defaults to user's primary gid. Use -1 to keep gid.
|
||||
"""
|
||||
if gid is None:
|
||||
gid = self.pgid
|
||||
elif isinstance(gid, Group):
|
||||
gid = gid.gid
|
||||
os.chown(path, self.uid, gid, **kwargs)
|
||||
|
||||
|
||||
class Group(_Entity):
|
||||
__slots__ = ()
|
||||
|
||||
@property
|
||||
def entity(self):
|
||||
"""Group information
|
||||
|
||||
:return: grp.struct_group instance
|
||||
"""
|
||||
entity = self._entity
|
||||
if entity is None:
|
||||
try:
|
||||
self._entity = entity = grp.getgrnam(self)
|
||||
except KeyError:
|
||||
raise ValueError(f"group '{self!s}' not found") from None
|
||||
return entity
|
||||
|
||||
@property
|
||||
def gid(self):
|
||||
"""Numeric group id (int)
|
||||
"""
|
||||
return self.entity.gr_gid
|
||||
|
||||
def chgrp(self, path, **kwargs):
|
||||
"""change group owner file by path or file descriptor
|
||||
"""
|
||||
os.chown(path, -1, self.gid, **kwargs)
|
||||
|
||||
|
||||
class BaseConstantsNamespace:
|
||||
IS_64BITS = sys.maxsize > 2 ** 32
|
||||
DEFAULT_ADMIN_SHELL = '/bin/bash'
|
||||
DEFAULT_SHELL = '/bin/sh'
|
||||
DS_USER = 'dirsrv'
|
||||
DS_GROUP = 'dirsrv'
|
||||
HTTPD_USER = "apache"
|
||||
HTTPD_GROUP = "apache"
|
||||
GSSPROXY_USER = "root"
|
||||
IPAAPI_USER = User("ipaapi")
|
||||
IPAAPI_GROUP = Group("ipaapi")
|
||||
DS_USER = User("dirsrv")
|
||||
DS_GROUP = Group("dirsrv")
|
||||
HTTPD_USER = User("apache")
|
||||
HTTPD_GROUP = Group("apache")
|
||||
GSSPROXY_USER = User("root")
|
||||
IPA_ADTRUST_PACKAGE_NAME = "freeipa-server-trust-ad"
|
||||
IPA_DNS_PACKAGE_NAME = "freeipa-server-dns"
|
||||
KDCPROXY_USER = "kdcproxy"
|
||||
NAMED_USER = "named"
|
||||
NAMED_GROUP = "named"
|
||||
KDCPROXY_USER = User("kdcproxy")
|
||||
NAMED_USER = User("named")
|
||||
NAMED_GROUP = Group("named")
|
||||
NAMED_DATA_DIR = "data/"
|
||||
NAMED_OPTIONS_VAR = "OPTIONS"
|
||||
NAMED_OPENSSL_ENGINE = None
|
||||
NAMED_ZONE_COMMENT = ""
|
||||
PKI_USER = 'pkiuser'
|
||||
PKI_GROUP = 'pkiuser'
|
||||
PKI_USER = User("pkiuser")
|
||||
PKI_GROUP = Group("pkiuser")
|
||||
# ntpd init variable used for daemon options
|
||||
NTPD_OPTS_VAR = "OPTIONS"
|
||||
# quote used for daemon options
|
||||
NTPD_OPTS_QUOTE = "\""
|
||||
ODS_USER = "ods"
|
||||
ODS_GROUP = "ods"
|
||||
ODS_USER = User("ods")
|
||||
ODS_GROUP = Group("ods")
|
||||
# nfsd init variable used to enable kerberized NFS
|
||||
SECURE_NFS_VAR = "SECURE_NFS"
|
||||
SELINUX_BOOLEAN_ADTRUST = {
|
||||
@@ -54,6 +151,9 @@ class BaseConstantsNamespace:
|
||||
'samba_share_nfs': 'on',
|
||||
},
|
||||
}
|
||||
SELINUX_BOOLEAN_SSSD = {
|
||||
'sssd_use_usb': 'on',
|
||||
}
|
||||
SELINUX_MCS_MAX = 1023
|
||||
SELINUX_MCS_REGEX = r"^c(\d+)([.,-]c(\d+))*$"
|
||||
SELINUX_MLS_MAX = 15
|
||||
@@ -68,7 +168,7 @@ class BaseConstantsNamespace:
|
||||
"$sysadm_u:s0-s0:c0.c1023"
|
||||
"$unconfined_u:s0-s0:c0.c1023"
|
||||
)
|
||||
SSSD_USER = "sssd"
|
||||
SSSD_USER = User("sssd")
|
||||
# WSGI module override, only used on Fedora
|
||||
MOD_WSGI_PYTHON2 = None
|
||||
MOD_WSGI_PYTHON3 = None
|
||||
|
||||
@@ -26,15 +26,16 @@ import os
|
||||
|
||||
class BasePathNamespace:
|
||||
BIN_HOSTNAMECTL = "/bin/hostnamectl"
|
||||
CRYPTO_POLICY_OPENSSLCNF_FILE = None
|
||||
ECHO = "/bin/echo"
|
||||
FIPS_MODE_SETUP = "/usr/bin/fips-mode-setup"
|
||||
FIPS_MODE_SETUP = "/bin/fips-mode-setup"
|
||||
GZIP = "/bin/gzip"
|
||||
LS = "/bin/ls"
|
||||
SYSTEMCTL = "/bin/systemctl"
|
||||
SYSTEMD_RUN = "/bin/systemd-run"
|
||||
SYSTEMD_DETECT_VIRT = "/usr/bin/systemd-detect-virt"
|
||||
SYSTEMD_TMPFILES = "/usr/bin/systemd-tmpfiles"
|
||||
SYSTEMD_TMPFILES = "/bin/systemd-tmpfiles"
|
||||
TAR = "/bin/tar"
|
||||
AUTOFS_LDAP_AUTH_CONF = "/etc/autofs_ldap_auth.conf"
|
||||
ETC_FEDORA_RELEASE = "/etc/fedora-release"
|
||||
GROUP = "/etc/group"
|
||||
ETC_HOSTNAME = "/etc/hostname"
|
||||
@@ -69,6 +70,8 @@ class BasePathNamespace:
|
||||
IPA_DEFAULT_CONF = "/etc/ipa/default.conf"
|
||||
IPA_DNSKEYSYNCD_KEYTAB = "/etc/ipa/dnssec/ipa-dnskeysyncd.keytab"
|
||||
IPA_ODS_EXPORTER_KEYTAB = "/etc/ipa/dnssec/ipa-ods-exporter.keytab"
|
||||
IPA_SERVER_CONF = "/etc/ipa/server.conf"
|
||||
DNSSEC_OPENSSL_CONF = "/etc/ipa/dnssec/openssl.cnf"
|
||||
DNSSEC_SOFTHSM2_CONF = "/etc/ipa/dnssec/softhsm2.conf"
|
||||
DNSSEC_SOFTHSM_PIN_SO = "/etc/ipa/dnssec/softhsm_pin_so"
|
||||
IPA_NSSDB_DIR = "/etc/ipa/nssdb"
|
||||
@@ -83,12 +86,16 @@ class BasePathNamespace:
|
||||
NAMED_CONF = "/etc/named.conf"
|
||||
NAMED_CONF_BAK = "/etc/named.conf.ipa-backup"
|
||||
NAMED_CUSTOM_CONF = "/etc/named/ipa-ext.conf"
|
||||
NAMED_LOGGING_OPTIONS_CONF = "/etc/named/ipa-logging-ext.conf"
|
||||
NAMED_CUSTOM_OPTIONS_CONF = "/etc/named/ipa-options-ext.conf"
|
||||
NAMED_CONF_SRC = '/usr/share/ipa/bind.named.conf.template'
|
||||
NAMED_CUSTOM_CONF_SRC = '/usr/share/ipa/bind.ipa-ext.conf.template'
|
||||
NAMED_CUSTOM_OPTIONS_CONF_SRC = (
|
||||
'/usr/share/ipa/bind.ipa-options-ext.conf.template'
|
||||
)
|
||||
NAMED_LOGGING_OPTIONS_CONF_SRC = (
|
||||
"/usr/share/ipa/bind.ipa-logging-ext.conf.template"
|
||||
)
|
||||
NAMED_VAR_DIR = "/var/named"
|
||||
NAMED_KEYTAB = "/etc/named.keytab"
|
||||
NAMED_RFC1912_ZONES = "/etc/named.rfc1912.zones"
|
||||
@@ -121,6 +128,11 @@ class BasePathNamespace:
|
||||
PKI_TOMCAT_ALIAS_PWDFILE_TXT = "/etc/pki/pki-tomcat/alias/pwdfile.txt"
|
||||
PKI_TOMCAT_PASSWORD_CONF = "/etc/pki/pki-tomcat/password.conf"
|
||||
PKI_TOMCAT_SERVER_XML = "/etc/pki/pki-tomcat/server.xml"
|
||||
PKI_ACME_CONFIGSOURCES_CONF = "/etc/pki/pki-tomcat/acme/configsources.conf"
|
||||
PKI_ACME_DATABASE_CONF = "/etc/pki/pki-tomcat/acme/database.conf"
|
||||
PKI_ACME_ENGINE_CONF = "/etc/pki/pki-tomcat/acme/engine.conf"
|
||||
PKI_ACME_ISSUER_CONF = "/etc/pki/pki-tomcat/acme/issuer.conf"
|
||||
PKI_ACME_REALM_CONF = "/etc/pki/pki-tomcat/acme/realm.conf"
|
||||
ETC_REDHAT_RELEASE = "/etc/redhat-release"
|
||||
RESOLV_CONF = "/etc/resolv.conf"
|
||||
SAMBA_KEYTAB = "/etc/samba/samba.keytab"
|
||||
@@ -128,6 +140,8 @@ class BasePathNamespace:
|
||||
LIMITS_CONF = "/etc/security/limits.conf"
|
||||
SSH_CONFIG_DIR = "/etc/ssh"
|
||||
SSH_CONFIG = "/etc/ssh/ssh_config"
|
||||
SSH_IPA_CONFIG_TEMPLATE = "/usr/share/ipa/client/ssh_ipa.conf.template"
|
||||
SSH_IPA_CONFIG = "/etc/ssh/ssh_config.d/04-ipa.conf"
|
||||
SSHD_CONFIG = "/etc/ssh/sshd_config"
|
||||
SSHD_IPA_CONFIG = "/etc/ssh/sshd_config.d/04-ipa.conf"
|
||||
SSHD_IPA_CONFIG_TEMPLATE = "/usr/share/ipa/client/sshd_ipa.conf.template"
|
||||
@@ -186,7 +200,7 @@ class BasePathNamespace:
|
||||
CHROMIUM_BROWSER = "/usr/bin/chromium-browser"
|
||||
FIREFOX = "/usr/bin/firefox"
|
||||
GETCERT = "/usr/bin/getcert"
|
||||
GPG2 = "/usr/bin/gpg2"
|
||||
GPG2 = "/usr/bin/gpg"
|
||||
GPG_CONF = "/usr/bin/gpgconf"
|
||||
GPG_CONNECT_AGENT = "/usr/bin/gpg-connect-agent"
|
||||
GPG_AGENT = "/usr/bin/gpg-agent"
|
||||
@@ -208,10 +222,14 @@ class BasePathNamespace:
|
||||
ODS_ENFORCER = "/usr/sbin/ods-enforcer"
|
||||
ODS_ENFORCER_DB_SETUP = "/usr/sbin/ods-enforcer-db-setup"
|
||||
OPENSSL = "/usr/bin/openssl"
|
||||
OPENSSL_DIR = "/etc/pki/tls"
|
||||
OPENSSL_CERTS_DIR = "/etc/pki/tls/certs"
|
||||
OPENSSL_PRIVATE_DIR = "/etc/pki/tls/private"
|
||||
PK12UTIL = "/usr/bin/pk12util"
|
||||
SOFTHSM2_UTIL = "/usr/bin/softhsm2-util"
|
||||
SSLGET = "/usr/bin/sslget"
|
||||
SSS_SSH_AUTHORIZEDKEYS = "/usr/bin/sss_ssh_authorizedkeys"
|
||||
SSS_SSH_KNOWNHOSTS = "/usr/bin/sss_ssh_knownhosts"
|
||||
SSS_SSH_KNOWNHOSTSPROXY = "/usr/bin/sss_ssh_knownhostsproxy"
|
||||
BIN_TIMEOUT = "/usr/bin/timeout"
|
||||
UPDATE_CA_TRUST = "/usr/bin/update-ca-trust"
|
||||
@@ -233,6 +251,7 @@ class BasePathNamespace:
|
||||
CERTMONGER_DOGTAG_SUBMIT = "/usr/libexec/certmonger/dogtag-submit"
|
||||
IPA_SERVER_GUARD = "/usr/libexec/certmonger/ipa-server-guard"
|
||||
GENERATE_RNDC_KEY = "/usr/libexec/generate-rndc-key.sh"
|
||||
RNDC_KEY = "/etc/rndc.key"
|
||||
LIBEXEC_IPA_DIR = "/usr/libexec/ipa"
|
||||
IPA_DNSKEYSYNCD_REPLICA = "/usr/libexec/ipa/ipa-dnskeysync-replica"
|
||||
IPA_DNSKEYSYNCD = "/usr/libexec/ipa/ipa-dnskeysyncd"
|
||||
@@ -241,7 +260,8 @@ class BasePathNamespace:
|
||||
IPA_PKI_RETRIEVE_KEY = "/usr/libexec/ipa/ipa-pki-retrieve-key"
|
||||
IPA_HTTPD_PASSWD_READER = "/usr/libexec/ipa/ipa-httpd-pwdreader"
|
||||
IPA_PKI_WAIT_RUNNING = "/usr/libexec/ipa/ipa-pki-wait-running"
|
||||
DNSSEC_KEYFROMLABEL = "/usr/sbin/dnssec-keyfromlabel-pkcs11"
|
||||
DNSSEC_KEYFROMLABEL = "/usr/sbin/dnssec-keyfromlabel"
|
||||
DNSSEC_KEYFROMLABEL_9_17 = "/usr/bin/dnssec-keyfromlabel"
|
||||
GETSEBOOL = "/usr/sbin/getsebool"
|
||||
GROUPADD = "/usr/sbin/groupadd"
|
||||
USERMOD = "/usr/sbin/usermod"
|
||||
@@ -253,8 +273,6 @@ class BasePathNamespace:
|
||||
IPA_REPLICA_CONNCHECK = "/usr/sbin/ipa-replica-conncheck"
|
||||
IPA_RMKEYTAB = "/usr/sbin/ipa-rmkeytab"
|
||||
IPACTL = "/usr/sbin/ipactl"
|
||||
NAMED = "/usr/sbin/named"
|
||||
NAMED_PKCS11 = "/usr/sbin/named-pkcs11"
|
||||
CHRONYC = "/usr/bin/chronyc"
|
||||
CHRONYD = "/usr/sbin/chronyd"
|
||||
PKIDESTROY = "/usr/sbin/pkidestroy"
|
||||
@@ -263,6 +281,7 @@ class BasePathNamespace:
|
||||
RESTORECON = "/usr/sbin/restorecon"
|
||||
SELINUXENABLED = "/usr/sbin/selinuxenabled"
|
||||
SETSEBOOL = "/usr/sbin/setsebool"
|
||||
SEMODULE = "/usr/sbin/semodule"
|
||||
SMBD = "/usr/sbin/smbd"
|
||||
USERADD = "/usr/sbin/useradd"
|
||||
FONTS_DIR = "/usr/share/fonts"
|
||||
@@ -307,6 +326,7 @@ class BasePathNamespace:
|
||||
IPA_KASP_DB_BACKUP = "/var/lib/ipa/ipa-kasp.db.backup"
|
||||
DNSSEC_TOKENS_DIR = "/var/lib/ipa/dnssec/tokens"
|
||||
DNSSEC_SOFTHSM_PIN = "/var/lib/ipa/dnssec/softhsm_pin"
|
||||
DNSSEC_ENGINE_SOCK = "/run/opendnssec/engine.sock"
|
||||
IPA_CA_CSR = "/var/lib/ipa/ca.csr"
|
||||
IPA_CACERT_MANAGE = "/usr/sbin/ipa-cacert-manage"
|
||||
IPA_CERTUPDATE = "/usr/sbin/ipa-certupdate"
|
||||
@@ -330,9 +350,16 @@ class BasePathNamespace:
|
||||
SSSD_DB = "/var/lib/sss/db"
|
||||
SSSD_MC_GROUP = "/var/lib/sss/mc/group"
|
||||
SSSD_MC_PASSWD = "/var/lib/sss/mc/passwd"
|
||||
SSSD_MC_INITGROUPS = "/var/lib/sss/mc/initgroups"
|
||||
SSSD_MC_SID = "/var/lib/sss/mc/sid"
|
||||
SSSD_PIPES = "/var/lib/sss/pipes"
|
||||
SSSD_LDB = "/var/lib/sss/db/sssd.ldb"
|
||||
SSSD_CONFIG_LDB = "/var/lib/sss/db/config.ldb"
|
||||
SSSD_SECRETS = "/var/lib/sss/secrets/secrets.ldb"
|
||||
SSSD_PUBCONF_DIR = "/var/lib/sss/pubconf"
|
||||
SSSD_PUBCONF_KNOWN_HOSTS = "/var/lib/sss/pubconf/known_hosts"
|
||||
SSSD_PUBCONF_KRB5_INCLUDE_D_DIR = "/var/lib/sss/pubconf/krb5.include.d/"
|
||||
SSSD_KEYTABS_DIR = "/var/lib/sss/keytabs"
|
||||
VAR_LOG_AUDIT = "/var/log/audit/audit.log"
|
||||
VAR_LOG_HTTPD_DIR = "/var/log/httpd"
|
||||
VAR_LOG_HTTPD_ERROR = "/var/log/httpd/error_log"
|
||||
@@ -345,7 +372,10 @@ class BasePathNamespace:
|
||||
IPAREPLICA_CONNCHECK_LOG = "/var/log/ipareplica-conncheck.log"
|
||||
IPAREPLICA_INSTALL_LOG = "/var/log/ipareplica-install.log"
|
||||
IPARESTORE_LOG = "/var/log/iparestore.log"
|
||||
IPASERVER_ENABLESID_LOG = "/var/log/ipaserver-enable-sid.log"
|
||||
IPASERVER_INSTALL_LOG = "/var/log/ipaserver-install.log"
|
||||
IPASERVER_ADTRUST_INSTALL_LOG = "/var/log/ipaserver-adtrust-install.log"
|
||||
IPASERVER_DNS_INSTALL_LOG = "/var/log/ipaserver-dns-install.log"
|
||||
IPASERVER_KRA_INSTALL_LOG = "/var/log/ipaserver-kra-install.log"
|
||||
IPASERVER_UNINSTALL_LOG = "/var/log/ipaserver-uninstall.log"
|
||||
IPAUPGRADE_LOG = "/var/log/ipaupgrade.log"
|
||||
@@ -371,7 +401,6 @@ class BasePathNamespace:
|
||||
IPA_ODS_EXPORTER_CCACHE = "/var/opendnssec/tmp/ipa-ods-exporter.ccache"
|
||||
VAR_RUN_DIRSRV_DIR = "/run/dirsrv"
|
||||
IPA_CCACHES = "/run/ipa/ccaches"
|
||||
HTTP_CCACHE = "/var/lib/ipa/gssproxy/http.ccache"
|
||||
CA_BUNDLE_PEM = "/var/lib/ipa-client/pki/ca-bundle.pem"
|
||||
KDC_CA_BUNDLE_PEM = "/var/lib/ipa-client/pki/kdc-ca-bundle.pem"
|
||||
IPA_RENEWAL_LOCK = "/run/ipa/renewal.lock"
|
||||
@@ -382,16 +411,21 @@ class BasePathNamespace:
|
||||
ENTROPY_AVAIL = '/proc/sys/kernel/random/entropy_avail'
|
||||
KDCPROXY_CONFIG = '/etc/ipa/kdcproxy/kdcproxy.conf'
|
||||
CERTMONGER = '/usr/sbin/certmonger'
|
||||
NETWORK_MANAGER_CONFIG = '/etc/NetworkManager/NetworkManager.conf'
|
||||
NETWORK_MANAGER_CONFIG_DIR = '/etc/NetworkManager/conf.d'
|
||||
NETWORK_MANAGER_IPA_CONF = '/etc/NetworkManager/conf.d/zzz-ipa.conf'
|
||||
SYSTEMD_RESOLVED_IPA_CONF = '/etc/systemd/resolved.conf.d/zzz-ipa.conf'
|
||||
SYSTEMD_RESOLVED_CONF = '/etc/systemd/resolved.conf'
|
||||
SYSTEMD_RESOLVED_CONF_DIR = '/etc/systemd/resolved.conf.d'
|
||||
IPA_CUSTODIA_CONF_DIR = '/etc/ipa/custodia'
|
||||
IPA_CUSTODIA_CONF = '/etc/ipa/custodia/custodia.conf'
|
||||
IPA_CUSTODIA_KEYS = '/etc/ipa/custodia/server.keys'
|
||||
IPA_CUSTODIA_SOCKET = '/run/httpd/ipa-custodia.sock'
|
||||
IPA_CUSTODIA_AUDIT_LOG = '/var/log/ipa-custodia.audit.log'
|
||||
IPA_CUSTODIA_HANDLER = "/usr/libexec/ipa/custodia"
|
||||
IPA_CUSTODIA_CHECK = "/usr/libexec/ipa/ipa-custodia-check"
|
||||
IPA_GETKEYTAB = '/usr/sbin/ipa-getkeytab'
|
||||
IPA_MIGRATE_LOG = '/var/log/ipa-migrate.log'
|
||||
EXTERNAL_SCHEMA_DIR = '/usr/share/ipa/schema.d'
|
||||
GSSPROXY_CONF = '/etc/gssproxy/10-ipa.conf'
|
||||
KRB5CC_HTTPD = '/tmp/krb5cc-httpd'
|
||||
@@ -433,6 +467,12 @@ class BasePathNamespace:
|
||||
LIBARCH = "64"
|
||||
TDBTOOL = '/usr/bin/tdbtool'
|
||||
SECRETS_TDB = '/var/lib/samba/private/secrets.tdb'
|
||||
LETS_ENCRYPT_LOG = '/var/log/letsencrypt/letsencrypt.log'
|
||||
IPA_CCACHE_SWEEPER_GSSPROXY_SOCK = (
|
||||
"/var/lib/gssproxy/ipa_ccache_sweeper.sock"
|
||||
)
|
||||
PAM_CONFIG = None
|
||||
PASSKEY_CHILD = '/usr/libexec/sssd/passkey_child'
|
||||
|
||||
def check_paths(self):
|
||||
"""Check paths for missing files
|
||||
|
||||
@@ -37,12 +37,7 @@ from ipapython import ipautil
|
||||
from ipaplatform.paths import paths
|
||||
from ipaplatform.tasks import tasks
|
||||
|
||||
# pylint: disable=no-name-in-module, import-error
|
||||
if six.PY3:
|
||||
from collections.abc import Mapping
|
||||
else:
|
||||
from collections import Mapping
|
||||
# pylint: enable=no-name-in-module, import-error
|
||||
from collections.abc import Mapping
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -295,6 +290,10 @@ class SystemdService(PlatformService):
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=973331#c11
|
||||
if instance == "ipa-otpd.socket":
|
||||
args.append("--ignore-dependencies")
|
||||
# ipa-ods-exporter is socket-activated, both the service and the
|
||||
# socket have to be stopped
|
||||
if instance == "ipa-ods-exporter.service":
|
||||
args.append("ipa-ods-exporter.socket")
|
||||
|
||||
ipautil.run(args, skip_output=not capture_output)
|
||||
|
||||
@@ -539,4 +538,4 @@ knownservices = KnownServices({})
|
||||
|
||||
# System may support more time&date services. FreeIPA supports chrony only.
|
||||
# Other services will be disabled during IPA installation
|
||||
timedate_services = ['ntpd', 'chronyd']
|
||||
timedate_services = ['ntpd', 'chronyd', 'systemd-timesyncd']
|
||||
|
||||
@@ -200,7 +200,7 @@ class BaseTaskNamespace:
|
||||
raise NotImplementedError()
|
||||
|
||||
def modify_nsswitch_pam_stack(self, sssd, mkhomedir, statestore,
|
||||
sudo=True):
|
||||
sudo=True, subid=False):
|
||||
"""
|
||||
If sssd flag is true, configure pam and nsswitch so that SSSD is used
|
||||
for retrieving user information and authentication.
|
||||
@@ -336,7 +336,11 @@ class BaseTaskNamespace:
|
||||
from ipaplatform.services import knownservices
|
||||
|
||||
confd = os.path.dirname(paths.SYSTEMD_RESOLVED_IPA_CONF)
|
||||
os.makedirs(confd, exist_ok=True)
|
||||
if not os.path.isdir(confd):
|
||||
os.mkdir(confd)
|
||||
# owned by root, readable by systemd-resolve user
|
||||
os.chmod(confd, 0o755)
|
||||
self.restore_context(confd, force=True)
|
||||
|
||||
cfg = RESOLVE1_IPA_CONF.format(
|
||||
searchdomains=" ".join(searchdomains)
|
||||
@@ -345,6 +349,10 @@ class BaseTaskNamespace:
|
||||
os.fchmod(f.fileno(), 0o644)
|
||||
f.write(cfg)
|
||||
|
||||
self.restore_context(
|
||||
paths.SYSTEMD_RESOLVED_IPA_CONF, force=True
|
||||
)
|
||||
|
||||
knownservices["systemd-resolved"].reload_or_restart()
|
||||
|
||||
def unconfigure_dns_resolver(self, fstore=None):
|
||||
@@ -361,6 +369,7 @@ class BaseTaskNamespace:
|
||||
|
||||
os.unlink(paths.SYSTEMD_RESOLVED_IPA_CONF)
|
||||
knownservices["systemd-resolved"].reload_or_restart()
|
||||
ipautil.remove_directory(paths.SYSTEMD_RESOLVED_CONF_DIR)
|
||||
|
||||
def configure_pkcs11_modules(self, fstore):
|
||||
"""Disable p11-kit modules
|
||||
@@ -464,43 +473,6 @@ class BaseTaskNamespace:
|
||||
fstore, 'sudoers', ['sss'],
|
||||
default_value=['files'])
|
||||
|
||||
def enable_ldap_automount(self, statestore):
|
||||
"""
|
||||
Point automount to ldap in nsswitch.conf.
|
||||
This function is for non-SSSD setups only.
|
||||
"""
|
||||
conf = IPAChangeConf("IPA Installer")
|
||||
conf.setOptionAssignment(':')
|
||||
|
||||
with open(paths.NSSWITCH_CONF, 'r') as f:
|
||||
current_opts = conf.parse(f)
|
||||
current_nss_value = conf.findOpts(
|
||||
current_opts, name='automount', type='option'
|
||||
)[1]
|
||||
if current_nss_value is None:
|
||||
# no automount database present
|
||||
current_nss_value = False # None cannot be backed up
|
||||
else:
|
||||
current_nss_value = current_nss_value['value']
|
||||
statestore.backup_state(
|
||||
'ipa-client-automount-nsswitch', 'previous-automount',
|
||||
current_nss_value
|
||||
)
|
||||
|
||||
nss_value = ' files ldap'
|
||||
opts = [
|
||||
{
|
||||
'name': 'automount',
|
||||
'type': 'option',
|
||||
'action': 'set',
|
||||
'value': nss_value,
|
||||
},
|
||||
{'name': 'empty', 'type': 'empty'},
|
||||
]
|
||||
conf.changeConf(paths.NSSWITCH_CONF, opts)
|
||||
|
||||
logger.info("Configured %s", paths.NSSWITCH_CONF)
|
||||
|
||||
def disable_ldap_automount(self, statestore):
|
||||
"""Disable automount using LDAP"""
|
||||
if statestore.get_state(
|
||||
|
||||
Reference in New Issue
Block a user