Cara memasang drive HFS + dan mengabaikan izin

25

Saya menginstal Ubuntu dan Windows di MacBook saya dan Ubuntu adalah OS utama saya; Namun, semua media saya tetap pada partisi OSX saya. Saya ingin dapat mengaksesnya (setidaknya folder home pengguna OSX saya) dari Ubuntu tanpa harus meluncurkan media player (atau apa pun) sebagai root. Juga, karena saya kadang-kadang ingin menyalakan mesin saya di OSX, saya tidak ingin mengubah apa pun yang saya perlu sering ganti kembali (saya membaca banyak tentang mengubah UID - Saya tidak benar-benar mengerti apa yang diperlukan, tetapi saya tidak ingin harus mengubah UID saya bolak-balik tergantung pada OS yang saya gunakan. Demikian pula, saya tidak ingin mengubah izin sistem file bolak-balik).

Juga, saya melihat sesuatu tentang opsi "noowner", tetapi sepertinya tidak melakukan apa yang saya inginkan.

Jadi saya rasa saya ingin dapat melakukan sesuatu seperti ini:

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

Dan kemudian dapat mengakses semua media saya (setidaknya semua yang ada di folder Home pengguna OSX saya) tanpa masuk sebagai root. (untuk kejelasan: entri baris perintah di atas tidak melakukan apa yang saya inginkan, tetapi saya ingin dapat melakukan hal serupa).

Atau lebih baik mengubah UID saya? Dan jika demikian, bagaimana?

weberc2
sumber
Bisakah Anda melihat jawaban saya. Saya yakin saya telah menjawab pertanyaan Anda lebih benar daripada jawaban yang ditandai.
Catskul
@Catskul Tidak, saya tidak bisa. Pertanyaan ini sudah berusia lebih dari 2 tahun - pada saat itu, saya telah menjual MacBook saya dan mereproduksi masalah ini untuk tujuan memvalidasi jawaban Anda sangat sulit.
weberc2

Jawaban:

28

bindfsadalah jawabannya. Ini akan mengambil sistem file yang sudah terpasang dan memberikan tampilan dengan mana pun yang Anda inginkan:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
Catskul
sumber
Beban cpu dan memori cukup besar. Jika itu masalah, saya akan merekomendasikan solusi @ weberc2. Kalau tidak jawaban yang bagus.
frhd
bindf telah bersisik untuk saya. saya menggunakan respons untuk posting ini askubuntu.com/questions/315078/… sebagai gantinya
krumpelstiltskin
Jawaban yang bagus (ter-upgrade) tetapi perlu menginstal bindfs. Kenapa itu tidak begitu baik? Nah, ini adalah kasus saya yang tidak biasa: teman memberi saya MacBook lama (saya tidak tahu apakah Pro) untuk membuat cadangan data dari MacOS non-boot. Saya mencoba versi Ubuntu terbaru dan tidak berhasil (driver nouveau crash, nomodeset tidak membantu). Lalu saya mulai kembali dengan versi Ubuntu sampai saya menemukan yang boot, 9,10 (yeah), server repo tidak online lagi. bindf tidak dapat diinstal. Jawaban yang diterima memecahkan masalah itu.
Hatoru Hansou
19

Saya tidak dapat menemukan cara untuk mengabaikan izin, tetapi akhirnya saya mengubah UID di akun Ubuntu saya agar cocok dengan akun OSX saya:

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

Masukan kata sandi baru. Logout, masuk sebagai "lain" dengan nama pengguna "tempuser" dan kata sandi yang Anda pilih sebelumnya. Buka terminal dan ketik:

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

* ubah "yourusername" menjadi nama pengguna non-sementara dan 501 ke UID akun Mac Anda (akun Mac pertama dimulai pada 501, tetapi pengguna berikutnya akan memiliki UID yang berbeda).

Keluar dari tempuser dan masuk kembali ke akun normal Anda (ini penting; jangan hanya beralih pengguna - hal-hal buruk terjadi). Buka jendela terminal dan ketik:

sudo userdel -r tempuser

Untuk detail lebih lanjut, kunjungi halaman ini .

Peringatan

  • Hanya satu pengguna linux yang bisa mendapatkan akses. Pengaturan ini tidak akan memungkinkan banyak pengguna linux untuk mengakses beberapa direktori pengguna pada drive HFS +. Ini karena Apple mengunci direktori pengguna (dan direktori media seperti Musik) ke 700 ( rwx------).
  • Setelah Anda mengubah UID Anda, manajer login akan berhenti mencantumkan pengguna itu. Anda harus mengubah UID_MINopsi /etc/login.defdari dari 1000menjadi 500.
  • Akhirnya karena UID pengguna telah berubah, akses ke drive menjadi kebingungan izin. Anda harus mencatat lokasi pasti folder asal pengguna Anda untuk melihatnya. Pelengkapan tab dan penelusuran melalui pengelola file akan menjadi masalah bagi folder di luar folder rumah pengguna Apple asli tanpa sudo.
weberc2
sumber
pendekatan usermod bekerja untuk saya. pastikan untuk menghapus / media / USERNAME jika Anda ingin menggunakan drive USB. askubuntu.com/questions/583375/…
krumpelstiltskin
Untuk peringatan 1 Anda, 700 memang merupakan default untuk direktori pengguna di OS X, tetapi tidak ada masalah dalam mengubahnya jika tidak cocok untuk Anda, misalnya ke 755.
fkraiem
Saat menggunakan sudo untuk mengeluarkan perintah dan meluncurkan nautilus dengan sudo memungkinkan akses ke direktori apa pun di MacOS HD, metode uid adalah yang terbaik saat Anda membutuhkan lebih dari sekadar mengakses file, misalnya mentransfernya ke folder bersama di komputer lain (menggunakan samba, misalnya). Instance nautilus yang ditinggikan tidak dapat menjelajahi jaringan, instance nautilus yang normal dapat, tetapi tidak memungkinkan Anda menyalin dan menempel dari MacOS HD. Berikan pengguna sementara 501 uid memecahkan masalah bagi saya, memungkinkan saya untuk membuat cadangan data dari MacOS non-boot ke folder bersama.
Hatoru Hansou
Untuk 16.10, kecuali UID_MIN, juga perlu menambahkan GID_MIN=500ke/etc/login.def
menarik
5

The dokumentasi untuk pelaksanaan linux kernel dari HFS + filesystem daftar sebuah uidmount option yang memungkinkan Anda untuk "sendiri" semua file (dan mungkin beberapa pilihan lain yang mungkin berguna juga).

JanC
sumber
Saya sudah mencoba melakukan itu, tetapi saya tidak tahu UID apa yang seharusnya saya gunakan. Saya sudah membaca ini seperti 501 untuk OSX, tetapi akun itu bukan pengguna OSX asli. Bagaimana saya bisa mengetahui informasi ini?
weberc2
@ weberc2: ls -l /media/YourHFSdisk/akan menunjukkan kepada Anda file dan folder saat ini. Disk HFS + yang saya temui tampaknya sebagian besar dimiliki oleh uid 99 dan gid 99. Namun, saya mencoba berbagai kombinasi pengaturan uid / gid / umask di perintah mount, dan sepertinya tidak mengubah apa pun.
mivk
Ini tidak berhasil untuk saya. Dari dokumentasi: "uid / gid \ nTentukan pengguna / grup yang memiliki semua file di sistem file yang memiliki struktur izin yang tidak diinisialisasi." Sayangnya, semua file di sistem file saya masih dimiliki oleh 501 (yaitu mereka telah menginisialisasi struktur izin (?))
Colin
2

Saya tahu ini sudah tua, tetapi ada cara lain yang tampaknya bekerja dengan baik untuk saya. Karena semua file dimiliki oleh pengguna "root", semua yang saya lakukan adalah masalah su rootdari terminal dan ls -lah /media/Macintosh HDdari sana. Dengan menggunakan root, saya bisa mem-bypass izin yang ditolak kesalahan.

pengguna236192
sumber
sederhana dan licik
SYK
1

Saya bisa mendapatkan akses ke file dari hard drive Macbook lama dengan menjalankan manajer file dengan hak yang lebih tinggi.

gksudo thunar

Kemudian salin file sesuai kebutuhan.

John
sumber
0

Ini adalah opsi umum yang saya gunakan berfungsi dengan sempurna

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
rmil
sumber