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


8

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

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

したがって、ファイルを完全に表示および変更するために、私chmodはドキュメントを完全に使用できるようにする権限を適用するために引き続き使用します。しかし、なぜ何度も変更適用し続ける必要があるのか​​理解できません。

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

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


1
OS XとUbuntuの両方で同じユーザー名を持っていますか?ユーザー名が異なる場合は、OS XのグループにUbuntuユーザー名を追加することその逆も可能です。この方法では774、権限のみが必要です。
エドウィン2013

@edwin先端をありがとう。グループにユーザー名を追加するにはどうすればよいですか?777の使用は妥当ですか、それとも安全ではありませんか?

回答:


12

ユーザーは関係ありません。HFS +とLinuxネイティブの両方のファイルシステムのアクセス許可は、ユーザーID(UID)として保存されます。これは、ユーザー名に関連付けられた番号です。Ubuntuでは、ほとんどの最新のLinuxディストリビューションと同様に、最初のユーザーにはデフォルトで1000のUIDが付与されます。OS Xでは、最初のユーザーにはデフォルトで501のUIDが与えられます。したがって、UID値をエンコードするメディアを共有する場合、UID値は一致しない可能性があります。

これを修正する1つの方法は、ゆるいパーミッション(のようなモード値rwxr-xr-x、または8進数の755)を設定することです。アクセス許可の8進コードはUID値と同じではないことに注意してください。どちらのOSでも、ファイルのアクセス許可から削除umaskするビット値を指定するコマンドを使用して、ファイルで使用するデフォルトのアクセス許可を設定できます。たとえば、グループの書き込み権限とその他の権限を削除すると、755(umask 022rwxr-xr-x)新しいファイルに対する権限(または、何かが実行権限ビットを削除する場合は644。これはファイルの一般的な方法です)。ただし、これは主にコマンドラインツールです。主にGUIユーザーの場合は、おそらくデスクトップ環境のデフォルトに関連する、別のツールを見つけて作業を行う必要があります。これはあいまいで、不十分に文書化されている可能性があります。また、この方法で緩やかなアクセス許可を設定すると、特にマルチユーザーシステムの場合に、セキュリティ上の問題が発生する可能性があります。

LinuxとOS X間でアカウントUIDを同期することをお勧めします。LinuxのUID値は、usermod次のようにコマンドを使用して簡単に変更できます。

usermod -u 501 dale

このコマンドはのUID daleを501に設定します。ただし、いくつかの重要な警告があります:

  • 変更する前に、変更するアカウントからログアウトする必要があります。使用中のアカウントを変更しようとすると、そのアカウントが異常な動作をし始めます。
  • usermodとして使用する必要がありますroot。を介して実行できsudoますが、極端な場合、変更中のアカウントから実行することはお勧めできません。したがって、rootパスワードを指定してroot直接ログインするかsudo、2番目のユーザーアカウントから使用する必要があります。
  • このusermodコマンドは、問題のユーザーが所有するファイルの所有権を変更しません。これらのファイルの所有権を調整するには、ファイルを見つけて、で所有権を変更する必要がありますchown。ほとんどのファイルはユーザーのホームディレクトリにあるためchown -R dale: /home/dale、のUIDをroot変更した後に入力すると、の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の値を調整するとUID_MIN、Linuxで調整する必要がないという利点があります。

コンピューターに複数のアカウントがある場合は、それらをすべて調整して、OSインストール全体ですべてのアカウントを同期させる必要があります。

もう1つ、グループID(GID)の値は同様の方法で保存されます。IIRC、Ubuntuは、UID値と同一の各アカウントにGID値を割り当てます。OS Xがデフォルトで何をしているのか思い出せません。2つのOSのGID値を、UIDの変更に類似した方法で調整することをお勧めしますが、これはUID値の調整ほど重要ではありません。

編集: UbuntuではなくmacOS / OS XでUID(および必要に応じてGID)を変更する場合は、変更できます。macOSでのこの変更はこのサイトの範囲を超えているため、macOSでこれを行うための手順を提供するいくつかのページにリンクします。


わぁ、ありがとう!これは本当によく書かれた包括的な答えです-問題の完全なコンテキストを説明します!このソリューションは、妥協することなく、完璧な共有パーティションを取得するのに役立ちました。最初はファイルの所有権の問題がまだありました。OSXで「このボリュームの所有権を無視する」と、ubuntu(ロックアイコン)で実行しているときにOSXの新しく作成されたファイルへの書き込みアクセス権が与えられません。そのため、ubuntuでOSXと同じユーザー名を使用して新しい新しいアカウントを設定し、UIDを再度変更することになりました。

これで、アクセス制限を変更することなく、既存のファイルと新しく作成されたファイルの両方のオペレーティングシステムから完全にアクセスできます。これはそのような模範的な回答であるため、質問が賞金の対象となる場合は、賞金を差し上げます。;-)

あなたの指示に従った後、私はubuntuにログインしようとしました。Enterキーを押すと、黒い画面が1秒間表示された後、ログイン画面に戻りました。一時アカウントから何かを標準1000に戻した後、再度ログインできました。新しいuidでログインできなかった理由は何ですか?
borisdiakur 2014年

自分のホームディレクトリのアクセス許可の変更を怠った場合は、それが問題の原因である可能性があります。13.10を使用している場合、Ubuntuの何かが変更されたため、調整しなかった場合に問題が発生することも考えられますUID_MIN
Rod Smith、

1
更新:私は自分のシステムでusermodを実行しましたが、どういうわけかホームディレクトリのアクセス許可を変更する必要はありませんでした!?すべてが(rootとして)usermodの後にのみうまく機能します。
krumpelstiltskin 2015

0

共有したいフォルダをクリックしてcommand + Iを押すことができる場合があることを発見しました。ロックが解除されていない場合は、ロックをクリックしてパスワードを入力します。次に、「全員」と表示されている場所で、読み取りと書き込みを選択します。

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

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


これはどちらの場合でも機能しますが、最初のオプションのみを使用します。しかし、「全員」のアクセス(つまり、許可777)を許可するのは過激すぎるようです。そうではありませんか?これは安全ですか?

1
まあ、それは確かに推奨されません。「Everyone」は、これらのアクセス許可を持つドキュメントを変更して読み取ることができます(ただし、これはほとんどUNIXのものです)。その使用は間違いなくもう少し安全774です。
エドウィン2013

0

ターミナルを開いて:

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>

これ774770、ファイルの権限を使用できるようになりました。


これは機能しません。OSXコマンドも機能しません。しかし、OSXのGUIインターフェイスを介してubuntuユーザーを追加することに成功しました。実行中のOSに他のOSのユーザーを追加し、両方のオペレーティングシステムで権限を774に変更した後でも、Ubuntuは共有パーティション上のすべてのファイルへのフルアクセスを取得できません。たとえば、一部のサブディレクトリを開くことができません(権限は774)。それを開くには、777に変更する必要がありました。これらの優雅な許可は安全ですか?

少なくともUbuntuでは、コマンドは機能するはずですが、答えを追加する前に自分で試してみました。<ubuntu-username>Ubuntuの実際のユーザー名に置き換えました<os-x-usernanme>か?また、このコマンドを実行しようとしたときにOS Xがどのエラーを表示するかについて、より具体的に説明できますか?
エドウィン2013

OSXではコマンドが機能しないとだけ言った。私の記憶が正しければ、コマンドadduserは終了しません。

これに対する答えを編集しました。それを試してみてください。OS Xのユーザー管理に慣れていないのでわかりません。OS Xでは、GUIを使用してUbuntuユーザーを作成し(Ubuntuで使用するユーザー名で)、それを実際のOS Xユーザーグループに追加することもできます。
エドウィン2013

それはどうでもいい事です。OSXは、CMD + Iを使用するときにユーザーを簡単に作成および追加できるシンプルなGUIを提供します。しかし、これは結局問題を解決しませんでした。777のアクセス許可を使用してしまいました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.