Ubuntu

Ubuntu samba 恢復 idmap 數據庫

  • January 23, 2020

所以我遇到了一場災難,必須在周一早上啟動並執行伺服器:D 我的 ubuntu 伺服器設置與 samba / winbind 並加入到活動目錄域控制器中保存了許多部門的共享文件夾,這些文件夾具有基於 AD 使用者的特定訪問權限..我的主伺服器發瘋了,一切都停止了。經過一些故障排除後,我決定不浪費時間並使用完全相同的配置創建一個新的,一切順利,我將舊磁碟安裝在新 VM 上,並且我能夠訪問共享但是 .. 訪問權限是搞砸了,自然會為不同的使用者分配新的 UID。所以我做了一些探勘,我從舊伺服器複製了舊的 winbindd_idmap.tdb 並將其恢復到新伺服器上。它沒有用,所以我將整個 /var/lib/samba 複製到新的,但它沒有用。我事件複製了 /etc/passwd 和 /etc/shadow 和組,但我知道這沒有必要,因為它們沒有任何映射。不用說它沒有用。任何人都知道如何創造奇蹟並在新伺服器上獲取舊使用者映射,以便正確反映訪問權限?

非常感謝

這是我的 smb.conf:

[global]

# No .tld
workgroup = UFA
# Active Directory System
security = ads
# With .tld
realm = UFA.LOCAL
# Just a member server
domain master = no
local master = no
preferred master = no
# Disable printing error log messages when CUPS is not installed.
printcap name = /etc/printcap
load printers = no
# Works both in samba 3.2 and 3.6.        
idmap backend = tdb
idmap uid = 10000-99999
idmap gid = 10000-99999
# no .tld
idmap config UFA:backend = rid
idmap config UFA:range = 10000-99999
winbind enum users = yes
winbind enum groups = yes
# This way users log in with username instead of username@example.org
winbind use default domain = yes
# Inherit groups in groups
winbind nested groups = yes
winbind refresh tickets = yes
winbind offline logon = true
# Becomes /home/example/username
template homedir = /home/%D/%U
# No shell access
template shell = /bin/false
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
restrict anonymous = 2
log file = /var/log/samba/samba.log
log level = 2

[Share]

comment = Share
path = /share/
valid users = @UFA\"Domain Users"
force group = "domain users"
writable = yes
read only = no
force create mode = 0660
create mask = 0777
directory mask = 0777
force directory mode = 0770
access based share enum = yes
hide unreadable = yes

1-第一個解決方案,所以我發現了問題,原來伺服器在 1 天后突然跳轉(日期提前 1 天)通常所有服務都搞砸了,我重新啟動伺服器和時間已更正,但此時服務仍然一團糟。我還必須刪除所有使用錯誤日期創建的日誌文件並重新啟動 winbind、nmbd 和 smbd 以糾正問題。

2-繞過使用者從一個Linux到另一個Linux混亂的問題的第二種解決方案你所要做的就是從WINDOWS的角度而不是從linux itel的角度備份和恢復訪問權限。這樣,windows 就會讀取正確的 SID 並正確移動它們。一種方法是使新舊伺服器都聯機,並從 Windows 域控制器訪問共享,並利用 i​​cacls 從舊伺服器備份並恢復到新伺服器。

引用自:https://serverfault.com/questions/971529