如何使用命令行在 Mac OS X Server 上设置用户的主目录?
答案1
正如您询问的,如何从命令行执行此操作,我认为您可以为 Mac OS X 服务器打开 SSH 会话,或者可以直接从服务器打开终端窗口。
如果是这种情况,则执行以下命令:sudo dscl . -change /Users/<username> NFSHomeDirectory <old-path> <new-path>
;将<username>
、<old-path>
和<new-path>
分别替换为用户名、旧主目录和新主目录。该命令-change
需要更改的密钥的旧值;如果您不知道旧值,那么您将无法执行任何操作。
如果您没有使用任何 SSH 会话,或者您无法在 Mac OS X 中打开终端窗口,但仍可以从另一台 Mac 访问服务器,则命令会有所不同。后面的点sudo dscl
表示数据源,在 (dscl(1) Mac OS X 手册页) 如下:
dscl 对命令行上指定的数据源进行操作。这可能是节点名称或由 DNS 主机名或 IP 地址指定的 Mac OS X Server(10.2 或更高版本)主机。节点名称可能是以斜杠(“/”)开头的绝对路径,或以点(“.”)字符开头的相对域路径,用于指定本地域,或以“..”开头,用于指定本地域的父域。如果使用主机名或 IP 地址形式,则用户必须指定 -u 选项和 -P 或 -p 选项之一,以指定远程主机上的管理用户和密码,以便向远程主机进行身份验证。例外情况是如果指定了“localhost”。在命令行上传递密码本质上是不安全的,可能会导致密码泄露。为了获得更好的安全性,请不要在命令中提供密码,您将得到安全提示。
参考
- 每台 Mac 上安装的手册页 (
man dscl
) - 在线dscl(1) Mac OS X 手册页。
答案2
警告:请先在不重要的帐户或机器上试验此功能;我尚未测试过。
这是可以做到的。就像这样:
sudo dscl . -change /Users/$USERNAME NFSHomeDirectory $OLDPATH $NEWPATH
然后,当然,要将其主目录文件夹实际移动到新路径(如果您还没有这样做),请使用以下命令:
sudo mv $OLDPATH $NEWPATH
或者,如果您不知道 $OLDPATH 的值,请按如下方式按索引进行更改:
sudo dscl . -changei /Users/$USERNAME NFSHomeDirectory 1 $NEWPATH
笔记
dscl
是“目录服务命令行”实用程序- 不用担心,这个关键问题叫做NFSHomeDirectory;这是 LDAP 架构的遗留
顺便说一句,对于这种事情,Mac OS X 服务器管理指南(可免费下载的 PDF)是你的朋友,特别是在这种情况下,用户管理一。它包括 GUI 和命令行方式来执行许多用户管理任务。我相信开放目录管理指南解释了该架构。