鏡像下載、域名決議、時間同步請點擊 阿里云開源鏡像站
背景:
Centos7上需要創建一個用戶leojiang,而用戶時間不純在系統上,但是還是報錯說用戶已經存在,
1、假設您正在嘗試添加一個名為“leojiang”的用戶并且您收到以下錯誤,
[root@leo]# useradd -m -d /home/addmunx -s /bin/sh leojiang
useradd: user 'leojiang' already exists
2、調查,先查看系統上是否存在這個用戶leojiang
[root@leo]# cat /etc/passwd |grep leojiang
[root@leo]#
-
/etc/shadow 檔案,用于存盤 Linux 系統中用戶的密碼資訊,又稱為“影子檔案”,
-
/etc/shadow 檔案只有 root 用戶擁有讀權限,其他用戶沒有任何權限,這樣就保證了用戶密碼的安全性,
并沒有回傳結果,代表這個用戶并不在密碼檔案中
3、運行getent命令從名稱服務切換庫(Name Service Switch)中獲取
- getent命令可以用來察看系統的資料庫中的相關記錄
[root@leo]# getent passwd leojiang
leojiang:*:1136335162:1782600513:ADDM account to scan Unix server:/home/leojiang:/bin/bash
可以看到此用戶已經存在名稱服務(Name Service Switch)庫的某個地方,是否注意到輸出的第二列中有一些不尋常的地方?用 * 代替 x 清楚地表明用戶的密碼沒有存盤在 /etc/shadow 檔案中,
4、來讓我們找到它,深入研究名稱服務切換庫組態檔,
先了解什么是sssd:
- sssd是一款用以取代ldap和AD的軟體,ldap客戶端部署sssd,是用來啟用ldap認證,
- /etc/nsswitch.conf 來告訴name service switch需要查找那些地方來給登錄的用戶服務,
- files sss 表示先查找/etc/passwd, /etc/group等檔案,沒有的話再查找sss模塊,
[root@leo]# cat /etc/nsswitch.conf | grep passwd
#passwd: db files nisplus nis
passwd: files sss
通過上面提到的 sss ,NSS 庫被指示在 LDAP 中搜索用戶(sss被配置為 LDAP 客戶端),現在很清楚,LDAP 中存在用戶leojiang,這就是您無法在系統中創建相同用戶的原因,
5、解決方案
現在我們找到了問題的根本原因,現在您可以執行以下操作之一來解決問題:
5.1. 從 ldap 服務器中洗掉用戶,
5.2. 從 /etc/nsswitch.conf 檔案中洗掉 ldap 參考,以便 NSS 庫不會在 ldap 服務器中查找用戶,
5.3. 將用戶原樣保留在 ldap 中,但在系統中創建相同的用戶!讓我解釋一下我們是如何做的,
5.4. 關閉sssd ladp客戶端服務,之后便可創建用戶,創建完成后再啟動sssd即可
5.5、使用方法
在某些情況下,即使 ldap 中存在相同的用戶名,您仍然需要創建系統用戶,是的,我們可以使用 luseradd 命令來完成,
[root@leo]# yum install libuser
[root@leo]# luseradd -m -d /home/addmunx -s /bin/sh leojiang
注意:CentOS/Redhat 默認安裝了這個命令,如果找不到,請嘗試使用上述命令安裝它,
5.6、使用方法
[root@leo]# systemctl status sssd && systemctl stop sssd
# 停止sssd服務后再創建用戶即可
[root@leo]# luseradd -m -d /home/addmunx -s /bin/sh leojiang
# 創建完成后再啟動sssd服務
[root@leo]# systemctl start sssd
本文轉自:https://blog.csdn.net/jiangbenchu/article/details/123751909
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/463428.html
標籤:Linux
