未使用 useradd 選擇預設 shell
我安裝了新版本的 Ubuntu 16.04.1 並嘗試通過
root
. 我已將SHELL
行更改/etc/default/useradd
為如下:SHELL=/bin/bash
(它以前讀過
/bin/sh
)執行
useradd -D
提供以下輸出:GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=no
然後我嘗試按如下方式創建使用者:
useradd -m -G sudo -c "David Buckley" david
然而,預設的 shell 仍然是
/bin/sh
. 更具體地說,該/etc/passwd
文件內容如下:david:x:1000:1000:David Buckley:/home/david:
在一個稍微相關的說明中,新使用者不會收到 sudo 訪問權限。它被賦予了 groups
david sudo
,並且/etc/sudoers
文件包含以下行(未註釋):# Allow members of group sudo to execute any command sudo ALL=(ALL:ALL) ALL
我可能做錯了什麼導致這種情況?
奇怪的是,昨天我也在執行 Ubuntu 16.04 LTS 的伺服器上發生了這種情況。
關於為什麼會發生這種情況,我沒有具體的答案,但這裡有一個對我有用的快速解決方案:
不要使用
useradd
,adduser
而是使用!描述
adduser
並addgroup
根據命令行選項和配置資訊將使用者和組添加到系統中/etc/adduser.conf
。 它們是和 程序useradd
等低級工具更友好的前端 ,預設選擇符合 Debian 策略的 UID 和 GID 值,創建具有骨架配置的主目錄,執行自定義腳本和其他功能。groupadd``usermod
至於
sudo
,您必須註銷該使用者 - 然後重新登錄 - 才能使新組設置生效。這是 vs 的一個很好的**連結**。
useradd``adduser
這是 Ubuntu 中的一個已知錯誤
useradd
(由特定於 Ubuntu 的更新檔添加)。它忽略/etc/default/useradd
…中指定的所有設置如maulinglawns 的回答所示,解決方法是
adduser
改用它,這是在 Debian 衍生產品中添加非系統使用者的推薦工具。