GNU/Linux >> Belajar Linux >  >> Linux

Daftar kontrol akses dan drive eksternal di Linux:Apa yang perlu Anda ketahui

Meskipun penyimpanan cloud menawarkan banyak keuntungan, tidak ada yang lebih baik daripada memiliki data Anda di hard drive fisik. Saat Anda menyimpan data ke drive, Anda tahu persis di mana data Anda berada, dan selalu tersedia saat Anda membutuhkannya. Saat Anda menyimpan data ke drive portabel eksternal seperti USB thumb drive, itu bahkan lebih baik—Anda tidak hanya tahu di mana data Anda berada, tetapi Anda juga dapat membawa data ke mana pun Anda pergi. Jika Anda baru mengenal Linux, atau Anda mencoba menggunakan sistem file Linux di drive eksternal, Anda mungkin menemukan drive eksternal membingungkan, rentan terhadap kesalahan izin atau konflik, atau bahkan kehilangan metadata.

Ada dua jawaban "benar" untuk ini:

ExFAT

Sebelumnya, ExFAT adalah sistem file yang penuh dengan ancaman hukum dari Microsoft karena mereka memiliki kode tersebut. Mereka telah menggugat perusahaan dan organisasi sebelumnya untuk mempertahankan kepemilikan mereka atas FAT, sehingga umumnya dikhawatirkan mereka dapat melakukan hal yang sama terhadap ExFAT. Namun, baru-baru ini. Microsoft membuat spesifikasi untuk ExFAT open source. Sayangnya, mereka tidak menyediakan driver, tetapi sudah ada drive untuk membuatnya berfungsi di Linux, dan, sekarang setelah pengembang memiliki akses ke spesifikasi lengkap, peningkatan tidak dapat dihindari.

Keuntungan ExFAT adalah lintas platform (Windows, Mac, dan banyak perangkat portabel menggunakannya), dan dirancang tanpa overhead izin file. Anda dapat melampirkan drive yang diformat sebagai ExFAT ke komputer mana pun, dan semua file tersedia untuk siapa saja. Baik atau buruknya tergantung pada kasus penggunaan Anda, tetapi untuk media portabel, seringkali itulah tujuannya.

Daftar kontrol akses (ACL)

Jika Anda lebih suka menggunakan sistem file Linux pada drive portabel Anda, maka Anda dapat melakukannya, tetapi untuk membuat berbagi file menjadi lancar, Anda harus menggunakan daftar kontrol akses (ACL).

Saat Anda membuat file atau direktori di drive, ada default di sistem Anda yang menentukan izin file apa yang didapatnya. Untuk sebagian besar kasus, default tersebut masuk akal—saat Anda membuat file di direktori home, Anda mungkin tidak ingin pengguna lain memiliki akses ke file tersebut. Namun, saat Anda membuat file di drive eksternal, kemungkinan besar itu karena Anda perlu berbagi file itu dengan orang lain (meskipun orang itu adalah Anda di komputer lain).

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Anda dapat mengganti izin default untuk melihat file dengan ACL, dan Anda dapat mengontrol mode pembuatan file default dengan menyetel bit yang lengket. ACL adalah lapisan kebijakan keamanan dalam atribut direktori dan file yang diperluas. Ini memungkinkan Anda untuk menentukan pengecualian untuk apa yang ditunjukkan oleh izin sistem file. Terutama, ini memungkinkan Anda untuk melampaui model pemilik tunggal dan grup tunggal dari izin UNIX tradisional.

Misalnya, saat set (ID 1000) akun mungkin memiliki direktori yang dibuat di desktop saya, set (ID 500) di laptop saya tidak, karena ID pengguna berbeda.

Hal yang sama bisa berlaku untuk sebuah grup. Jika direktori dengan ID grup 1000 ditetapkan ke direktori di satu komputer, maka grup dengan ID 500 atau 10922 tidak memiliki akses ke direktori tersebut di komputer lain. Tetapi ACL dapat menambahkan pemilik dan grup sekunder ke direktori dan file.

Lihat ACL saat ini

Direktori dan file apa pun di sistem file Linux yang umum memiliki aturan ACL secara default. Mereka disimpan dalam atribut yang diperluas, semacam metadata yang biasanya tidak Anda lihat.

Anda dapat melihatnya di terminal:

$ getfacl ./example
# file: /run/media/drive/example
# owner: seth
# group: users
user::rwx
group::rwx
other::r--

Baris yang dikomentari hanya untuk referensi Anda; mereka memberi tahu Anda jalur, dan pemilik dan grup, dari file atau direktori yang Anda lihat informasinya. Baris berikutnya menampilkan aturan yang diterapkan ke file atau direktori. Dalam contoh ini, izin pengguna disetel ke rwx , grup ke r-x , dan lainnya ke r-x . Izin ini dicerminkan oleh daftar sistem file normal:

$ ls -lA /run/media/drive
drwxrwxr-- 26 seth users 4096 Jan 16 21:04 example
$ id
uid=1000(seth) gid=100(users) groups=100(users)...

Selama pengguna set (UID 1000) atau anggota grup (GID 100) berinteraksi dengan contoh direktori, akses penuh diberikan. Namun, akun lain hanya membaca (r ) izin.

Menyetel ACL

Untuk memodifikasi ACL, Anda menggunakan setfacl perintah atau gunakan pengelola file dengan dukungan ACL. Anda bisa sangat spesifik atau sangat umum saat menyetel ACL Anda.

Untuk hanya mengubah pengaturan izin sistem file, Anda dapat menggunakan chmod atau setfacl . Ini adalah pengaturan ACL yang sangat umum karena Anda tidak menambahkan apa pun ke izin yang sudah tersedia untuk UNIX dari spesifikasi sistem file.

$ setfacl --modify g::r example
$ getfacl ./example | grep "group::"
group::r--
$ ls -l . | grep example
drwxr--r-- 26 seth users 4096 Jan 16 21:04 example

Efek yang sama tersedia melalui chmod :

$ chmod g+x example
$ getfacl ./example | grep "group::"
group::r-x
$ ls -l . | grep example
drwxr-xr-- 26 seth users 4096 Jan 16 21:04 example

Menambahkan pengguna dan grup

Untuk benar-benar mendapat manfaat dari ACL adalah menggunakannya untuk izin di luar lingkup izin UNIX asli. Jika saya masuk ke desktop saya sebagai seth dengan ID pengguna 1000, dan saya tahu bahwa direktori pada drive portabel saya harus dapat digunakan oleh seth dengan ID 500 di laptop saya, maka cukup deklarasikan seth sebagai pemilik tidak cukup karena ID pengguna tidak sama.

Anda dapat menambahkan pengguna atau ID pengguna ke daftar kontrol akses:

$ setfacl --modify u:500:rwx example
$ getfacl example
# file: /run/media/drive/example
# owner: seth
# group: users
user::rwx
user:500:rwx
[...]

Entri baru, khusus untuk ID pengguna 500, telah ditambahkan ke daftar. Memasang drive ke komputer Linux atau UNIX lain sekarang memungkinkan pengguna dengan ID 500 untuk mengakses contoh folder.

Anda juga dapat menambahkan pengguna menurut nama akun, atau grup dengan nama grup atau ID grup. ID adalah apa yang benar-benar diperhitungkan dengan izin, jadi jika Anda berada di lingkungan campuran (server RHEL dan klien Dasar, misalnya), Anda harus memverifikasi ID pengguna dan ID grup yang bersembunyi di balik akun yang tampaknya, di permukaan, identik.

Menyetel aturan ACL default

Jika Anda memperlakukan kontrol akses sebagai pengaturan satu kali, Anda akan segera mengalami masalah setelah akun pengguna yang berbeda mulai membuat file dan direktori. Setiap file atau direktori baru yang dibuat oleh setiap pengguna mewarisi izin default sistem (dan ACL). Ini berarti bahwa sekali pengguna laptop menyetel dengan ID 500 membuat file dalam direktori, itu bisa terlarang untuk pengguna desktop seth dengan ID 1000 karena pemilik file diatur ke UID 500.

ACL default dapat diterapkan ke direktori sehingga file dan subdirektori yang dibuat di dalamnya mewarisi ACL induk. Anda dapat menyetel ACL default direktori dengan –default pilihan:

$ setfacl --default --modify u:500:rwx example
$ setfacl --default --modify u:1000:rwx example
$ getfacl --omit-header example
user::rwx
user:500:rwx
group::rw-
mask::rwx
other::r-x
default:user::rwx
default:group::rw-
default:group:500:rwx
default:group:1000:rwx
default:mask::rwx
default:other::r-x

Saat pengguna membuat direktori baru dalam contoh direktori, ACL yang diwarisi sama dengan induknya:

$ cd example
$ mkdir penguins
$ getfacl --omit-header penguins
user::rwx
group::rw-
group:500:rwx
group:1000:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::rw-
default:group:500:rwx
default:group:1000:rwx
default:mask::rwx
default:other::r-x

Ini berarti bahwa setiap direktori atau file yang dibuat mewarisi ACL yang sama, sehingga pengguna 500 atau 1000 tidak pernah dikecualikan dari akses.

ACL pragmatis untuk drive eksternal

Saat menggunakan sistem file Linux untuk drive eksternal, metode mudah untuk memastikannya berfungsi dengan semua pengguna yang berharap menggunakan drive portabel adalah dengan menyetel ACL pada satu direktori tingkat atas.

Misalnya, anggap Anda telah memformat drive USB bernama mydrive sebagai sistem file ext4. Anda ingin akun di laptop dan desktop Anda, serta rekan kerja Anda, Alice, dapat mengakses file tersebut.

Pertama, buat direktori di tingkat atas drive:

$ mkdir /mnt/mydrive/umbrella

Kemudian terapkan ACL ke direktori tingkat atas untuk memberikan akses pengguna yang sangat penting:

$ setfacl --modify \
  u:500:rwx,u:1000:rwx,u:alice:rwx \
  /mnt/mydrive/umbrella

Terakhir, terapkan ACL default sehingga semua direktori dan file dibuat dalam payung direktori tingkat atas. mewarisi ACL default yang sama (perhatikan bahwa perintah ini menggunakan versi pendek –modify ):

$ setfacl --default -m u:500:rwx,u:1000:rwx,u:alice:rwx \
  /mnt/mydrive/umbrella

Menerapkan default ke sistem yang ada

Jika Anda perlu menerapkan pengaturan ACL ke banyak file yang sudah ada, Anda dapat melakukannya dengan temukan perintah.

Pertama, temukan semua direktori dan terapkan aturan ACL:

$ find /mnt/mydrive/umbrella -type d | \
  parallel --max-args=6 setfacl \
  --default -m u:500:rwx,u:1000:rwx,u:alice:rwx

Tidaklah bijaksana untuk menyetel semua izin file secara sembarangan agar dapat dieksekusi, jadi selanjutnya, temukan semua file dan setel izin ke re . File yang memerlukan bit yang dapat dieksekusi dapat diatur secara manual atau dengan ekstensi file:

$ find /mnt/mydrive/umbrella -type f | \
  parallel --max-args=6 setfacl \
  --default -m u:500:rw,u:1000:rw,u:alice:rw

Sesuaikan logika perintah ini agar sesuai dengan kebutuhan pribadi Anda (jangan jalankan perintah yang menghapus bit yang dapat dieksekusi pada /usr , misalnya, atau pada direktori yang hanya berisi program yang dapat dieksekusi).

Drive eksternal

Jangan biarkan kebingungan seputar drive eksternal di Linux mendapatkan yang terbaik dari Anda, dan jangan membatasi diri Anda pada izin UNIX tradisional. Gunakan daftar kontrol akses untuk bekerja untuk Anda, dan jangan ragu untuk menggunakan sistem file Linux terjurnal asli di drive portabel Anda.


Linux
  1. 10 perintah dasar Linux yang perlu Anda ketahui

  2. Pengantar Daftar Kontrol Akses Linux (ACL)

  3. Apa itu NFS dan bagaimana cara menginstalnya di Linux

  1. Cara Mengonfigurasi ACL (Access Control Lists) di Sistem File Linux

  2. UNIX/Linux :Dasar-dasar daftar kontrol akses (ACL)

  3. Peran apa yang dimainkan DAC (izin file), ACL dan MAC (SELinux) dalam keamanan file Linux?

  1. Firewall Linux:Apa yang perlu Anda ketahui tentang iptables dan firewalld

  2. Perintah File Linux:Apa Fungsinya dan Bagaimana Cara Menggunakannya

  3. Kompresi File Linux:Semua yang Perlu Anda Ketahui