Mac OS X-如何将/ home链接到/ Users


14

对于那些迷恋企鹅和苹果的人来说,能够使用/ home路径(不是习惯性使用)还是那些可能值已在某些文件中沿行同步的奇怪情况下似乎非常值得在两台机器上使用。


6
~username无论Mac OSX还是Linux,都可以扩展到您的主目录。
nohillside

1
我知道这一点,但是某些跨平台应用程序保存了绝对路径。一个例子是崇高文本2.
anthonyryan1

1
实际上只是~扩展到您的主目录。您能否在问题中阐明您是要符号链接到用户主目录(即/Users/[username])还是实际上是符号链接到用户目录本身(/Users/),其中包含计算机上所有用户的单独目录?
cleverbit

Answers:


19

sudo ln -s /Users /home可以与其他配置一起使用,但是我认为这不是一个好主意,因为您应该通过~shell或进入家$HOME。也/home可能是Linux标准,并且经常在Unix中使用,但是依赖于保证有效的信息并非总是那么好,如果每个人都遵守约定,那么这种信息在大多数情况下都不会起作用。

若要进行sudo ln -s /Users /home工作,请按照下列步骤操作(从注释中):

EDITOR=nano sudo -e /etc/auto_master
# add a "#" at the start of the line beginning with /home
# save changes
sudo automount -cv
sudo ln -s /Users /home

7
首先编辑/etc/auto_master并注释掉主页行。然后重新启动以释放现有的/ home资源。然后,您可以使用以下命令对目录进行符号链接。ln -s /Users /home。在执行此操作之前,由于资源繁忙,您将完全不被允许创建符号链接。
anthonyryan1 2012年

@AR。这样做是否有潜在的负面后果(或为什么会首先出现这种情况?)。而且即使是root用户也不能编辑它,或者在chmod a + w / etc / auto_master之后还有另一种方法吗?
2013年

2
-1。这导致了一条operation not supported消息
安倍

2
@Abe如果遵循@AR。的指示,则不会。请注意,您不必重新启动。您可以sudo automount -cv改为运行。
Zigg 2013年

@zigg谢谢。但这仍然不能使答案完整。我将提出修改建议-无论如何我都无法投票!
2013年

5

我很遗憾这个答案并不完全是权威,因为我自己从来没有真正做到这一点-尽管我在其他Unix系统上使用过类似的自动挂载程序-但我/home对OS X上的用途有所了解。

因此,让我们按照以下步骤进行操作:

如果您首先输入mountTerminal以显示活动安装,您将看到以下行:

map auto_home on /home (autofs, automounted, nobrowse)

autofs地图是在中定义的/etc/auto_master,然后又/home是在中专门定义的/etc/auto_home。如果您查看一下/etc/auto_home,您将看到以下行:

+/usr/libexec/od_user_homes

继续进行下一步,进入od_user_homes手册页,您将找到一个程序,其目的是获取用户名,在Open Directory中查找用户名,然后将URL返回到该用户的主目录。如果您auto_master其手册页上继续阅读,将会发现使用可执行程序进行映射会导致该程序被调用以查找要安装的URL,该URL又被就地安装。

预期的应用程序似乎是:如果您的Mac已连接到目录服务,则该操作/home/jdoe将导致自动安装程序在其中安装jdoe主目录。

基于此,可以得出这样的逻辑结论:如果您不打算将Mac连接到目录服务,则可以按此注释中的/home说明删除自动挂载。我不知道将来的操作系统更新将如何处理。


1
我喜欢使用自动安装程序,而不是禁用它。因此,我会让自动安装程序将/ Users / $ USER挂载到/ home / $ USER。我想知道是否简单到用“ + / bin / echo / home / $ 1”之类的东西替换/ etc / auto_home中的那一行,或者是否要进行正确的错误处理,创建一个脚本来复制od_user_homes的工作
Tim B

@TimB有趣的想法。稍微玩了一下,不过,我不确定是否可以指定automountd要处理的本地路径。似乎可以执行NFS,SMB和AFS。
Zigg 2013年

我不知道这是否适用于Linux,但这是我一直在Solaris上所做的事情。实际目录为/ export / home / $ USER,并且有一个标准配置可将其自动挂载到/ home / $ USER。实际上,根据blogs.oracle.com/observatory/entry/automount_home_directory
Tim B

1
我只是看了一下。您甚至不需要模仿可执行映射od_user_homes。就是为了支持OD。可以将/ Users / $ USER普通自动挂载到/ home / $ USER。它显示在auto_master手册页中,尽管那里的示例显示了远程NFS挂载而不是本地目录,但它也应在本地工作。
Tim B

我可能做错了什么,但是尝试配置本地路径以使用NFS挂载并Input/output error在尝试时收到cd。从我的阅读看来,就像我说的那样,我只能使用NFS,SMB或AFS。但是也许我们应该在其他地方进行这一实验……
Zigg

2

没有用/home。与其他各种Unix版本一样,OS X为用户提供了唯一的位置。在Linux中为/home/user,在OS X中为/Users。这就是为什么最好使用速记“ ~”或环境变量的原因$HOME

虽然可以/Users/[username]使用以下命令创建到用户的base / home目录的符号链接:

ln -s ~ /foo

创建名称/home为链接的链接将不起作用,因为该链接已在系统根目录中存在一个(n未使用)目录。


1
究竟。我曾经在其他类似Unix的系统上出于各种原因对主目录使用其他约定,例如/export/home/username在Solaris上。认为/home/username会起作用是一种不好的做法。寻找主目录的程序应使用getpwnamgetpwuid
zigg 2013年

1
我完全同意,将程序假定为存在是不好的做法,但这并不能解决有时软件不是以有效的方式开发的问题。
anthonyryan1 2013年

在我和其他人的坐骑中:map auto_home on /home (autofs, automounted, nobrowse)…虽然我不知道该坐骑的起源,但我应该不同意“没有用/home”。
Graham Perrin

抱歉本来应该更清楚:只是意味着/home显然已保留,但未在OSX中使用,并不是说没有
用处

@richarddas我得到同样operation not supported的错误sudo ln -s /Users/username /home/username,因为我从做 sudo ln -s /Users /home@AR提供的解决方案有效(注释掉该/home/etc/auto_master并重新启动)。
2013年

1

我根本没有理由不重命名目录/ home(以防我错了),并且没有创建从/ home到/ Users的符号链接(或者,由于系统原因,在我的机器中是/ Volumes / Users)磁盘用于系统,该死!)

我曾经在大学部门担任Unix的11种系统管理员的工作。全局目录树中有各种各样的符号链接,因此文件系统可以做正确的事情,并且脚本尽可能地适合在任何地方工作。您确实遇到了一些麻烦,但是如果您的手指习惯于键入/ home / foo,并且symlink推迟了手指的作业再培训,请继续。

同样,某些linuxen的主目录已经是/ usr / home。

我工作过的地方有一个/ Users / {group} / {username}的主目录,以部分保护学生免受教授许可的情况,防止学生四处浏览教授文件。Users目录已执行,但未设置读取位,并且组目录仅对组成员可读。

(所有这些说明中,有很多方法可以剥夺这只猫科动物的毛皮。

一种可能的陷阱-检查时间机器最终不会制作所有东西的两个副本。我不知道TM如何处理符号链接。如果是这样,则将/ home添加到TM的排除列表中。


1
如果某人或某人为您的替代方案设置了不合适的模式或ACL,/Users则熟悉的修复权限例程可能将无法进行所需的更正。因此,我建议/Users应由Apple安装:目录,而不是符号链接。
Graham Perrin

0

我之前尝试过此方法,并使它工作约一周,直到重新启动为止。

您不能只是符号链接/home/Users。实际上,您甚至无法删除/home

如果您设法删除/home,它将在重新启动后重新出现。

如果移动/home/home.old和符号链接/home,它会删除符号链接/home

只要您的Mac不会崩溃或重启,您就可以使用它。

重新启动后,一切都会消失!

重新启动时,Mac OS X似乎认为您正在创建一个新用户,因此它将覆盖旧/Users/username目录中的所有用户首选项。

由于您将所有内容都复制到/home/username,因此您希望ls /home在重新启动后看到新的主目录。相反,您什么都没有!!!好像它从未存在过。

就我而言,我吓坏了大约30分钟,然后我进入了单用户模式,看看是否可以做些什么。我以为我可能可以获取日志文件或尝试启动修复实用程序。

在单用户模式下,我的主目录在那里。在多用户模式下,Apple故意向用户隐藏任何新创建的目录/home。这是故意设计的邪恶功能。

苹果很la脚,不鼓励任何形式的黑客入侵他们的操作系统。那是什么样的设计特征?Apple隐藏了新创建/home目录的内容。Apple绝对没有正当理由自动删除/home目录...或任何用户创建的目录!

在这种情况下,他们正在/ home目录上挂载目录...有效地隐藏了它。

如果您真的确定要使用/home而不是/Users,则可以通过编写脚本在每次引导时进行设置来解决该问题。

另外,我应该提到您应该能够使用其他一些目录,因为它仅被禁止使用,所以不能/home代替它。/Users/home

如果您使用bash,则必须设置一些环境变量...即:CD_HOMEHOME

我希望补充一点……尽管您无法卸载或强制卸载/home,但是可以在上安装磁盘/home。所有这些都安装在“ auto_home”的顶部。

我能够/home成功地将恢复磁盘安装在上面...也许这是可以完成的。


TL / DR;可以使用评分最高的答案进行重新启动验证自定义
MarkHu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.