web-dev-qa-db-ja.com

HFS +ドライブをマウントして権限を無視する方法

MacBookにUbuntuとWindowsをインストールしました。UbuntuがプライマリOSです。ただし、すべてのメディアはOSXパーティションに残ります。ルートとしてメディアプレーヤー(またはその他のもの)を起動することなく、Ubuntuから(少なくとも私のOSXユーザーのホームフォルダーに)アクセスできるようにしたいと思います。また、ときどきOSXでマシンを起動したいので、頻繁に元に戻す必要のあるものは何も変更したくありません(UIDの変更について多くのことを読んでいます。使用しているOSに応じてUIDを前後に変更する必要はありません。同様に、ファイルシステムのアクセス許可を前後に変更したくないです。

また、「所有者」オプションについて何かを見ましたが、それは私が望んでいることをしていないようです。

だから私はこのようなことをしたいと思います:

Sudo mount -t hfsplus -o noowner /dev/sda2/ /media/Mac

そして、ルートとして立ち寄らずに、すべてのメディア(少なくとも、私のOSXユーザーのホームフォルダー内のすべてのもの)にアクセスできるようになります。 (明確にするために、上記のコマンドラインエントリは、私が望んでいることを行いませんが、同様のことができるようにしたいです)。

または、UIDを変更する方が良いでしょうか?もしそうなら、どのように?

25
weberc2

許可を無視する方法を見つけることができませんでしたが、UbuntuアカウントのUIDをOSXアカウントと一致するように変更することになりました。

Sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser
Sudo passwd tempuser

新しいパスワードを入力してください。ログアウトし、ユーザー名「tempuser」と以前に選択したパスワードで「other」としてログインします。ターミナルを開き、次を入力します。

Sudo usermod --uid 501 yourusername
Sudo chown -R 501:yourusername /home/yourusername

*「yourusername」を一時的でないユーザー名に、501をMacアカウントのUIDに変更します(最初のMacアカウントは501から始まりますが、後続のユーザーは異なるUIDを持ちます)。

Tempuserからログアウトして、通常のアカウントに再度ログインします(これは重要です。ユーザーを切り替えるだけではなく、悪いことが起こります)。ターミナルウィンドウを開き、次のように入力します。

Sudo userdel -r tempuser

詳細については、 このページ をご覧ください。

注意事項

  • oneLinuxユーザーのみがアクセスできます。このセットアップでは、複数のLinuxユーザーがHFS +ドライブ上の複数のユーザーディレクトリにアクセスすることはできません。これは、Appleがユーザーディレクトリ(および音楽などのメディアディレクトリ)を700(rwx------)にロックダウンするためです。
  • UIDを変更すると、ログインマネージャーはそのユーザーのリスト表示を停止します。 UID_MIN/etc/login.defオプションを1000から500に変更する必要があります。
  • 最後に、ユーザーUIDが変更されたため、ドライブへのアクセスが許可の混乱になります。表示するには、ユーザーのホームフォルダーの正確な場所をメモする必要があります。タブの補完とファイルマネージャの参照は、元のAppleユーザーのホームフォルダー(Sudoなし)以外のフォルダーでは問題になります。
19
weberc2

bindfsが答えです。すでにマウントされているファイルシステムを取得し、任意のuidでそのビューを提供します。

Sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
Sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
28
Catskul

HFS +ファイルシステムのLinuxカーネル実装に関するドキュメント は、すべてのファイルを「所有」できるようにするuidマウントオプション(およびおそらく有用な他のオプション)をリストします。

5
JanC

私はこれが古いことを知っていますが、それを回避する別の方法があります。すべてのファイルは「root」ユーザーによって所有されていたので、私がしたことは、ターミナルからsu rootを発行し、そこからls -lah /media/Macintosh HDを発行することだけでした。ルートを使用することで、アクセス許可拒否エラーを回避できました。

2
user236192

昇格した特権でファイルマネージャーを実行することで、古いMacbookのハードドライブからファイルにアクセスできました。

gksudo thunar

次に、必要に応じてファイルをコピーします。

1
John

これは私が使用している一般的なオプションです完璧に動作します

mkdir /media/test
mkdir /media/diskhfs
mount /dev/sdb1 /media/test -o rw
bindfs -o perms=775,mirror=userorid --map=99/userorid:@99/@uderorid /media/test /media/diskhfs
0
rmil