Folosesc containere lxd/lxc (Oracle Linux 8) pentru a implementa rapid mediul (deci, dacă aveți configurarea lxd, puteți modifica schema ip pentru a se potrivi cu subrețeaua/DNS-ul lxd și apoi lipiți codul în containere lxc separate).
Mă pot autentifica ca utilizatorul meu de testare „adam”, dar când încerc să configurez sudo pentru adam, îmi spune
Adam nu poate rula sudo pe <hostname>
Din câte îmi pot da seama, am totul configurat corect [pentru sudo].
LDAP: https://www.server-world.info/en/note?os=CentOS_7&p=openldap / https://kifarunix.com/install-and-setup-openldap-on-rocky-linux-8/
SSSD: https://kifarunix.com/configure-sssd-for-openldap-authentication-on-centos-8/
SUDO: https://kifarunix.com/how-to-configure-sudo-via-openldap-server/
Container LDAP
lxc stop ldapmaster --force; lxc șterge ldapmaster; Imagini de lansare lxc: oracle/8/amd64 ldapmaster; lxc exec ldapmaster passwd; Consola lxc ldapmaster
lipiți în containerul LDAP
ldaphostname="ldapmaster"
domeniu="exemplu"
suffix="com"
olcRootPW=1234
userpw=1234
binddnpw=1234
mgrpw=1234
DNS1=192.168.3.1
DNS2=192.168.3.2
LDAPMASTERIP=10.175.235.220
SSSDIP=10.175.235.210
NETMASKIP=255.255.255.0
GATEWAYIP=10.175.235.1
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=$LDAPMASTERIP
NETMASKIP=$NETMASKIP
GATEWAY=$GATEWAYIP
DNS1=$DNS1
DNS2=$DNS2
ONBOOT=da
HOSTNAME=`cat /proc/sys/kernel/hostname`
TYPE=Ethernet
MTU=
DHCP_HOSTNAME=`cat /proc/sys/kernel/hostname`
IPV6INIT=da
EOF
ifdown eth0
ifup eth0
cat <<EOF > /etc/yum.repos.d/appstream.repo
[aplicație]
nume=Oracle Linux
baseurl=http://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/
activat=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
EOF
cat <<EOF > /etc/yum.repos.d/base.repo
[baza]
nume=Oracle Linux
baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/3/baseos/base/x86_64/
activat=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
proxy=http://www-proxy.web.boeing.com:31060
EOF
cat <<EOF > /etc/yum.repos.d/powertools.repo
[Unelte electrice]
nume=Oracle Linux
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL8/codeready/builder/x86_64/
activat=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
EOF
echo "10.175.235.220 $ldaphostname $ldaphostname.$domain.$sufx" >> /etc/hosts
#https://www.server-world.info/en/note?os=CentOS_7&p=openldap
yum -y instalează openldap-server openldap-clients firewalld mlocate man openssl nume gazdă sssd-tools openssh-server nss-pam-ldapd nano --nobest
cat <<EOF > /etc/sudo-ldap.conf
binddn cn=Manager,dc=$domeniu,dc=$sufix
bindpw 1234
ssl start_tls
tls_cacertfile = /etc/pki/tls/cacert.crt
sudoers_base = ou=SUDOers,DC=$domeniu,DC=$sufix
tls_checkpeer yesuri ldaps://$ldaphostname:636
bind_timelimit 5
limita de timp 15
EOF
actualizatb
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap. /var/lib/ldap/DB_CONFIG
systemctl enable --now sshd
systemctl enable --now slapd
pisică <<EOF > chrootpw.ldif
# specificați parola generată mai sus pentru secțiunea „olcRootPW”.
dn: olcDatabase={0}config,cn=config
changetype: modifică
adăugați: olcRootPW
olcRootPW: $(slappasswd -s $olcRootPW)
EOF
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/ldapserver.key -out /etc/pki/tls/ldapserver.crt -subj "/C=XX/L=Oraș implicit /O=Default Company Ltd/CN=$ldaphostname"
chown ldap:ldap /etc/pki/tls/{ldapserver.crt,ldapserver.key}
cat > add-tls.ldif << 'EOL'
dn: cn=config
changetype: modifică
adăugați: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/pki/tls/ldapserver.crt
-
adăugați: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/pki/tls/ldapserver.key
-
adăugați: olcTLSCertificateFile
olcTLSCertificateFile: /etc/pki/tls/ldapserver.crt
EOL
cat <<EOF > /etc/openldap/ldap.conf
#
# Valori implicite LDAP
#
# Vezi ldap.conf(5) pentru detalii
# Acest fișier ar trebui să poată fi citit în întreaga lume, dar nu în scris.
BAZĂ dc=$domeniu,dc=$sufix
URI ldaps://$ldaphostname:636
#ldap.example.com ldap://ldap-master.example.com:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF niciodată
# Când nu sunt specificate certificate CA, certificatele de sistem partajate
# sunt în uz. Pentru a le avea la dispoziție împreună cu cele specificate
# prin TLS_CACERTDIR trebuie să le includă în mod explicit:
#TLS_CACERT /etc/pki/tls/cert.pem
TLS_CACERT /etc/pki/tls/ldapserver.crt
# Politicile Crypto la nivel de sistem oferă o suită de criptare actualizată, ceea ce ar trebui
# să fie folosit cu excepția cazului în care aveți nevoie de o selecție mai fină de cifruri. Prin urmare, cel
# PROFILE=Valoarea SYSTEM reprezintă comportamentul implicit care este în vigoare
# când nu este utilizată nicio setare explicită. (vezi openssl-ciphers(1) pentru mai multe informații)
#TLS_CIPHER_SUITE PROFILE=SISTEM
# Dezactivarea acestui lucru întrerupe GSSAPI folosit cu krb5 când rdns = false
SASL_NOCANON activat
sudoers_base ou=SUDOers,dc=$domeniu,dc=$sufix
SUDOERS_DEBUG 1
EOF
cat << 'EOF' > /etc/openldap/schema/sudo.ldif
dn: cn=sudo,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: sudo
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.1 NAME 'sudoUser' DESC 'Utilizatori care pot rula sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SINTAXA 1.3.6.1.1.1.146.1.1.1.
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.2 NAME 'sudoHost' DESC 'Gazdă(e) care poate rula sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SINTAXA 1.3.6.1.1.1.146.1.1.1.
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.3 NAME 'sudoCommand' DESC 'Comandă(e) care urmează să fie executată(e) de sudo' EQUALITY caseExactIA5Match SINTAXĂ 1.3.6.1.4.1.1466.1) .15.266.1
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.4 NAME 'sudoRunAs' DESC 'Utilizator(i) personificat(i) de sudo (depreciat)' EGALITATE caseExactIA5Match SINTAXA 1.3.6.1.4.1.1.146.1.1.146
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.5 NAME 'sudoOption' DESC 'Opțiuni(e) urmate de sudo' EQUALITY caseExactIA5Match SINTAXA 1.3.6.1.4.1.1466.1.1466.1.15.2.
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.6 NAME 'sudoRunAsUser' DESC 'Utilizator(i) personificat(i) de sudo' EQUALITY caseExactIA5Match SINTAXA 1.3.6.1.4.1.1466.1 .15.266.1
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.7 NAME 'sudoRunAsGroup' DESC 'Grup(uri) uzurpat(e) de sudo' EQUALITY caseExactIA5Match SINTAXA 1.3.6.1.4.1.1.146.1.15.26.
olcObjectClasses: ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP top DESC STRUCTURAL 'Sudoer Entries' TREBUIE ( cn ) MAI ( sudoUser $ sudoHost $ sudoCommand $ sudoRunAs $ sudoRunAs $ sudoRunOptionAs $ sudoRundoR descriere)
EOF
cp /usr/share/doc/sudo/schema.OpenLDAP /etc/openldap/schema/sudo.schema
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/sudo.ldif
ldapadd -Y EXTERN -H ldapi:/// -f add-tls.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
mkdir /var/lib/openldap
chown ldap. /var/lib/openldap
cat > rootdn.ldif << 'EOL'
dn: olcDatabase=mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: mdb
OlcDbMaxSize: 42949672960
olcSuffix: dc=$domeniu,dc=$sufix
olcRootDN: cn=Manager,dc=$domeniu,dc=$sufix
olcRootPW: secret
olcDbDirectory: /var/lib/openldap
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn pres,eq,aprox,sub
olcDbIndex: mail pres,eq,sub
olcDbIndex: objectClass pres,eq
olcDbIndex: loginShell pres,eq
olcDbIndex: sudoUser,sudoHost pres,eq
EOL
ldapadd -Y EXTERN -H ldapi:/// -f rootdn.ldif
cat <<EOF > chdomain.ldif
dn: olcDatabase={1}monitor,cn=config
changetype: modifică
înlocuiți: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
citit de dn.base="cn=Manager,dc=$domain,dc=$sufix" citit de * niciunul
dn: olcDatabase={2}mdb,cn=config
changetype: modifică
înlocuiți: olcSuffix
olcSuffix: dc=$domeniu,dc=$sufix
dn: olcDatabase={2}mdb,cn=config
changetype: modifică
înlocuiți: olcRootDN
olcRootDN: cn=Manager,dc=$domeniu,dc=$sufix
dn: olcDatabase={2}mdb,cn=config
changetype: modifică
adăugați: olcRootPW
olcRootPW: $(slappasswd -s $olcRootPW)
dn: olcDatabase={2}mdb,cn=config
changetype: modifică
adăugați: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=Manager,dc=$domain,dc=$sufix" scrie prin autentificare anonimă prin autoscriere prin * niciunul
olcAccess: {1}la dn.base="" prin * citiți
olcAccess: {2}la * prin dn="cn=Manager,dc=$domain,dc=$suffix" scrie prin * citește
olcAccess: to attrs=userPassword,shadowLastChange,shadowExpire
prin autoscriere
prin autorizare anonimă
de dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" gestionați
de dn.subtree="ou=System,dc=$domain,dc=$sufix" citit
de * niciunul
olcAccess: la dn.subtree="ou=System,dc=$domain,dc=$suffix" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
de * niciunul
olcAccess: to dn.subtree="dc=$domain,dc=$suffix" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
de către utilizatori citite
de * niciunul
EOF
ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
cat <<EOF > bazadomain.ldif
# înlocuiți cu propriul nume de domeniu pentru secțiunea „dc=***,dc=***”.
dn: dc=$domeniu,dc=$sufix
objectClass: top
objectClass: dcObject
objectclass: organizare
o: $domeniu $sufix
dc: $domeniu
dn: cn=Manager,dc=$domeniu,dc=$sufix
objectClass: organizationalRole
cn: Manager
descriere: Director Manager
dn: ou=System,dc=$domeniu,dc=$sufix
objectClass: organizationalUnit
objectClass: top
ou: Sistem
dn: ou=Utilizatori,dc=$domeniu,dc=$sufix
objectClass: organizationalUnit
objectClass: top
ou: Utilizatori
dn: ou=Grupuri,dc=$domeniu,dc=$sufix
objectClass: organizationalUnit
objectClass: top
ou: Grupuri
EOF
ldapadd -x -w $olcRootPW -D cn=Manager,dc=$domeniu,dc=$sufix -f domeniul de bază.ldif
systemctl porni firewalld
systemctl activa firewalld
firewall-cmd --add-service={ldap,ldaps} --permanent
firewall-cmd --reîncărcare
cat <<EOF > sudoersou.ldif
dn: ou=SUDOers,dc=$domeniu,dc=$sufix
objectClass: organizationalUnit
ou: SUDOeri
descriere: $domain-$sufix LDAP SUDO Entry
EOF
ldapadd -x -w $olcRootPW -D cn=Manager,dc=$domeniu,dc=$sufix -f sudoersou.ldif
cat <<EOF > utilizatori_n_grupuri.ldif
dn: cn=readonly,ou=System,dc=$domain,dc=$sufix
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: numai citire
userPassword: $(slappasswd -s $binddnpw)
descriere: Leagă utilizatorul DN pentru operațiuni LDAP
dn: uid=adam,ou=Utilizatori,dc=$domeniu,dc=$sufix
objectClass: top
objectClass: cont
objectClass: posixAccount
objectClass: shadowAccount
cn: adam
uid: adam
Număr uid: 16859
gidNumăr: 100
homeDirectory: /home/adam
loginShell: /bin/bash
gecos: adam
userPassword: $(slappasswd -s $userpw)
shadowLastChange: 0
umbrăMax: 0
umbrăAvertisment: 0
EOF
ldapadd -x -w $olcRootPW -D "cn=Manager,dc=$domeniu,dc=$sufix" -f users_n_groups.ldif
#cvtsudoers -b ou=SUDOers,dc=$domain,dc=$sufix -o sudoers.ldif /etc/sudoers
cat <<EOF > sudoers.ldif
dn: cn=valori implicite,ou=SUDOers,dc=$domeniu,dc=$sufix
objectClass: top
objectClass: sudoRole
cn: implicite
descriere: sudoOption implicită merge aici
sudoOption: !visiblepw
sudoOption: always_set_home
sudoOption: match_group_by_gid
sudoOption: always_query_group_plugin
sudoOption: env_reset
sudoOption: env_keep=COLORES DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS
sudoOption: env_keep+=MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE
sudoOption: env_keep+=LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES
sudoOption: env_keep+=LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE
sudoOption: env_keep+=LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY
sudoOption: secure_path=/sbin:/bin:/usr/sbin:/usr/bin
EOF
ldapadd -x -w $olcRootPW -D cn=Manager,dc=$domeniu,dc=$sufix -f sudoers.ldif
cat <<EOF > indsudoers.ldif
dn: cn=sudo,ou=SUDOers,dc=$domeniu,dc=$sufix
objectClass: top
objectClass: sudoRole
cn: sudo
sudoUtilizator: adam
sudoHost: TOATE
sudoRunAsUser: TOATE
sudoCommand: TOATE
EOF
ldapadd -x -w $olcRootPW -D cn=Manager,dc=$domeniu,dc=$sufix -f indsudoers.ldif
#ldappasswd -s $olcRootPW -w $userpw -D "cn=Manager,dc=$domeniu,dc=$sufix" -x "uid=adam,ou=Utilizatori,dc=$domeniu,dc=$sufix"
#ldappasswd -s $olcRootPW -w $binddnpw -D "cn=Manager,dc=$domeniu,dc=$sufix" -x "cn=doar citire,ou=Sistem,dc=$domeniu,dc=$sufix"
Container SSSD
lxc stop ldap-sssd-try2 --force; lxc șterge ldap-sssd-try2; Imagini de lansare lxc: oracle/8/amd64 ldap-sssd-try2; lxc exec ldap-sssd-try2 passwd; consola lxc ldap-sssd-try2;
lipiți în containerul SSSD
ldaphostname="ldapmaster"
domeniu="exemplu"
suffix="com"
olcRootPW=1234
userpw=1234
binddnpw=1234
mgrpw=1234
DNS1=192.168.3.1
DNS2=192.168.3.2
LDAPMASTERIP=10.175.235.220
SSSDIP=10.175.235.210
NETMASKIP=255.255.255.0
GATEWAYIP=10.175.235.1
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=$SSSDIP
NETMASKIP=$NETMASKIP
GATEWAY=$GATEWAYIP
DNS1=$DNS1
DNS2=$DNS2
ONBOOT=da
HOSTNAME=`cat /proc/sys/kernel/hostname`
TYPE=Ethernet
MTU=
DHCP_HOSTNAME=`cat /proc/sys/kernel/hostname`
IPV6INIT=da
EOF
ifdown eth0
ifup eth0
cat <<EOF > /etc/yum.repos.d/appstream.repo
[aplicație]
nume=Oracle Linux
baseurl=http://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/
activat=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
EOF
cat <<EOF > /etc/yum.repos.d/base.repo
[baza]
nume=Oracle Linux
baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/3/baseos/base/x86_64/
activat=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
proxy=http://www-proxy.web.boeing.com:31060
EOF
cat <<EOF > /etc/yum.repos.d/powertools.repo
[Unelte electrice]
nume=Oracle Linux
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL8/codeready/builder/x86_64/
activat=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
EOF
echo "10.175.235.220 $ldaphostname $ldaphostname.$domain.$sufx" >> /etc/hosts
yum install -y nume gazdă openssh-server nmap openssl sssd sssd-tools oddjob-mkhomedir authselect openldap-clients openldap-server sssd-tools nss-pam-ldapd bind-utils nano mlocate --nobest
systemctl enable --now sshd
cat <<EOF > /etc/sudo-ldap.conf
binddn cn=Manager,dc=$domeniu,dc=$sufix
bindpw 1234
ssl start_tls
tls_cacertfile = /etc/pki/tls/cacert.crt
sudoers_base = ou=SUDOers,DC=$domeniu,DC=$sufix
tls_checkpeer yesuri ldaps://$ldaphostname:636
bind_timelimit 5
limita de timp 15
EOF
cat <<EOF > /etc/sssd/sssd.conf
[sssd]
servicii = nss, pam, sudo
config_file_version = 2
domenii = LDAP
[sudo]
[nss]
[pam]
offline_credentials_expiration = 60
[domeniu/LDAP]
ldap_id_use_start_tls = Adevărat
cache_credentials = Fals
ldap_search_base = dc=$domeniu,dc=$sufix
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
access_provider = ldap
sudo_provider = ldap
ldap_uri = ldaps://$ldaphostname:636
ldap_chpass_uri = ldaps://$ldaphostname:636
#ldap_default_bind_dn = cn=Manager,dc=$domain,dc=$sufix
#ldap_default_authtok = $olcRootPW
ldap_default_bind_dn = cn=readonly,ou=System,dc=$domain,dc=$sufix
#nu pare să conteze dacă folosesc mapldap_default_authtok_type
#mapldap_default_authtok_type = parola
ldap_default_authtok = $binddnpw
ldap_user_search_base = ou=Utilizatori, DC=$domeniu, DC=$sufix
ldap_tls_reqcert = cerere
ldap_tls_cacert = /etc/pki/tls/cacert.crt
ldap_tls_cacertdir = /etc/pki/tls
ldap_search_timeout = 50
ldap_network_timeout = 60
ldap_sudo_search_base = ou=SUDOers,DC=$domeniu,DC=$sufix
ldap_access_order = filtru
ldap_access_filter = (objectClass=posixAccount)
EOF
authselect select sssd --force
chown -R rădăcină: /etc/sssd
chmod 600 -R /etc/sssd
systemctl enable --now sssd
cat <<EOF > /etc/openldap/ldap.conf
#
# Valori implicite LDAP
#
# Vezi ldap.conf(5) pentru detalii
# Acest fișier ar trebui să poată fi citit cu $sufix, dar nu să poată fi scris cu $sufix.
BAZĂ dc=$domeniu,dc=$sufix
URI ldaps://$ldaphostname:636
#SUDOers_BASE sau=SUDOers,dc=ldapmaster,dc=ldapmaster,dc=com
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF niciodată
# Când nu sunt specificate certificate CA, certificatele de sistem partajate
# sunt în uz. Pentru a le avea la dispoziție împreună cu cele specificate
# prin TLS_CACERTDIR trebuie să le includă în mod explicit:
#TLS_CACERT /etc/pki/tls/cert.pem
TLS_CACERT /etc/pki/tls/cacert.crt
# Politicile Crypto la nivel de sistem oferă o suită de criptare actualizată, ceea ce ar trebui
# să fie folosit cu excepția cazului în care aveți nevoie de o selecție mai fină de cifruri. Prin urmare, cel
# PROFILE=Valoarea SYSTEM reprezintă comportamentul implicit care este în vigoare
# când nu este utilizată nicio setare explicită. (vezi openssl-ciphers(1) pentru mai multe informații)
#TLS_CIPHER_SUITE PROFILE=SISTEM
# Dezactivarea acestui lucru întrerupe GSSAPI folosit cu krb5 când rdns = false
SASL_NOCANON activat
sudoers_base ou=SUDOers,dc=$domeniu,dc=$sufix
SUDOERS_DEBUG 1
EOF
openssl s_client -connect $ldaphostname:636 < /dev/null -showcerts | openssl x509 -text | sed -ne '
/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p # am primit intervalul, ok
/-END CERTIFICATE-/q # salvarea imediat ce s-a văzut sfârșitul certificatului
' > /etc/pki/tls/cacert.crt
echo "sudoers: ldap files" >> /etc/nsswitch.conf
systemctl reporniți sssd
systemctl enable --now oddjobd
echo „sesiune opțională pam_oddjob_mkhomedir.so skel=/etc/skel/umask=0022” >> /etc/pam.d/system-auth
systemctl reporniți oddjobd
Dacă întreb folosind ldapsearch
domeniu="exemplu"
suffix="com"
export SUDOERS_BASE=ou=SUDOers,DC=$domeniu,DC=$sufix
ldapsearch -b "$SUDOERS_BASE" -D cn=Manager,DC=$domeniu,DC=$sufix -W -x adam
eu iau
Introduceți parola LDAP:
# LDIF extins
#
# LDAPv3
# de bază <ou=SUDOers,DC=example,DC=com> cu subarborele domeniului
# filtru: (objectclass=*)
# solicitând: adam
#
# SUDOeri, example.com
dn: ou=SUDOers,dc=exemplu,dc=com
# Adam, SUDOers, example.com
dn: cn=adam,ou=SUDOers,dc=exemplu,dc=com
# implicite, SUDOers, example.com
dn: cn=defaults,ou=SUDOers,dc=example,dc=com
# rezultatul căutării
cautare: 2
rezultat: 0 Succes
# numResponses: 4
# numEntries: 3
Dacă fug
domeniu="exemplu"
suffix="com"
export SUDOERS_BASE=ou=SUDOers,DC=$domeniu,DC=$sufix
ldapsearch -b „$SUDOERS_BASE” -D cn=Manager,DC=$domeniu,DC=$sufix -w 1234 -x
eu iau
# LDIF extins
#
# LDAPv3
# de bază <ou=SUDOers,DC=example,DC=com> cu subarborele domeniului
# filtru: (objectclass=*)
# solicită: TOATE
#
# SUDOeri, example.com
dn: ou=SUDOers,dc=exemplu,dc=com
objectClass: organizationalUnit
ou: SUDOeri
descriere: exemplu-com LDAP SUDO Entry
# sudo, SUDOers, example.com
dn: cn=sudo,ou=SUDOers,dc=exemplu,dc=com
objectClass: top
objectClass: sudoRole
cn: sudo
sudoUtilizator: adam
sudoHost: TOATE
sudoRunAsUser: TOATE
sudoCommand: TOATE
# implicite, SUDOers, example.com
dn: cn=defaults,ou=SUDOers,dc=example,dc=com
objectClass: top
objectClass: sudoRole
cn: implicite
descriere: sudoOption implicită merge aici
sudoOption: !visiblepw
sudoOption: always_set_home
sudoOption: match_group_by_gid
sudoOption: always_query_group_plugin
sudoOption: env_reset
sudoOption: env_keep=COLORES DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS
sudoOption: env_keep+=MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE
sudoOption: env_keep+=LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES
sudoOption: env_keep+=LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE
sudoOption: env_keep+=LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY
sudoOption: secure_path=/sbin:/bin:/usr/sbin:/usr/bin
# rezultatul căutării
cautare: 2
rezultat: 0 Succes
# numResponses: 4
# numEntries: 3