CentOS 7 SSSD AD 및 Samba 공유

CentOS 7 SSSD AD 및 Samba 공유

나는 팔로우한다이 웹사이트의 튜토리얼Windows Server 2008 도메인에 가입하려면 SSSD(WinBind 제외)를 설치하십시오. 그것은 큰 성공이었습니다. 이전에는 Zentyal을 이용하여 공유폴더 설정을 시도했지만 성공하지 못했습니다...Zentyal에서는 항상 오류가 발생했습니다...

GUI를 사용하여 작업을 수행하고 싶었지만 Webmin Samba 및 Zentyal에 실패했을 때 남은 유일한 옵션은 명령을 사용하여 하나씩 설정하고 smb.conf를 수동으로 구현하는 것뿐이었습니다. 다행히 튜토리얼을 통해 문제 없이 도메인에 가입할 수 있었고 Samba 공유를 설정할 수 있었습니다.


smb.conf 입니다

[global]
        workgroup = ADDOMAIN
        server string = Samba Server Version %v
        security = ads
        # encrypt passwords = yes
        # passdb backend = tdbsam
        idmap config * : backend = tdb
        realm = addomain.tld
        access based share enum = yes

        # this is just a member server
        domain master = no
        local master = no
        preferred master = no

        # in my test network I could not get AD authentication for smb shares to work
        # without adding "kerberos method = secrets and keytab"
        kerberos method = secrets and keytab

        # Add the IPs / network ranges / subnets allowed acces to the server in general.
        # this is not a nesessary entry but in general a good idea.
        # hosts allow = 127. your local network info

        # log files split per-machine:
        log file = /var/log/samba/log.%m

        # enable the following line to debug:
        # log level = 3
        # maximum size of 50KB per log file, then rotate:
        max log size = 50

        # Not interested in printers
        load printers = no
        cups options = raw

        # This stops an annoying message from appearing in logs
        printcap name = /dev/null

        # File Shares under valid users I put a group if you create a group for samba in # active directory and add users to it those users will be able to access smb
        # shares from this server over the network.

[guest]
        comment = guest
        path = /home/samba/guest
        public = yes
        readonly = no
        writable = yes
        guest ok = yes

[admin]
        comment = admin
        path = /home/samba/admin
        public = no
        readonly = no
        writable = yes
        guest ok = no
        valid users = @"[email protected]"

ADDOMAIN\admintest 사용자가 있습니다(또는[이메일 보호됨]) Windows PC에 로그인하여 "Admin" 공유 폴더에 접근을 시도했으나 접근 권한이 부여되지 않았습니다. 로그에 "NT_STATUS_ACCESS_DENIED"가 표시됩니다. 하지만 계정이 그룹에 있다고 확신합니다.

AD 및 사용자 정보가 CentOS 7과 동기화되었는지 확인하기 위해 유효 사용자를 에서 으로 변경했습니다. 사용자는 공유 폴더에 액세스할 수 있습니다.@"[email protected]""[email protected]"

그런 다음 내가 해결하려고 한 문제는 id명령을 사용하는 것이 었습니다. 완전한 이름을 사용할 필요가 없도록 sssd.conf를 수정했습니다. 그래서...

# id admintest

  uid=821800500(admintest) gid=821800513(domain users) groups=821800513(domain users)

정말 이상해요. 예, 이 계정은 도메인 사용자에 속하지만 "admingp"를 포함하여 이 계정이 속한 다른 그룹이 여전히 있습니다.

그런 다음 "getent" 명령을 사용하여 그룹 구성원을 표시합니다.

# getent group admingp
  admingp:*:821808307:administrator,admintest,ben, ... (etc)

그게 다입니다. admintest가 그룹에 있습니다. Domain Users 그룹에도 속해 있었기 때문에 smb.conf를 다시 수정해 보았는데 유효 사용자가 다음과 같이 변경되었습니다. 공유 폴더에 접근할 수 있습니다.@"domain [email protected]"

그래서 smb.conf도 괜찮고 AD 인증도 괜찮다는 결론을 내릴 수 있습니다. 그러나 알다시피 id admintest첫 번째로 일치하는 그룹만 표시됩니다. 다른 것들은 건너뛰어서 그룹 권한으로 공유 폴더를 설정할 수 없습니다. 그리고 거기에는 수십 개의 그룹과 수십 개의 공유 폴더가 있는데 단순히 하나씩 구현할 수는 없습니다.

드디어 명령어를 테스트해봤습니다 id. Linux 계정 "support"는 2개 그룹에 속합니다. 하나는 "지지대" 자체이고, 다른 하나는 "바퀴"입니다.

# id support
  uid=1000(support) gid=1000(support) groups=1000(support),10(wheel)

Linux 사용자는 영향을 받지 않습니다. 그럼... 뭐가 잘못됐나요? 여기에 sssd.conf를 첨부했습니다. 이것을 봐주세요.

[sssd]
domains = addomain.tld
config_file_version = 2
services = nss, pam

[domain/addomain.tld]
ad_domain = addomain.tld
krb5_realm = ADDOMAIN.TLD
realmd_tags = manages-system joined-with-samba
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

use_fully_qualified_names = False
fallback_homedir = /home/%u

enumerate = True
access_provider = simple
# access_provider = ldap

매우 감사합니다.

관련 정보