
我正在嘗試讓我的 Linux 機器使用活動目錄身份驗證。我相信我幾乎所有設定都正確。我可以分別發出wbinfo -g
和wbinfo -u
查看所有群組和使用者。
簡要介紹我的設定:
我在 Linux 機器上用來進行管理操作的使用者名稱是nick
。我的活動目錄使用者名稱是nwalke
.他們有兩個不同的密碼。我可以使用nick
該使用者的密碼登入該框,也可以使用nwalke
該nwalke
使用者的密碼登入。
好奇的一點是:
建立 Active Directory 使用者的主目錄後,我會執行一個需要 root 存取權限的腳本。這是為他們設定一些系統範圍的東西,例如 samba 共享。當我登入時nwalke
,我輸入nwalke
密碼並成功。然後我就受到了歡迎[sudo] password for nick:
。如果我nwalke
在這裡輸入密碼,它會顯示Sorry, try again.
。如果我輸入nick
密碼,它會說Sorry, user nick is not allowed to execute scriptname as root
。
如果我groups
這樣做nwalke
,我會發現我的用戶神奇地被分配到了該群組nick
。
現在,我無意中認為nick
UID 是 100,而不是 1000。 所以最初在我的中smb.conf
我有idmap uid 1000-10000
.我唯一能想到的就是,當我登入nwalke
時仍然設置,現在我只是看到一個 UID 1000 迫使 linux 認為我是nick
.
我不太確定從這裡該去哪裡。就像我說的,我相當確定活動目錄正在與我的伺服器正確通信,但某些東西一定不能正確地映射到 Linux 端。
有什麼想法嗎?
這是我的smb.conf
:
[global]
security = ads
netbios name = hostname
realm = COMPANY.COM
password server = adshost.company.com
workgroup = COMPANY
idmap uid = 10000-90000
idmap gid = 10000-90000
winbind separator = +
winbind enum users = no
winbind enum groups = no
winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
domain master = no
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
我需要以某種方式綁定到 linux 機器上的使用者嗎?
答案1
聽起來您的 UID 重疊。
如果nwalke
和nick
共享相同的數字 UID,則第一個 nsswitch 匹配將贏得諸如id
、sudo
、ls
等之類的內容(並且第一個匹配通常不在 passwd 文件中,除非您更改了順序/etc/nsswitch.conf
或等效項)。
(登入可以使用任一名稱,因為登入可以按名稱尋找使用者。儘管有兩個同名使用者會導致一些有趣的混亂...)
您的本機(/etc/passwd
、/etc/group
)和遠端(NIS、Samba、LDAP,等等)UID/GID 不應重疊。解決了這個核心問題,剩下的問題就會自行解決。
答案2
我已將 smb.conf 中的值更改為 10,000,但仍然感覺 nwalke 正在與 1000 配對。
我不記得它是什麼文件,而且我目前沒有系統可以檢查。
當使用者第一次連接時,將分配一個 ID,然後它將儲存在 Samba 資料庫之一中,在/var/lib/samba/
該資料夾中查看一下,可能會很明顯它是哪個檔案。您可以嘗試停止 Samba,然後移動/刪除其中的所有文件,但您需要重新加入網域,因為電腦帳戶憑證也儲存在這些資料庫之一中。