2017年5月4日 星期四

CentOS 7 & Samba(File Server) 使用 SSSD 加入 Active Directory

一、CentOS 7 加入網域:
1.安裝相關套件:
yum install -y krb5-workstation realmd sssd samba-common adcli oddjob oddjob-mkhomedir samba samba-common-tools

2.查詢 AD 相關資訊及所需套件都已安裝:
realm discover tw.example
或者
realm list

3.Samba 加入 AD 網域
realm join tw.example --user administrator

Samba 退出 AD 網域
realm leave tw.example --user administrator

4.加入網域後,AD 上的帳號都可登入主機,若要限制可登入的使用者:
realm permit --all    #允許任何 AD 帳號登入
realm deny --all    #拒絕任何 AD 帳號登入
realm permit user@example.com    #允許使用UPN格式的 user 帳號登入
realm permit DOMAIN\\User2    #允許使用SAM格式的 user2 帳號登入
realm permit --withdraw user@example.com     #從主機刪除可登入的帳號
realm permit -g mis   #mis 群組可登入主機

5.查詢網域內使用者帳號資訊:
id tw\\hansen

6.修改 sssd.conf 帳號資訊服務:
[sssd]
domains = tw.example
config_file_version = 2
services = nss, pam

[domain/tw.example]
ad_domain = tw.example
krb5_realm = TW.EXAMPLE
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 = False    #登入時,不需輸入網域
fallback_homedir = /home/%d/%u    #登入後所自動建立的 home 目錄不會加上@DomainName
enumerate = True    #使用 getent 指令時,從LDAP查詢帳號資訊
access_provider = ad

7.重啟 sss 服務:
systemctl restart sssd.service

8.列出帳號資訊:
列出使用者:
getent passwd

列出群組:
getent group

二、Samba 加入網域:
1.修改 smb.conf:
[global]
        workgroup = TW
        realm = TW.EXAMPLE
        server string = Samba Server Version %v
        security = ADS
        kerberos method = secrets and keytab
        log file = /var/log/samba/log.%m
        max log size = 50
        idmap config * : backend = tdb
        cups options = raw

[homes]
        comment = Home Directories
        read only = No
        browseable = No
        root preexec = /opt/create-home.sh %S %H   #自動建立使用者 HOME 目錄 script

[MIS]
        comment = 資訊部
        path = /home/mis
        public = yes
       ;writable = yes
        valid users = @"資訊部門"
        write list = @"資訊部門"


2.自動建立使用者 HOME 目錄 script:
vi /opt/create-home.sh

#!/bin/bash
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

user=$1
group="domain users"
home=$2

if [ "$user" == "" ] || [ "$home" == "" ]; then
    exit 1
fi

if [ ! -d $home ]; then
    mkdir -m 700 -p $home 2>> /tmp/smb_err.log
    chown -Rf "$user:$group" $home 2>> /tmp/smb_err.log
fi

3.授予執行的權限:
chmod 700 /opt/create-home.sh

4.變更 MIS 目錄權值:
mkdir /home/mis
chown root:"資訊部門" -R /home/mis
chmod 775 -R /home/mis

5.重啟相關服務
systemctl restart sssd.service smb.service nmb.service
systemctl enable sssd.service smb.service nmb.service

6.測試使用者可不輸入密碼登入目錄

7.查看使用者使用情況:
smbstatus


2 則留言:

  1. XP 好像一直出發要打帳號密碼視窗,就是進不了,是XP的關係嗎?

    回覆刪除
  2. 這篇是文章是針對CentOS加入現有的Windows ad網域,不知你的 xp 是什麼情況��

    回覆刪除

OCS Inventory 匯出資料到 Google 試算表(依電腦設備類型)

OCS Inventory 匯出到 Google 試算表的程式是從網路上其他高手分享出來( 參考資料出處 ),並依個人需求調整。 如要取用請注意,因程式是用 python 寫的,程式段落可能會移位導致無法正常運作。 下列程式調整SELECT電腦 設備類型 為Noteboo...