当我从命令行创建帐户时,无法使用登录命令登录该帐户

当我从命令行创建帐户时,无法使用登录命令登录该帐户

我想在 macOS 系统上创建一些没有主目录或登录页面上没有图标的帐户

sudo dscl . -create /Users/hiddenuser
sudo dscl . -create /Users/hiddenuser UserShell /bin/bash

问题是当我输入:

login hiddenuser

它只是说login incorrect,然后又说login:我不能Ctrl+C出去。即使我设置了密码,它甚至不让我输入密码。如何创建未显示在登录页面中但可以使用终端登录的隐藏用户?但是,如果我通过系统偏好设置创建用户,则可以通过 登录login,但不会隐藏。如何通过终端创建可登录的隐藏用户?

答案1

看来您必须执行更多步骤,而不仅仅是创建用户并设置其外壳。

如果我像您一样运行以下命令:

sudo dscl . -create /Users/hideuser
sudo dscl . -create /Users/hideuser UserShell /bin/bash

然后检查系统上的用户dscacheutil -q user,我看不到新的hideuser用户帐户,如果我尝试登录,我会得到Login incorrect

您需要通过运行以下命令来定义新用户 UID(用户 ID):

sudo dscl . -create /Users/hideuser UniqueID 1002

“UniqueID”后面的数字(即1002)必须是未分配给其他用户的ID 号。您可以通过检查输出并查看分配给用户的 uid 来找到这一点。

 dscacheutil -q user

然后,您需要为用户分配一个主要组:

sudo dscl . -create /Users/hideuser PrimaryGroupID 1001.

此 PrimaryGroupID 可以与 UID 相同。

正是在这个阶段,用户运行时会出现

dscacheutil -q user

您现在可以设置帐户的密码:

sudo dscl . -passwd /Users/hideuser password

该用户现在可以成功登录:

Bens-iMac:~ macuser$ login hideuser
Password:
Bens-iMac:~ hideuser$ whoami
hideuser

此时,用户可以登录,但不幸的是它会显示在用户列表和登录窗口中,要隐藏该用户,您需要运行以下命令:

sudo dscl . create /Users/hideuser IsHidden 1

不幸的是,这将使登录提示符处显示“其他”选项,要隐藏此选项(注意:如果启用了该选项,这将隐藏来宾用户),您可以运行以下命令:

sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool FALSE

相关内容