Cara mengelola izin pada volume bersama untuk OSX dan ubuntu


8

Di mac saya, saya menggunakan partisi HFS yang tidak dijurnal untuk berbagi file antara OSX 10.8 dan Ubuntu 12.04.

Itu pemikiran yang bagus pada awalnya, karena Time Machine akan secara otomatis mencadangkan volume di OSX, tetapi saya segera menyadari bahwa OSX dan Ubuntu mengacaukan izin dengan cara yang membuat segalanya berantakan bagi saya.

Jadi, untuk sepenuhnya melihat dan mengubah file, saya terus menggunakan chmoduntuk menerapkan izin yang akan memungkinkan saya untuk sepenuhnya menggunakan dokumen. Tapi aku tidak mengerti mengapa aku harus tetap menerapkan perubahan berulang .

Apakah mungkin untuk menetapkan semacam izin secara permanen sehingga kedua sistem operasi akan menghormati secara permanen?

Saya kira 777 akan berfungsi, tetapi saya pikir ini bukan hal yang cerdas untuk dilakukan. Tetapi selama 'yang lain' tidak mendapatkan akses penuh (ketiga ketujuh), saya melihat ikon kunci pada file di ubuntu.


1
Apakah Anda memiliki nama pengguna yang sama di OS X dan Ubuntu? Jika Anda memiliki nama pengguna yang berbeda, Anda dapat mencoba menambahkan nama pengguna Ubuntu ke grup Anda di OS X, dan sebaliknya . Dengan cara ini Anda hanya perlu 774izin.
edwin

@edwin Terima kasih atas tipnya. Bagaimana cara menambahkan nama pengguna ke grup saya? Apakah menggunakan 777 masuk akal atau tidak aman?

Jawaban:


12

Nama pengguna tidak relevan. Izin di sistem file HFS + dan Linux-asli disimpan dalam bentuk ID pengguna (UID), yang merupakan angka yang terkait dengan nama pengguna. Di Ubuntu, seperti pada kebanyakan distribusi Linux modern, pengguna pertama diberi UID 1000 secara default. Di OS X, pengguna pertama diberi UID 501 secara default. Jadi, saat berbagi media yang menyandikan nilai UID, nilai UID cenderung tidak cocok.

Salah satu cara untuk memperbaikinya adalah dengan menetapkan izin yang longgar (nilai mode, seperti pada rwxr-xr-x, atau 755 dalam oktal). Perhatikan bahwa kode oktal izin tidak sama dengan nilai UID. Di salah satu OS, Anda dapat mengatur izin default yang digunakan pada file dengan umaskperintah, yang menentukan nilai bit yang akan dihapus dari izin file. Misalnya, umask 022menghapus izin menulis untuk grup dan izin lainnya, menghasilkan 755 (rwxr-xr-x) izin pada file baru (atau 644 jika ada sesuatu yang menghapus bit izin eksekusi, yang merupakan praktik umum untuk file). Ini sebagian besar merupakan alat baris perintah; jika Anda sebagian besar pengguna GUI, Anda perlu menemukan alat lain untuk melakukan pekerjaan itu, mungkin terkait dengan default lingkungan desktop Anda. Ini mungkin tidak jelas dan kurang didokumentasikan. Selain itu, mengatur izin yang longgar dengan cara ini dapat memiliki kelemahan keamanan, terutama jika sistem Anda adalah multi-pengguna.

Pendekatan yang lebih baik adalah menyinkronkan UID akun Anda di Linux dan OS X. Anda dapat dengan mudah mengubah nilai UID di Linux dengan usermodperintah, seperti pada:

usermod -u 501 dale

Perintah ini menetapkan UID untuk dale501. Ada beberapa peringatan yang signifikan, meskipun:

  • Anda harus keluar dari akun yang Anda modifikasi sebelum memodifikasinya. Mencoba mengubah akun yang sedang digunakan akan menyebabkan akun itu mulai berperilaku aneh.
  • usermodharus digunakan sebagai root. Anda dapat menjalankannya melalui sudo, tetapi melakukannya dari akun yang Anda modifikasi tidak dapat dilakukan secara ekstrem. Karenanya, Anda harus memberikan rootkata sandi dan masuk rootlangsung atau menggunakan sudoakun pengguna kedua.
  • The usermodPerintah tidak akan mengubah kepemilikan dari setiap file yang dimiliki oleh pengguna yang bersangkutan. Untuk menyesuaikan kepemilikan file-file itu, Anda harus menemukannya dan kemudian mengubah kepemilikannya chown. Sebagian besar file akan berada di direktori home pengguna, jadi chown -R dale: /home/dale, diketik rootsetelah mengubah daleUID, akan mengubah sebagian besar dalefile untuk menggunakan nomor UID baru. Beberapa file pengguna mungkin berlokasi di tempat lain. Mengetik find / -uid 1000akan menemukan semua file yang menggunakan UID lama (dengan asumsi 1000). Perhatikan bahwa findperintah ini mungkin akan memakan waktu beberapa menit untuk selesai. Untuk mempercepatnya, lepaskan semua sistem file yang Anda yakin tidak akan menemukan hit, seperti volume FAT atau NTFS.
  • Jika Anda mengakses volume FAT atau NTFS, nilai UID-nya ditentukan oleh opsi pada waktu pemasangan. Jika Anda menggunakan manajer file GUI, kemungkinan nilai UID diatur ke siapa pun yang menjalankan manajer file, jadi Anda tidak perlu melakukan apa pun yang istimewa. Namun, jika Anda memasang volume melalui /etc/fstabentri, Anda mungkin perlu menyesuaikan nilai UID yang ditentukannya.
  • Ubuntu menyimpan nilai minimum yang digunakan untuk UID di /etc/login.defs. Jika Anda gagal mengubah UID_MINnilai dalam file ini, Anda mungkin akan menemukan bahwa akun Anda tampaknya "menghilang" dari layar login GUI, dan mungkin dari beberapa sistem lain. Jadi, Anda harus mengedit file itu.

Secara teori, Anda dapat mengubah UID akun OS X Anda dengan cara yang sama untuk mencapai tujuan yang sama. Saya kurang terbiasa dengan alat pemeliharaan akun OS X, jadi saya tidak bisa memberikan instruksi eksplisit untuk melakukannya. Menyesuaikan nilai OS X akan memiliki keuntungan karena Anda tidak harus menyesuaikan UID_MINdi Linux.

Jika Anda memiliki beberapa akun di komputer Anda, Anda harus menyesuaikan semuanya untuk menjaga agar semuanya disinkronkan di seluruh instalasi OS Anda.

Satu hal lagi: Nilai Group ID (GID) disimpan dengan cara yang sama. IIRC, Ubuntu memberikan nilai GID untuk setiap akun yang identik dengan nilai UID-nya. Saya tidak ingat apa yang OS X lakukan secara default. Anda mungkin ingin menyesuaikan nilai GID untuk kedua OS dengan cara yang analog dengan perubahan UID, tetapi ini sepertinya tidak sepenting menyesuaikan nilai UID.

EDIT: Jika Anda ingin mengubah UID Anda (dan GID, jika diinginkan) di macOS / OS X daripada di Ubuntu, Anda dapat melakukannya. Karena modifikasi dalam macOS ini di luar cakupan situs ini, saya hanya akan menautkan ke beberapa halaman yang menyediakan prosedur untuk melakukan ini di macOS:


Wow Terimakasih! Ini adalah jawaban komprehensif yang ditulis dengan sangat baik - menjelaskan konteks penuh masalah! Solusi ini membantu saya mendapatkan partisi bersama yang sempurna tanpa membuat kompromi. Pada awalnya masih ada masalah kepemilikan file: "mengabaikan kepemilikan volume ini" di OSX tidak akan memberi saya akses tulis ke file OSX yang baru dibuat ketika berjalan di bawah ubuntu (ikon kunci) dan sebaliknya. Jadi saya akhirnya membuat akun baru di ubuntu menggunakan nama pengguna yang sama seperti di OSX dan mengubah UID lagi.

Sekarang saya memiliki akses penuh dari kedua sistem operasi untuk file yang ada dan yang baru dibuat tanpa harus mengubah batasan akses. Karena ini adalah jawaban teladan, saya akan memberi Anda hadiah begitu pertanyaannya memenuhi syarat untuk hadiah. ;-)

Setelah mengikuti instruksi Anda, saya mencoba masuk di ubuntu. Ketika saya menekan enter saya melihat layar hitam sebentar dan kemudian mendarat kembali di layar login. Setelah mengubah kembali apa pun ke standar 1000 dari akun temp saya, saya bisa masuk lagi. Tahu kenapa saya tidak bisa masuk dengan uid baru?
borisdiakur

Jika Anda lalai untuk mengubah izin pada direktori home Anda sendiri, itu bisa menjadi penyebab masalah. Jika Anda menggunakan 13.10, mungkin juga sesuatu di Ubuntu telah berubah yang menyebabkan masalah jika Anda tidak menyesuaikan UID_MIN.
Rod Smith

1
UPDATE: saya baru saja menggunakan sistem saya dan entah bagaimana izin direktori rumah saya tidak harus diubah !? Semuanya bekerja dengan baik setelah hanya usermod (sebagai root).
krumpelstiltskin

0

Saya telah menemukan bahwa kadang-kadang Anda dapat mengklik pada folder yang ingin Anda bagikan dan tekan perintah + I. Kemudian klik pada kunci dan masukkan kata sandi Anda jika tidak dibuka Selanjutnya, lalu di mana dikatakan "semua orang" pilih baca dan tulis.

Hal lain yang berfungsi adalah mengatur folder sebagai "folder bersama" yang dapat Anda lakukan di panel preferensi berbagi di preferensi sistem.
Buka preferensi sistem> berbagi> berbagi file. Kemudian buat bagikan bahwa kotak berbagi file dicentang dan tambahkan folder yang ingin Anda bagikan menggunakan tombol plus. Kemudian Anda dapat mengubah izin untuk membaca tulisan.

SATU CATATAN: menggunakan opsi kedua juga akan membuka komputer Anda untuk memungkinkan akses ke folder pilihan Anda melalui internet (hanya saat di-boot ke os x) !! Buat bagikan Anda memiliki kata sandi aman dan Anda mungkin menonaktifkannya di tempat-tempat umum (jangan lupa ambil topi timah Anda!)


Ini berfungsi dalam kedua kasus, tetapi saya hanya akan menggunakan opsi pertama. Namun mengizinkan akses "semua orang" (yaitu izin 777) tampaknya terlalu radikal - atau bukan? Apakah ini aman?

1
Yah, itu tidak dianjurkan untuk dipastikan. "Semua orang" akan dapat memodifikasi dan membaca dokumen dengan izin-izin itu (tapi saya pikir ini adalah hal-hal yang unix). Pasti sedikit lebih aman untuk digunakan 774.
edwin

0

Buka terminal dan:

Di OS X, coba ini

sudo dscl / -create /Users/<ubuntu-username>
sudo dscl / -append /Groups/<os-x-username> GroupMembership <ubuntu-username>

Di Ubuntu, jalankan ini

sudo adduser --system --no-create-home --ingroup <ubuntu-username> <os-x-username>

Sekarang Anda harus dapat menggunakan 774atau bahkan 770untuk izin file.


Ini tidak berhasil. Perintah OSX juga tidak berfungsi. Tapi saya sudah berhasil menambahkan pengguna ubuntu melalui antarmuka GUI di OSX. Setelah menambahkan pengguna OS lain ke OS yang sedang berjalan dan mengubah izin menjadi 774 di kedua sistem operasi, Ubuntu masih belum bisa mendapatkan akses penuh ke semua file di partisi bersama. Beberapa sub direktori misalnya saya tidak bisa buka (izin 774). Jadi saya harus mengubahnya ke 777 untuk membukanya. Apakah izin ramah ini aman?

Setidaknya di Ubuntu, perintah harus berfungsi saya sudah mencoba sendiri sebelum menambahkan jawabannya. Anda yakin diganti <ubuntu-username>dengan nama pengguna Anda yang sebenarnya di Ubuntu (idem for <os-x-usernanme>)? Dan bisakah Anda lebih spesifik tentang kesalahan apa yang diberikan OS X saat mencoba menjalankan perintah ini?
edwin

Saya hanya mengatakan bahwa perintah itu tidak berfungsi di OSX. Jika saya ingat dengan benar, perintah adduseritu tidak keluar.

Saya telah mengedit jawaban untuk ini. Cobalah. Saya tidak yakin karena saya tidak terbiasa dengan manajemen pengguna OS X. Di OS X, Anda juga bisa menggunakan GUI untuk membuat pengguna Ubuntu (dengan nama pengguna yang Anda gunakan di Ubuntu) dan kemudian menambahkannya ke grup pengguna OS X Anda yang sebenarnya.
edwin

Tidak masalah. OSX menawarkan GUI sederhana saat menggunakan CMD + I di mana Anda dapat membuat dan menambahkan pengguna dengan sangat mudah. Tapi ini tidak menyelesaikan masalah. Saya akhirnya menggunakan 777 izin.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.