인용하다

인용하다

너무 길어요.

사용자가 로컬인지 도메인인지(어떤 도메인인지는 상관없음) 쉽고 빠르게 확인하고 싶습니다.

환경

  • freeipa-클라이언트-4.6.1-3.fc27.x86_64
  • sssd-1.16.0-4.fc27.x86_64

전체 이야기

사용자가 로컬인지, sssd인지, ssh를 사용할 수 있는지, sssd에서 허용하는지 표시하는 userinfo.sh 스크립트를 작성 중입니다.

현재 나는 사용자가 도메인 출신인지 확인하기 위해 명령을 사용하고 있습니다 getent passwd -s sss $USERNAME. 하지만 문제가 발생했습니다. sssd 데이터베이스를 확인하면 로컬 사용자가 반환됩니다!

# getent passwd -s sss 'bgstack15-local'
bgstack15-local:x:1000:1000:bgstack15-local:/home/bgstack15-local:/bin/bash

sss의 데이터베이스(캐시) 내용을 조사해 보면 sssd가 로컬 사용자에 대한 다양한 정보를 캐시하는 것으로 보입니다.

# sudo su root -c 'strings /var/lib/sss/db/* | grep bgstack15-local' | sort | uniq
name=bgstack15-local@implicit_files,cn=groups,cn=ih
name=bgstack15-local@implicit_files,cn=groups,cn=implicit_files,cn=sysdb
name=bgstack15-local@implicit_files,cn=users,cn=implicit_files,cn=sysdb
[...output truncated]

사용자에 대해서만 SSD 캐시 전체를 삭제해 보았습니다. 둘 사이에는 차이가 없습니다.

# sss_cache -U
# sss_cache -u bgstack15-local

사용자는 로컬 사용자로 표시되며 이는 로컬 사용자일 뿐임을 보장합니다!

getent passwd -s files 'bgstack15-local'
bgstack15-local:x:1000:1000:bgstack15-local:/home/bgstack15-local:/bin/bash

매뉴얼 페이지가져오기(1)그리고검증 받기(3)무슨 일이 일어날지 이해하도록 도와주지 마세요.솔리드 스테이트 드라이브(8)sssd가 로컬 사용자를 캐시할 수 있다는 것을 보여주었는데, 이는 실제로 제가 원하는 것과 반대되는 것입니다! nss 부분sssd.conf(5)도움이 되지는 않지만 읽는데 충분한 시간을 투자하지 않았을 수도 있습니다. 나는 조금 붙어 있습니다.

myssd.conf

[domain/ipa.example.com]
id_provider = ipa
ipa_server = _srv_, dns1.ipa.example.com
ipa_domain = ipa.example.com
ipa_hostname = fc27c-01a.ipa.example.com
auth_provider = ipa
chpass_provider = ipa
access_provider = ipa
cache_credentials = True
ldap_tls_cacert = /etc/ipa/ca.crt
krb5_store_password_if_offline = True
[sssd]
services = nss, pam, ssh, sudo
domains = ipa.example.com
[nss]
homedir_substring = /home
[pam]
[sudo]
[autofs]
[ssh]
[pac]
[ifp]
[secrets]
[session_recording]

최후의 조치

${USERNAME}@${DOMAIN}진행 하면서 확인할 수도 있지만 -s sss이는 sssd.conf의 모든 필드를 반복해야 하므로 프로세스 속도가 느려집니다.

답변1

이 동작을 제어하는 ​​옵션은 CentOS 7 및 Fedora의 sssd.conf(5)에 숨겨져 있지만 온라인 매뉴얼 페이지에는 숨겨져 있습니다.

SSD 구성 파일

[sssd]
enable_files_domain = false

참조 3은 sssd가 "로컬 사용자를 위한 빠른 캐시"를 제공한다는 것을 보여줍니다.

내 Fedora 시스템의 man sssd.conf(5)에서:

   enable_files_domain (boolean)
       When this option is enabled, SSSD prepends an implicit domain with
       “id_provider=files” before any explicitly configured domains.

       Default: true

이 동작을 비활성화하면 로컬 사용자인지 도메인 사용자인지 간단히 확인할 수 있습니다.

인용하다

  1. DDG:sssd 로컬 사용자 캐싱 비활성화
  2. https://bugzilla.redhat.com/show_bug.cgi?id=1357418
  3. https://fedoraproject.org/wiki/Changes/SSSDCacheForLocalUsers
  4. 페도라 27 sssd.conf(5)
  5. https://bgstack15.wordpress.com/2018/02/23/getent-passwd-s-sss-localuser-shows-local-user/

관련 정보