Mac OS X-/ homeを/ Usersにシンボリックリンクする方法


14

ペンギンやリンゴに手を出している私たちにとって、/ homeパスをhabbitから使用するか、値がファイルの行に沿ってどこかで同期されたという奇妙な場合に使用することは非常に価値があるようです両方のマシンで使用します。


6
~usernameMac OSXやLinuxに関係なく、ホームディレクトリに展開されます。
nohillside

1
私はこれを知っていますが、クロスプラットフォームアプリケーションの中には絶対パスを保存するものがあります。Sublime Text 2の例
anthonyryan1

1
実際~、ホームディレクトリに展開するだけです。あなたの質問であなたのユーザーのホームディレクトリにシンボリックリンクしたいのか(すなわち/Users/[username])、または実際/Users/にはマシン上のすべてのユーザーの個別のディレクトリを含むユーザーディレクトリ自体()にしたいのか明確にしてください。
cleverbit

回答:


19

sudo ln -s /Users /home追加の設定で動作しますが~、シェルまたはを介してホームにアクセスする必要があるため、これは良い考えではありません$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

@AR。そうすることによる潜在的な負の結果はありますか(またはそもそもなぜそこにあるのですか?)。そして、rootとして、またはchmod a + w / etc / auto_masterの後に別の方法がありますが、編集することはできませんか?
安倍

2
-1。これにより、operation not supportedメッセージが表示されます
安倍

2
@Abe @AR。の指示に従わない場合。再起動する必要がないことに注意してください。sudo automount -cv代わりに実行できます。
-zigg

@ziggありがとう。しかし、それでも答えは完全にはなりません。編集を提案します-とにかく投票できませんでした!
安倍

5

他のUnixシステムで同様のオートマウンターを使用したことはありますが、私は実際にこれを実際に行ったことがないため、この回答が正確に信頼できるものではないことを残念に思いますが/home、OS Xで何が使用されているかについての理解はここにあります。

それでは、トレイルをたどってみましょう。

mountアクティブなマウントを表示するために最初にターミナルを入力すると、次の行が表示されます。

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

autofsマップはで定義され/etc/auto_master/home次にで具体的に定義され/etc/auto_homeます。を見ると/etc/auto_home、次の行が表示されます。

+/usr/libexec/od_user_homes

トレイルに1つの以上のステップに従いmanページを、あなたはその目的は、ユーザ名を取り、オープンディレクトリでそれを見て、そのユーザのホームディレクトリへのURLを返すことであるプログラムを見つけることができます。あなたが上に読んでいる場合で、そのmanページ、あなたは順番にその場で装着され、そのプログラムでは、マップの結果を得るために実行可能なプログラムを使用してマウントするURLをルックアップするために呼び出されていることがわかります。od_user_homesauto_master

目的のアプリケーションは、Macがディレクトリサービスに接続されている/home/jdoe場合、オートマウンターがjdoeのホームディレクトリをそこにマウントすることです。

これに基づいて、Macをディレクトリサービスに接続するつもりがない場合は/homeこのコメントで説明されているように、自動マウントを削除しても大丈夫だと結論付けるのは理にかなっています。しかし、今後のOSアップデートでこれがどのように処理されるかはわかりません。


1
オートマウンタを無効にするよりも使用するのが好きです。したがって、自動マウンターに/ Users / $ USERを/ home / $ USERにマウントさせます。あなたは適切なエラー処理をしたい場合、それはのようなものでは/ etc /でのauto_homeをその行を置き換えるような単純なようであれば、私は疑問に思う「+ / binに/エコー/ホーム/ $ 1」、または、スクリプトを作成することを反復何od_user_homesん
ティム・B

@TimB興味深い考え。少し遊んでみましたautomountdが、対処するローカルパスを指定できるかどうかはわかりません。NFS、SMB、およびAFSを実行することが可能であるようです。
-zigg

それがLinuxで機能するかどうかはわかりませんが、Solarisでいつもやっていました。実際のディレクトリは/ export / home / $ USERで、/ home / $ USERに自動マウントする標準構成がありました。それはによると、今のSolarisの11.xで標準的な構成であるように実際には、それが見えますblogs.oracle.com/observatory/entry/automounted_home_directory
ティム・B

1
すぐに見ました。実行可能マップod_user_homesを模倣する必要さえありません。ODをサポートするためにあります。/ Users / $ USERの/ home / $ USERへの通常の自動マウントが可能です。auto_masterのマニュアルページに示されていますが、この例ではローカルディレクトリではなくリモートNFSマウントを示していますが、ローカルでも機能するはずです。
ティムB

私は何か間違ったことをしていたかもしれませんが、NFSマウントを使用できるローカルパスを設定Input/output errorしようとしcdましたが、私の読書から、私が言ったように、NFS、SMB、またはAFSしか使用できないように見えました。しかし、この実験を他の場所で行う必要があるかもしれません…
-zigg

2

の使用はありません/home。OS Xは、他のさまざまなUnixバージョンと同様に、ユーザーにとって一意の場所を持っています。Linuxではに/home/userあり、OS Xではにあり/Usersます。これが速記~または環境変数を使用するのが良い習慣である理由です$HOME

/Users/[username]次のコマンドを使用して、ユーザーのベース/ホームディレクトリへのシンボリックリンクを作成できます。

ln -s ~ /foo

/homeシステムのルートにその名前の(n個の未使用の)ディレクトリがすでに存在するため、名前付きのリンクを作成することはできません。


1
丁度。/export/home/usernameSolarisなど、さまざまな理由でホームディレクトリに他の規則を使用する他のUnixライクなシステムを使用しました。うまく/home/usernameいくと仮定するのは悪い習慣です。ホームディレクトリを検索するプログラムはgetpwnamまたはを使用する必要がありgetpwuidます。
zigg

1
プログラムが存在することを前提とするのは悪い習慣であることに完全に同意しますが、それはソフトウェアが時に有能な方法で開発されないことに対処しません。
anthonyryan1

私のケースや他のマウントの中で:map auto_home on /home (autofs, automounted, nobrowse)…そのマウントの起源はわかりませんが、「no use for /home」には同意しません。
グラハムペリン

申し訳ありませんが明確になっているはずです:単に意味/homeは明らかに予約されていますが、OSXでは使用されていません。それを使用する意味がないわけではありません;)
cleverbit

@richarddasと同じoperation not supportedエラーが表示さsudo ln -s /Users/username /home/usernameれます sudo ln -s /Users /home。ソリューション@ARのが提供する作品(アウトコメント/home行に/etc/auto_masterして再起動)。
安倍

1

ディレクトリ/ homeの名前を変更しないで(間違っている場合)、/ homeから/ Users(または、私のシステムのように/ Volumes / Users)へのシンボリックリンクを作成する理由はまったくありませんディスクはシステム用です。

私は、大学の学部で11種類のUNIXを使用して、システム管理者として働いていました。グローバルディレクトリツリーにあらゆる種類のシンボリックリンクがあり、ファイルシステムが適切に動作するようにし、スクリプトはできる限りどこでも動作するようにしました。いくつかの落とし穴に遭遇しますが、/ home / fooの入力に指が使用され、シンボリックリンクが指の再訓練を延期する場合は、すぐに行きます。

同様に、一部のlinuxenにはホームディレクトリが/ usr / homeとして既にあります。

私が働いていた場所の1つは、教授が許可を得て不注意だった場合に学生が教授ファイルをうろつくことを部分的に防ぐために、/ Users / {group} / {username}のホームディレクトリがありました。Usersディレクトリは実行されましたが、読み取りビットは設定されておらず、グループディレクトリはグループメンバーのみが読み取り可能でした。

(このすべては、この特定の猫の毛皮を奪う多くの方法が存在する実例です。

考えられることの1つ-タイムマシンがすべてのコピーを2つ作成しないことを確認してください。TMがシンボリックリンクを処理する方法がわかりません。存在する場合は、TMの除外リストに/ homeを追加します。


1
誰かまたは誰かがあなたの代わりに不適切なモードまたはACLを設定した場合/Users、パーミッションを修復するためのよく知られたルーチンはおそらく必要な修正を行うことに失敗します。したがって/Users、シンボリックリンクではなく、ディレクトリをAppleがインストールしたものにすることをお勧めします。
グラハムペリン

0

私はこれを前に試し、再起動するまで約1週間動作させました...

にシンボリックリンク/homeすることはできません/Users。実際、を削除することさえできません/home

削除できた場合/home、再起動後に再表示されます。

に移動/home/home.old、シンボリックリンク/homeすると、シンボリックリンクが削除され/homeます。

Macがクラッシュまたは再起動しない限り、これを機能させることができます。

再起動すると、すべて消えます!

再起動すると、Mac OS Xは新しいユーザーを作成していると考えているように見えるため、古い/Users/usernameディレクトリのすべてのユーザー設定が上書きされます。

すべてを/home/usernameにコピーしたため、ls /home再起動後に行うと、新しいホームディレクトリが表示されるはずです。代わりに、何も得られません!!! それは存在しなかったかのようです。

私の場合、約30分間おかしくなってから、シングルユーザーモードで起動して、何かできるかどうかを確認しました。ログファイルを取得したり、修復ユーティリティを起動したりできると考えていました。

シングルユーザーモードでは、私のホームディレクトリがそこにありました。Apple は、マルチユーザーモードの場合、新しく作成されたディレクトリをユーザーから意図的に/home表示にします。これは、意図的に悪意のあるデザイン機能です。

Appleは不自由であり、OSをハッキングすることを思いとどまらせます。それはどのようなデザイン機能ですか?Appleは、新しく作成された/homeディレクトリの内容を隠します。Appleが/homeディレクトリを自動削除する正当な理由はまったくありません...またはユーザーが作成したディレクトリはまったくありません!

この場合、彼らは/ homeディレクトリの上にディレクトリをマウントしています...事実上それを隠しています。

/home代わりにを使用することに本当に決心している場合は/Users、ブートのたびにすべてをセットアップするスクリプトを作成することで回避できます。

また、禁止され/home/Usersいるだけであるため、代替として使用されない他のディレクトリを使用できるようにする必要があることを言及する必要があります/home

bashを使用する場合、いくつかの環境変数を設定する必要があります。つまり:CD_HOMEおよびHOMEです。

私はそれを追加したい...あなたがアンマウントすることはできませんが、アンマウントを強制することはできませ/home、上にディスクをマウントすることができます/home。これらはすべて「auto_home」の上にマウントされています。

リカバリディスクを上に/home正常にマウントすることができました...おそらく、これがその方法です。


TL / DR; 再起動防止のカスタマイズは、一流の回答
-MarkHu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.