web-dev-qa-db-ja.com

OSXおよびUbuntuの共有ボリュームのアクセス許可を管理する方法

私のMacでは、ジャーナリングされていないHFSパーティションを使用して、OSX 10.8とUbuntu 12.04の間でファイルを共有しています。

Time MachineはOSXでボリュームを自動的にバックアップするので、最初はいい考えでしたが、OSXとUbuntuが私にとって物事を混乱させるような方法で許可を台無しにすることにすぐに気付きました。

したがって、ファイルを完全に表示および変更するには、chmodを使用して、ドキュメントを完全に使用できるアクセス許可を適用し続けます。しかし、変更を適用し続ける必要がある理由がわかりません何度も

両方のオペレーティングシステムが永続的に尊重するように、何らかの種類の許可を永続的に設定することは可能ですか?

777は機能すると思いますが、これは賢明なことではないと思いました。しかし、「その他」がフルアクセスを取得しない限り(3番目の7)、ubuntuのファイルにロックアイコンが表示されます。

8
user24668

ユーザー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に設定します。ただし、いくつかの重要な注意事項があります。

  • 変更する前に、変更するアカウントからログアウトする必要があります。使用中のアカウントを変更しようとすると、そのアカウントの動作がおかしくなります。
  • usermodrootとして使用する必要があります。 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ボリュームなど、ヒットが検出されないことが確実なファイルシステムをアンマウントします。
  • FATまたはNTFSボリュームにアクセスする場合、それらのUID値はマウント時にオプションによって決定されます。 GUIファイルマネージャを使用する場合、UID値がファイルマネージャを実行している人に設定される可能性があるため、特別なことは何もする必要はありません。ただし、/etc/fstabエントリを使用してボリュームをマウントする場合は、指定するUID値を調整する必要があります。
  • Ubuntuは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でこれを行う手順を提供するいくつかのページにリンクします。

12
Rod Smith

ターミナルを開いて:

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を使用できるようになります。

0
edwin

共有したいフォルダをクリックしてコマンド+ Iを押すことができることがあります。ロックが解除されていない場合は、ロックをクリックしてパスワードを入力し、[次へ]をクリックします。

動作する別のことは、フォルダを「共有フォルダ」として設定することです。これは、システム環境設定の共有設定ペインで行うことができます。
システム設定>共有>ファイル共有に移動します。次に、ファイル共有ボックスがチェックされていることを共有し、プラスボタンを使用して共有したいフォルダを追加します。その後、書き込みを読み取るための許可を変更できます。

注:2番目のオプションを使用すると、コンピューターが開き、インターネット経由で選択したフォルダーにアクセスできるようになります(os xで起動している間のみ)!!安全なパスワードを共有し、おそらく公共の場でこれを無効にすることを共有してください(あなたのアルミ箔の帽子を忘れないでください!)

0
aChipmunk