ฉันกำลังพยายามมีเซิร์ฟเวอร์ Linux (Red Hat Enterprise 7.6) เพื่อตรวจสอบผู้ใช้ตาม Microsoft Active Directory แนวคิดนี้จะช่วยให้ผู้ใช้เชื่อมต่อผ่าน SSH เพื่ออัปโหลดเอกสารไปยังเว็บไซต์ส่วนตัวของพวกเขาโดยไม่ต้องให้พวกเขาเข้าถึงเชลล์
เพื่อตัดเรื่องสั้นเราเป็นโรงเรียนและเราต้องการให้การเข้าถึงโฟลเดอร์เฉพาะส่วนบุคคลแก่นักเรียนของเรา
ฉันพยายามใช้ SSSD ซึ่งฟังดูมีแนวโน้ม ฉันสามารถเข้าร่วมโดเมนและเมื่อฉันเพิ่มระดับการบันทึกฉันเห็นผู้ใช้ถูกแคชบนเซิร์ฟเวอร์ linux ของฉัน ฉันทำตามเอกสาร Red Hat อย่างพิถีพิถันและโพสต์ส่วนใหญ่พูดถึงการใช้งาน SSSD แต่ฉันอาจจะพลาดบางสิ่ง ฉันต้องการที่จะดำเนินการอย่างค่อยเป็นค่อยไปและก่อนที่จะมีส่วนร่วมกับ SSH ฉันต้องการพยายามพิสูจน์ตัวตนผู้ใช้ในคอนโซล (ไม่ใช่ผ่าน SSH) ก่อน ผู้ใช้ไม่ได้กำหนดค่าเป็นผู้ใช้ภายใน มันถูกกำหนดไว้ใน Active Directory เท่านั้น
แต่มันล้มเหลวด้วยข้อความต่อไปนี้ใน / var / log / secure:
Dec 10 09:42:05 svx-pub-01 login: pam_unix(login:auth): check pass; user unknown
Dec 10 09:42:05 svx-pub-01 login: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=
Dec 10 09:42:07 svx-pub-01 login: FAILED LOGIN 1 FROM tty1 FOR (unknown), User not known to the underlying authentication module
เท่าที่ฉันเข้าใจ sssd ไม่มีส่วนเกี่ยวข้องในการพิสูจน์ตัวตนที่นี่และฉันอยากจะเข้าใจว่าทำไม
ฉันรู้ว่าเป้าหมายในอนาคตของฉันคือการรับรองความถูกต้องของผู้ใช้ผ่าน SSH แต่ก่อนอื่นฉันต้องการทำการทดสอบในท้องถิ่นที่ง่ายมาก ... ดังนั้นฉันจึงได้กำหนดเชลล์เริ่มต้นในไฟล์ sssd.conf ค่าเดียวที่ฉันได้แก้ไขเพื่อความลับของ id "mydomain.com" ซึ่งไม่ใช่มูลค่าที่แท้จริง :)
[sssd]
domains = mydomain.com
config_file_version = 2
services = nss, pam
debug_level = 7
[domain/mydomain.com]
ad_server = svw-dc-00.mydomain.com
ad_domain = mydomain.com
krb5_realm = mydomain.com
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad
debug_level = 7
[pam]
debug_level = 7
[ssh]
นี่คือ /etc/krb5.conf
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
includedir /var/lib/sss/pubconf/krb5.include.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
default_realm = MYDOMAIN.COM
[realms]
MYDOMAIN.COM = {
}
[domain_realm]
mydomain.com = MYDOMAIN.COM
.mydomain.com = MYDOMAIN.COM
นี่คือ /etc/nsswitch.conf
passwd: files sss
shadow: files sss
group: files sss
initgroups: files sss
#hosts: db files nisplus nis dns
hosts: files dns myhostname
# Example - obey only what nisplus tells us...
#services: nisplus [NOTFOUND=return] files
#networks: nisplus [NOTFOUND=return] files
#protocols: nisplus [NOTFOUND=return] files
#rpc: nisplus [NOTFOUND=return] files
#ethers: nisplus [NOTFOUND=return] files
#netmasks: nisplus [NOTFOUND=return] files
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files sss
netgroup: files sss
publickey: nisplus
automount: files sss
aliases: files nisplus
และ /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth required pam_faildelay.so delay=2000000
auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 1000 quiet
auth [default=1 ignore=ignore success=ok] pam_localuser.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_sss.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session optional pam_oddjob_mkhomedir.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session optional pam_sss.so
session required pam_unix.so
ขอบคุณล่วงหน้าสำหรับข้อมูลสำคัญของคุณ
id <name>
จะให้id: <name>: no such user
และคำสั่งจะgetent passwd <name>
ไม่เรียกคืนสิ่งใดแม้แต่ข้อความ
realm join -U <user> ads.mydomain.com
จะมีข้อความระบุว่าrealm: Already joined to this domain
getent -s sss passwd <user>@mydomain.com
ฉันได้รับคำตอบประเภทที่ชอบ: <user>@mydomain.com:*:153324743:153200513:Lastname Firstname:/home/<user>@mydomain.com:/bin/bash
เป็นไปได้อย่างไรที่จะกำจัด "@" เมื่อฉันเข้าสู่ระบบเพราะมันทำให้การเข้าสู่ระบบคอนโซลเป็นไปไม่ได้
id <name>
,getent passwd <name>
,getent -s sss passwd <name>
)? UID ของผู้ใช้คืออะไร