goo*_*orp 25 user-accounts passwords osx-snow-leopard login-screen macos
不知何故,我设法在我的操作系统上为我的 _postgres 用户设置了密码,而不是在我作为超级用户/root 的 postgres 角色上设置它。无论如何,从那时起,我一直在努力解决该用户出现在帐户部分和登录屏幕中的问题,我真的很想避免这种情况。我已经阅读了一些关于此的文档,并且将密码设置为*应该是解决此问题所需的全部内容。但是经过几次尝试使用和不使用 dscl 都无济于事后,我已经到了不知道该怎么做的地步。
我不认为这样做会很困难,但显然我遗漏了一些东西,那么你怎么做呢?
Che*_*ion 31
在登录窗口中隐藏系统用户(如果他们的用户 ID < 500)的最简单方法是运行以下命令:
sudo defaults write /Library/Preferences/com.apple.loginwindow Hide500Users -bool TRUE
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过运行手动隐藏用户名
sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add '_postgres'
Run Code Online (Sandbox Code Playgroud)
如果需要,从登录窗口隐藏“其他...”项目:
sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool FALSE
Run Code Online (Sandbox Code Playgroud)
LaC*_*LaC 11
dscl . create /Users/test
dscl . create /Users/test UniqueID 420
dscl . create /Users/test PrimaryGroupID 420
dscl . create /Users/test UserShell /bin/bash
dscl . create /Users/test NFSHomeDirectory /tmp
dscl . create /Users/test RealName Test
dscl . create /Users/test Password test
Run Code Online (Sandbox Code Playgroud)
这将创建一个在 sysprefs/Accounts 中可见的用户。
dscl . create /Users/test Password "*"
Run Code Online (Sandbox Code Playgroud)
这隐藏了用户。确保您引用了“*”,否则它将不起作用。
编辑:我不小心设法通过将用户的密码设置为“*”来重新创建 googletorp 无法隐藏用户的情况,我发现了如何修复它。这一次,我使用 dsimport 创建了一个用户,如下所示:
dsimport /dev/fd/0 /Local/Default I --template StandardUser << EOF
test:*:520:520:Test user:/Users/test:/bin/bash
EOF
Run Code Online (Sandbox Code Playgroud)
但是在该命令中, * 被用来表示 的文字单字符密码*,因此 dsimport 为用户创建了一个 AuthenticationAuthority 属性并将密码属性设置为的影子哈希*(这********在 dscl 中显示,对于所有密码)。之后,尝试使用 dscl 将密码设置为 "*" 只会将密码设置为文字*,而不是禁用密码。解决方法是删除不需要的属性,然后禁用密码:
sudo dscl . delete /Users/test AuthenticationAuthority
sudo dscl . create /Users/test Password "*"
Run Code Online (Sandbox Code Playgroud)
这隐藏了用户。
以防万一您还没有找到可行的解决方案(或者其他人从 Google 找到这个问题),设置用户的 shell 以/usr/bin/false 阻止他登录并将其从登录屏幕和系统首选项中隐藏。为此,请使用以下命令行:
sudo dscl . -change /Users/[username] UserShell /bin/bash /usr/bin/false
Run Code Online (Sandbox Code Playgroud)
并恢复更改:
sudo dscl . -change /Users/[username] UserShell /usr/bin/false /bin/bash
Run Code Online (Sandbox Code Playgroud)
[username]你想隐藏的用户的名字在哪里(_postgres我假设你的情况)。我不知道为什么首先dscl要旧值,但这就是联机帮助页所说的,并且效果很好。
| 归档时间: |
|
| 查看次数: |
30682 次 |
| 最近记录: |