私のMacでは、ジャーナリングされていないHFSパーティションを使用して、OSX 10.8とUbuntu 12.04の間でファイルを共有しています。
Time MachineはOSXでボリュームを自動的にバックアップするので、最初はいい考えでしたが、OSXとUbuntuが私にとって物事を混乱させるような方法で許可を台無しにすることにすぐに気付きました。
したがって、ファイルを完全に表示および変更するには、chmod
を使用して、ドキュメントを完全に使用できるアクセス許可を適用し続けます。しかし、変更を適用し続ける必要がある理由がわかりません何度も。
777は機能すると思いますが、これは賢明なことではないと思いました。しかし、「その他」がフルアクセスを取得しない限り(3番目の7)、ubuntuのファイルにロックアイコンが表示されます。
ユーザーnamesは無関係です。 HFS +とLinuxネイティブの両方のファイルシステムのパーミッションは、ユーザーID(UID)の観点で保存されます。これはユーザー名に関連付けられた番号です。 Ubuntuでは、最新のほとんどのLinuxディストリビューションと同様に、最初のユーザーにはデフォルトで1000のUIDが与えられます。 OS Xでは、最初のユーザーにデフォルトで501のUIDが与えられます。したがって、UID値をエンコードするメディアを共有する場合、UID値は一致しない可能性があります。
これを修正する1つの方法は、緩やかなアクセス許可(rwxr-xr-x
のようなモード値、または8進数の755)を設定することです。許可の8進コードはUID値と同じではないことに注意してください。どちらのOSでも、ビット値をファイル許可からremovedに指定するumask
コマンドを使用して、ファイルで使用されるデフォルトの許可を設定できます。たとえば、umask 022
はグループの書き込み許可とその他の許可を削除し、その結果、新しいファイルに対する755(rwxr-xr-x
)許可(またはファイルの一般的な慣行である実行許可ビットを削除する場合は644)になります。ただし、これは主にコマンドラインツールです。あなたが主にGUIユーザーである場合、おそらくあなたのデスクトップ環境のデフォルトに関連する仕事をするために別のツールを見つける必要があります。これはあいまいで、文書化が不十分な場合があります。また、この方法で緩やかなアクセス許可を設定すると、特にユーザーがマルチユーザーシステムの場合、セキュリティ上の欠点が生じる可能性があります。
より良い方法は、LinuxとOS XでアカウントUIDを同期することです。LinuxのUID値は、次のようにusermod
コマンドで簡単に変更できます。
usermod -u 501 dale
このコマンドは、dale
のUIDを501に設定します。ただし、いくつかの重要な注意事項があります。
usermod
はroot
として使用する必要があります。 Sudo
を介して実行できますが、極端に変更するアカウントから実行することはお勧めできません。したがって、root
にパスワードを与えてroot
に直接ログインするか、2番目のユーザーアカウントからSudo
を使用する必要があります。usermod
コマンドは、問題のユーザーが所有するファイルの所有権を変更しません。これらのファイルの所有権を調整するには、それらを見つけて、chown
で所有権を変更する必要があります。ほとんどのファイルはユーザーのホームディレクトリにあるため、root
のUIDを変更した後にdale
と入力したchown -R dale: /home/dale
は、ほとんどのdale
のファイルを変更して新しいUIDを使用します数。ただし、ユーザーのファイルの一部は他の場所にある場合があります。 find / -uid 1000
と入力すると、古いUIDを使用するすべてのファイルが検索されます(1000であると仮定)。このfind
コマンドはおそらく完了するまでに数分かかることに注意してください。高速化するには、FATやNTFSボリュームなど、ヒットが検出されないことが確実なファイルシステムをアンマウントします。/etc/fstab
エントリを使用してボリュームをマウントする場合は、指定するUID値を調整する必要があります。/etc/login.defs
に保存します。このファイルのUID_MIN
値の変更に失敗すると、GUIログイン画面や他のシステムからアカウントが「消えた」ように見えることに気付くでしょう。したがって、そのファイルを編集する必要があります。理論的には、同じ目標を達成するために、OS XアカウントのUIDを同様の方法で変更できます。ただし、OS Xのアカウントメンテナンスツールについてはあまり詳しくないため、明示的に指示することはできません。 OS X値の調整には、LinuxでUID_MIN
を調整する必要がないという利点があります。
コンピューターに複数のアカウントがある場合、それらをすべて調整して、OSインストール全体ですべてのアカウントを同期させる必要があります。
もう1つのポイント:グループID(GID)値は同様の方法で保存されます。 IIRC、Ubuntuは、UID値と同一の各アカウントにGID値を割り当てます。 OS Xのデフォルトの動作を思い出せません。 UIDの変更に似た方法で2つのOSのGID値を調整することもできますが、これはUID値の調整ほど重要ではないでしょう。
EDIT:UbuntuではなくmacOS/OS XでUID(および必要に応じてGID)を変更する場合は、変更できます。 macOSでのこの変更はこのサイトの範囲を超えているため、macOSでこれを行う手順を提供するいくつかのページにリンクします。
ターミナルを開いて:
OS Xでは、これを試してください
Sudo dscl / -create /Users/<ubuntu-username>
Sudo dscl / -append /Groups/<os-x-username> GroupMembership <ubuntu-username>
Ubuntuでは、これを実行します
Sudo adduser --system --no-create-home --ingroup <ubuntu-username> <os-x-username>
これで、ファイルの許可に774
または770
を使用できるようになります。
共有したいフォルダをクリックしてコマンド+ Iを押すことができることがあります。ロックが解除されていない場合は、ロックをクリックしてパスワードを入力し、[次へ]をクリックします。
動作する別のことは、フォルダを「共有フォルダ」として設定することです。これは、システム環境設定の共有設定ペインで行うことができます。
システム設定>共有>ファイル共有に移動します。次に、ファイル共有ボックスがチェックされていることを共有し、プラスボタンを使用して共有したいフォルダを追加します。その後、書き込みを読み取るための許可を変更できます。
注:2番目のオプションを使用すると、コンピューターが開き、インターネット経由で選択したフォルダーにアクセスできるようになります(os xで起動している間のみ)!!安全なパスワードを共有し、おそらく公共の場でこれを無効にすることを共有してください(あなたのアルミ箔の帽子を忘れないでください!)