나는 팔로우한다이 웹사이트의 튜토리얼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
매우 감사합니다.