欢迎各位兄弟 发布技术文章
这里的技术是共享的
下面几步操作能彻底把用户由管理员变成普通用户
sudo dscl . -merge /Groups/admin GroupMembership bbbb-admin
sudo dscl . -delete /Groups/admin GroupMembership bbbb-admin
dscacheutil -flushcache
id -Gn bbbb-admin
if [ $? -ne 0 ];then
(/usr/bin/osascript -e "display dialog \"成功把 $userName 修改为普通用户,请重启电脑(或退出登录再登录)!\" buttons {\"OK\"} default button \"OK\"")
else
sudo dseditgroup -o edit -d bbbb-admin -t user admin # dseditgroup 再次从admin组中删除
(/usr/bin/osascript -e "display dialog \"成功把 $userName 修改为普通用户,请重启电脑(或退出登录再登录)!\" buttons {\"OK\"} default button \"OK\"")
fi
下面几步操作能彻底把用户由普通用户变成管理员
sudo dscl . -merge /Groups/admin GroupMembership bbbb-admin
dscacheutil -flushcache
id -Gn bbbb-admin
if [ $? -eq 0 ];then
(/usr/bin/osascript -e "display dialog \"成功把 $userName 修改为普通用户,请重启电脑(或退出登录再登录)!\" buttons {\"OK\"} default button \"OK\"")
else
sudo dseditgroup -o edit -m bbbb-admin -t user admin # dseditgroup 再次从admin组中merge
(/usr/bin/osascript -e "display dialog \"成功把 $userName 修改为普通用户,请重启电脑(或退出登录再登录)!\" buttons {\"OK\"} default button \"OK\"")
fi
如果您在使用命令
sudo dscl . -delete /Groups/admin GroupMembership bbbb-admin
删除用户时遇到 eDSAttributeNotFound DS Error: -14134
的错误,这意味着您尝试修改的属性(GroupMembership
)在该记录中不存在。以下是解决此问题的一些步骤:
检查当前组成员: 首先,确认用户 bbbb-admin
是否确实是 admin
组的成员。您可以使用以下命令显示 admin 组的当前成员:
sudo dscl . -read /Groups/admin GroupMembership
验证用户存在性: 确保用户 bbbb-admin
存在,可以通过下面的命令查看用户列表:
sudo dscl . -list /Users
读取组信息: 如果组存在但仍然无法进行修改,请尝试读取 admin 组的具体属性,以验证其结构:
sudo dscl . -read /Groups/admin
修改命令: 如果 admin
组确实存在,但您仍然有问题删除用户,可以尝试以下命令:
sudo dscl . -append /Groups/admin GroupMembership bbbb-admin
然后再尝试删除:
sudo dscl . -delete /Groups/admin GroupMembership bbbb-admin
检查重复项: 如果 luxshare-ict
在 GroupMembership
列表中出现多次,您可能需要逐个处理这些实例。
检查其他属性: 确保没有其他属性(例如 __group__
)可能会干扰您修改 GroupMembership
的能力。
使用系统偏好设置: 如果命令行无法正常工作,您也可以尝试通过系统偏好设置中的“用户与群组”来移除用户(如果您有权限)。
如果在尝试这些步骤后仍然无法删除用户,建议检查系统日志以获取其他错误信息,或者使用目录服务工具(如目录实用工具)手动进行更改。
好的!你遇到的错误信息 eDSAttributeNotFound DS Error: -14134 指示你在使用 dscl 命令时发生了问题,具体来说是你尝试删除的用户 bbbb-admin 并不存在于指定的组(admin)中。
检查当前组成员:在删除成员之前,先查看组内当前有哪些成员。可以使用以下命令:
这个命令会列出 admin 组的所有当前成员。请查看输出中是否包含 bbbb-admin。
确认组存在:确保你要修改的组确实存在。可以用下面的命令列出所有组:
确保 admin 被列为其中的一组。
检查拼写或大小写问题:确保组名和用户名没有拼写错误,注意这些名称可能是区分大小写的。
如果确认 bbbb-admin 是 admin 组的成员,但仍然出现该错误,可以尝试以下方法:
使用 -append 命令:可以尝试先添加用户到 admin 组,然后再删除:
这通常能解决问题。
如果确认 bbbb-admin 并不存在,你需要先创建这个用户才能管理其组成员资格:
请将 "Password1234" 替换为你选择的安全密码。
确保 bbbb-admin 是一个有效的用户,并且确实是 admin 组的成员,之后再尝试删除。按照上述步骤,你应该能够诊断问题并有效地管理 macOS 的组成员资格。如果问题持续存在,可以考虑查看系统日志以获取更多的诊断信息。
如果 bbbb-admin 是第一个用户,,那么 会报 eDSAttributeNotFound DS Error: -14134 错误吗
如果 bbbb-admin 是系统上创建的第一个用户,尤其是在 macOS 系统上,这个用户通常会拥有管理员权限,并且会被自动加入 admin 组。以下是一些相关的细节:
第一个用户的特殊属性:在 macOS 中,第一个用户通常是系统的创建者,在创建过程中,该用户会被设置为管理员并自动加入 admin 组。不论是用图形用户界面创建还是通过命令行,第一位用户的 UniqueID 会是在前面的一组大数字(通常为 501,取决于具体情况)。
用户不能删除自己:如果你尝试删除自己(或第一个用户),系统会阻止这样的操作。在这种情况下,尝试删除 bbbb-admin 可能导致报错,如 eDSAttributeNotFound DS Error: -14134。
如果用户命名不对:如果当前尝试删除的用户名称与实际存在的用户名称不匹配(即命名错误,或大小写不正确),也会导致这样的问题。
用户确实不存在:确认你没有错过拼写或大小写的错误,确保你输入的是正确的用户名称。
没有足够的权限:虽然你使用了 sudo,但如果你操作的用户尚未完全登录或权限不足,也可能导致某些命令无效。
删除尝试:如前所述,macOS 不允许删除或修改系统的第一个用户,这可能是该错误的主要原因之一。
为了确定 bbbb-admin 作为第一个用户是否存在于 admin 组中,可以使用以下步骤:
列出当前的组成员:
查看是否包含 bbbb-admin。
确认用户存在:
使用下面的命令查看用户信息及其 ID:
如果输出中没有信息,说明 bbbb-admin 用户并不存在。
如果 bbbb-admin 是第一个用户,尝试删除自己会导致错误,也可能是其他问题(如名称不匹配)导致 eDSAttributeNotFound DS Error: -14134 错误。确认该用户确实存在并且命令格式正确,另外,系统不允许删除第一用户的特权。如果你有其他的需求或者想要更改用户的组成员资格,也许可以考虑创建一个新的用户并进行相应的权限管理。
sudo dscl . -append /Groups/admin GroupMembership luxshare-ict sudo dscl . -delete /Groups/admin GroupMembership luxshare-ict dscacheutil -flushcache id -Gn luxshare-ict 仍然会看到 admin
您执行的操作看起来是正确的,但是 luxshare-ict
仍然显示为 admin
组的成员,这可能是因为缓存或其他系统设置的原因。这里有几个步骤可以帮助您解决这个问题:
重新启动系统: 有时候,重启系统可以清除所有缓存并使更改生效。
sh深色版本sudo shutdown -r now
检查 Directory Services
缓存:
使用 dscacheutil
检查和刷新缓存:
sh深色版本dscacheutil -q group -a name admin dscacheutil -flushcache
使用 pwpolicy
和 dseditgroup
:
有时候 dscl
可能不够强大,可以尝试使用 dseditgroup
:
sh深色版本sudo dseditgroup -o edit -d luxshare-ict -t user admin
检查其他配置文件:
有时候,用户组的成员关系可能被记录在其他配置文件中,例如 /etc/group
或 /etc/sudoers
。检查这些文件以确保没有其他地方定义了 luxshare-ict
为 admin
组的成员:
sh深色版本cat /etc/group | grep admin cat /etc/sudoers | grep luxshare-ict
验证用户组成员关系:
再次验证用户组成员关系,确保 luxshare-ict
不再是 admin
组的成员:
sh深色版本id -Gn luxshare-ict
检查 Open Directory
设置:
如果您使用的是 macOS 并且启用了 Open Directory,可能需要在 Open Directory 中进行相应的更改:
sh深色版本sudo odutil flush cache
使用 security
工具:
有时候 security
工具也可以帮助解决问题:
sh深色版本sudo security flushgroupcache
如果以上步骤仍然不能解决问题,建议检查系统日志以获取更多信息:
sh深色版本sudo tail -f /var/log/system.log
通过这些步骤,您应该能够找到并解决 luxshare-ict
仍然显示为 admin
组成员的问题。如果问题依然存在,建议联系系统管理员或技术支持以获得进一步的帮助。