<Sebelumnya | Konten | Selanjutnya>
3.4.2. Alat-alatnya
3.4.2.1. Perintah chmod
Konsekuensi normal dari penerapan izin file yang ketat, dan terkadang mengganggu, adalah bahwa hak akses perlu diubah karena berbagai alasan. Kami menggunakan chmod perintah untuk melakukan ini, dan akhirnya ke chmod telah menjadi kata kerja bahasa Inggris yang hampir dapat diterima, yang berarti perubahan mode akses file. NS chmod perintah dapat digunakan dengan opsi alfanumerik atau numerik, apa pun yang paling Anda sukai.
Contoh di bawah ini menggunakan opsi alfanumerik untuk memecahkan masalah yang biasa terjadi pada pengguna baru:
asim:~> ./Halo
bash: ./hello: penerjemah buruk: Izin ditolak
asim:~> kucing halo
#! / bin / bash
gema "Halo, Dunia"
asim:~> ls -l halo
-rw-rw-r-- 1 asim asim 32 Jan 15 16:29 halo asim:~> chmod u+x halo
asim:~> ./Halo
Halo Dunia
asim:~> ls -l halo
-rwxrw-r-- 1 asim asim 32 Jan 15 16:29 halo*
asim:~> ./Halo
bash: ./hello: penerjemah buruk: Izin ditolak
asim:~> kucing halo
#! / bin / bash
gema "Halo, Dunia"
asim:~> ls -l halo
-rw-rw-r-- 1 asim asim 32 Jan 15 16:29 halo asim:~> chmod u+x halo
asim:~> ./Halo
Halo Dunia
asim:~> ls -l halo
-rwxrw-r-- 1 asim asim 32 Jan 15 16:29 halo*
The + dan - operator digunakan untuk memberikan atau menolak hak yang diberikan kepada kelompok tertentu. Kombinasi yang dipisahkan dengan koma diperbolehkan. Halaman Info dan manual berisi contoh yang berguna. Ini satu lagi, yang membuat file dari contoh sebelumnya menjadi file pribadi bagi pengguna asim:
asim:~> chmod u+rwx, go-rwx halo
asim:~> ls-l | halo | ||
-rwx------ | 1 asim | asim | 32 Jan 15 16:29 halo* |
Jenis masalah yang menghasilkan pesan kesalahan yang mengatakan bahwa izin ditolak di suatu tempat biasanya merupakan masalah dengan hak akses dalam banyak kasus. Juga, komentar seperti, "Ini berhasil kemarin," dan "Ketika saya menjalankan ini sebagai root, ini berfungsi," kemungkinan besar disebabkan oleh izin file yang salah.
Ketika menggunakan chmod dengan argumen numerik, nilai untuk setiap hak akses yang diberikan harus dihitung bersama per grup. Jadi kita mendapatkan angka 3 digit, yang merupakan nilai simbolis untuk pengaturan chmod harus membuat. Tabel berikut mencantumkan kombinasi yang paling umum:
Tabel 3-9. Proteksi file dengan chmod
perintah | Arti |
chmod 400 fillet | Untuk melindungi file dari penimpaan yang tidak disengaja. |
chmod 500 direktori | Untuk melindungi diri Anda dari penghapusan, penggantian nama, atau pemindahan file secara tidak sengaja dari direktori ini. |
chmod 600 fillet | File pribadi hanya dapat diubah oleh pengguna yang memasukkan perintah ini. |
chmod 644 fillet | File yang dapat dibaca publik yang hanya dapat diubah oleh pengguna yang menerbitkan. |
chmod 660 fillet | Pengguna yang tergabung dalam grup Anda dapat mengubah file ini, yang lain tidak memiliki akses sama sekali. |
chmod 700 fillet | Melindungi file dari akses apa pun dari pengguna lain, sementara pengguna yang menerbitkan masih memiliki akses penuh. |
chmod 755 direktori | Untuk file yang seharusnya dapat dibaca dan dieksekusi oleh orang lain, tetapi hanya dapat diubah oleh pengguna yang menerbitkan. |
chmod 775 fillet | Mode berbagi file standar untuk grup. |
chmod 777 fillet | Semua orang dapat melakukan segalanya untuk file ini. |
Jika Anda memasukkan angka dengan kurang dari tiga digit sebagai argumen untuk chmod, karakter yang dihilangkan diganti dengan nol mulai dari kiri. Sebenarnya ada digit keempat pada sistem Linux, yang mendahului tiga digit pertama dan mengatur mode akses khusus. Segala sesuatu tentang ini dan banyak lagi terletak di halaman Info.
3.4.2.2. Masuk ke grup lain
Saat Anda mengetik id pada baris perintah, Anda mendapatkan daftar semua grup yang mungkin Anda ikuti, didahului dengan nama pengguna dan ID Anda serta nama grup dan ID yang saat ini terhubung dengan Anda. Namun, pada banyak sistem Linux Anda hanya dapat secara aktif masuk ke satu grup pada satu waktu. Secara default, ini aktif atau kelompok utama adalah salah satu yang Anda dapatkan dari / etc / passwd mengajukan. Bidang keempat dari file ini menyimpan ID grup utama pengguna, yang dicari di / etc / group mengajukan. Sebuah contoh:
asim:~> id
uid=501(asim) gid=501(asim) groups=100(users),501(asim),3400(web)
asim:~> grep asim / etc / passwd
asim:x:501:501: Asim El Baraka:/home/asim:/bin/bash
asim:~> grep 501 / etc / group
asim:x:501:
asim:~> id
uid=501(asim) gid=501(asim) groups=100(users),501(asim),3400(web)
asim:~> grep asim / etc / passwd
asim:x:501:501: Asim El Baraka:/home/asim:/bin/bash
asim:~> grep 501 / etc / group
asim:x:501:
Bidang keempat di baris dari / etc / passwd berisi nilai "501", yang mewakili grup asim dalam contoh di atas. Dari / etc / group kita bisa mendapatkan nama yang cocok dengan ID grup ini. Saat awalnya terhubung ke sistem, ini adalah grup yang asim akan menjadi milik.
Skema grup pribadi pengguna
Untuk memungkinkan lebih banyak fleksibilitas, sebagian besar sistem Linux mengikuti apa yang disebut: skema grup pribadi pengguna, yang menetapkan setiap pengguna terutama ke grupnya sendiri. Grup ini adalah grup yang hanya berisi pengguna tertentu, oleh karena itu dinamakan "grup pribadi". Biasanya grup ini memiliki nama yang sama dengan nama login pengguna, yang dapat sedikit membingungkan.
Terlepas dari grup pribadinya sendiri, pengguna asim bisa juga di grup Pengguna dan jaringan. Karena ini adalah grup sekunder untuk pengguna ini, dia perlu menggunakan baru untuk masuk ke salah satu grup ini (gunakan gpasswd untuk mengatur kata sandi grup terlebih dahulu). Dalam contoh, asim perlu membuat file yang dimiliki oleh grup jaringan.
asim:/var/www/html> baru jaringan
asim:/var/www/html> id
uid=501(asim) gid=3400(web) groups=100(users),501(asim),3400(web)
asim:/var/www/html> baru jaringan
asim:/var/www/html> id
uid=501(asim) gid=3400(web) groups=100(users),501(asim),3400(web)
Ketika asim membuat file baru sekarang, mereka akan berada dalam kepemilikan grup dari grup jaringan bukannya dimiliki oleh grup asim:
asim:/var/www/html> tes sentuh
asim:/var/www/html> ls -l tes
-rw-rw-r-- 1 asim web 0 Jun 10 15:38 tes
asim:/var/www/html> tes sentuh
asim:/var/www/html> ls -l tes
-rw-rw-r-- 1 asim web 0 Jun 10 15:38 tes
Masuk ke grup baru mencegah Anda dari keharusan menggunakan chown (lihat Bagian 3.4.2.4) atau hubungi administrator sistem Anda untuk mengubah kepemilikan untuk Anda.
Lihat halaman manual untuk baru for more information.
3.4.2.3. topeng file
Ketika file baru disimpan di suatu tempat, pertama-tama akan dikenakan prosedur keamanan standar. File tanpa izin tidak ada di Linux. Izin file standar ditentukan oleh masker untuk pembuatan file baru. Nilai topeng ini dapat ditampilkan menggunakan umask perintah:
bert:~> umask
0002
bert:~> umask
0002
Alih-alih menambahkan nilai simbolik satu sama lain, seperti chmod, untuk menghitung izin pada file baru, izin tersebut harus dikurangi dari total kemungkinan hak akses. Dalam contoh di atas, bagaimanapun, kita melihat 4 nilai yang ditampilkan, namun hanya ada 3 kategori izin: pemakai, kelompok dan Lainnya. Nol pertama adalah bagian dari pengaturan atribut file khusus, yang akan kita bahas di Bagian 3.4.2.4 dan Bagian 4.1.6. Mungkin saja nol pertama ini tidak ditampilkan di sistem Anda saat memasuki umask perintah, dan Anda hanya melihat 3 angka yang mewakili topeng pembuatan file default.
Setiap sistem mirip UNIX memiliki fungsi sistem untuk membuat file baru, yang dipanggil setiap kali pengguna menggunakan program yang membuat file baru, misalnya, saat mengunduh file dari Internet, saat menyimpan dokumen teks baru, dan sebagainya. Fungsi ini membuat file baru dan direktori baru. Izin baca, tulis, dan eksekusi penuh diberikan kepada semua orang saat membuat direktori baru. Saat membuat file baru, fungsi ini akan memberikan izin baca dan tulis untuk semua orang, tetapi atur izin eksekusi ke none untuk semua kategori pengguna. Ini, sebelum topeng diterapkan, direktori memiliki izin 777 or rwxrwxrwx, file biasa 666 or RW-RW-RW-.
The umask nilai dikurangi dari izin default ini setelah fungsi membuat file atau direktori baru. Dengan demikian, sebuah direktori akan memiliki izin dari 775 secara default, sebuah file 664, jika nilai topengnya adalah (0) 002. Ini ditunjukkan dalam contoh di bawah ini:
bert:~> mkdir newdir
bert:~> ls -ld direktori baru
drwxrwxr-x 2 bert bert
4096 28 Feb 13:45 direktori baru/
bert:~> mkdir newdir
bert:~> ls -ld direktori baru
drwxrwxr-x 2 bert bert
bert:~> sentuh file baru
bert:~> ls -l file baru
-rw-rw-r-- 1 bert bert
0 Feb 28 13:52 file baru
bert:~> sentuh file baru
bert:~> ls -l file baru
-rw-rw-r-- 1 bert bert
File versus direktori
Direktori mendapat lebih banyak izin secara default: direktori selalu memiliki menjalankan izin. Jika tidak memiliki itu, itu tidak akan dapat diakses. Coba ini dengan chmodding direktori 644!
Jika Anda masuk ke grup lain menggunakan baru perintah, topeng tetap tidak berubah. Jadi, jika diatur ke 002, file dan direktori yang Anda buat saat berada di grup baru juga akan dapat diakses oleh anggota lain dari grup tersebut; Anda tidak harus menggunakan chmod.
The akar pengguna biasanya memiliki izin pembuatan file default yang lebih ketat:
[root@estoban root]#umask 022
[root@estoban root]#umask 022
Default ini diatur ke seluruh sistem dalam file konfigurasi sumber daya shell, misalnya / Etc / bashrc or
/etc/profil. Anda dapat mengubahnya di file konfigurasi shell Anda sendiri, lihat Bab 7 tentang menyesuaikan lingkungan shell Anda.
3.4.2.4. Mengubah kepemilikan pengguna dan grup
Ketika file dimiliki oleh pengguna atau grup yang salah, kesalahan dapat diperbaiki dengan chown (ganti pemilik) dan chgrp (ganti grup) perintah. Mengubah kepemilikan file adalah tugas administratif sistem yang sering terjadi di lingkungan di mana file perlu dibagikan dalam grup. Kedua perintah tersebut sangat fleksibel, karena Anda dapat mengetahuinya dengan menggunakan --membantu .
The chown perintah dapat diterapkan untuk mengubah kepemilikan file oleh pengguna dan grup, sementara chgrp hanya mengubah kepemilikan grup. Tentu saja sistem akan memeriksa apakah pengguna yang mengeluarkan salah satu dari perintah ini memiliki izin yang cukup pada file yang ingin dia ubah.
Untuk hanya mengubah kepemilikan file oleh pengguna, gunakan sintaks ini:
chown pengguna baru fillet
Jika Anda menggunakan titik dua setelah nama pengguna (lihat halaman Info), kepemilikan grup juga akan diubah, ke grup utama pengguna yang mengeluarkan perintah. Pada sistem Linux, setiap pengguna memiliki grupnya sendiri, jadi formulir ini dapat digunakan untuk membuat file menjadi pribadi:
jacky:~> id
uid=1304(jacky) gid=(1304) grup=1304(jacky),2034(pproyek)
jacky:~> ls -l laporan_saya
-rw-rw-r-- 1 proyek jacky 29387 15 Jan 09:34 my_report jacky:~> chown jacky: laporan_saya
jacky:~> chmod atau my_report
jacky:~> ls -l laporan_saya
-rw-rw---- 1 jacky jacky 29387 15 Jan 09:34 my_report
jacky:~> id
uid=1304(jacky) gid=(1304) grup=1304(jacky),2034(pproyek)
jacky:~> ls -l laporan_saya
-rw-rw-r-- 1 proyek jacky 29387 15 Jan 09:34 my_report jacky:~> chown jacky: laporan_saya
jacky:~> chmod atau my_report
jacky:~> ls -l laporan_saya
-rw-rw---- 1 jacky jacky 29387 15 Jan 09:34 my_report
If jacky ingin membagikan file ini, tanpa harus memberikan izin kepada semua orang untuk menulisnya, dia dapat menggunakan
perintah chgrp:
jacky:~> ls -l laporan-20020115.xls
-rw-rw---- 1 jacky jacky 45635 15 Jan 09:35 report-20020115.xls jacky:~> laporan proyek chgrp-20020115.xls
jacky:~> chmod o= laporan-20020115.xls
jacky:~> ls -l laporan-20020115.xls
-rw-rw---- 1 jacky project 45635 15 Jan 09:35 report-20020115.xls
jacky:~> ls -l laporan-20020115.xls
-rw-rw---- 1 jacky jacky 45635 15 Jan 09:35 report-20020115.xls jacky:~> laporan proyek chgrp-20020115.xls
jacky:~> chmod o= laporan-20020115.xls
jacky:~> ls -l laporan-20020115.xls
-rw-rw---- 1 jacky project 45635 15 Jan 09:35 report-20020115.xls
Dengan cara ini, pengguna dalam grup proyek akan dapat bekerja pada file ini. Pengguna yang tidak ada dalam grup ini sama sekali tidak memiliki urusan dengannya.
Kedua chown dan chgrp dapat digunakan untuk mengubah kepemilikan secara rekursif, menggunakan -R pilihan. Dalam hal ini, semua file dan subdirektori yang mendasari direktori tertentu akan menjadi milik pengguna dan/atau grup tertentu.
pembatasan
Pada kebanyakan sistem, penggunaan chown dan chgrp perintah dibatasi untuk pengguna yang tidak memiliki hak istimewa. Jika Anda bukan administrator sistem, Anda tidak dapat mengubah kepemilikan pengguna atau grup untuk alasan keamanan. Jika penggunaan perintah ini tidak dibatasi, pengguna jahat dapat menetapkan kepemilikan file ke pengguna dan/atau grup lain dan mengubah perilaku lingkungan pengguna tersebut dan bahkan menyebabkan kerusakan pada file pengguna lain.
3.4.2.5. Mode khusus
Agar admin sistem tidak direpotkan memecahkan masalah izin sepanjang waktu, hak akses khusus dapat diberikan ke seluruh direktori, atau ke program terpisah. Ada tiga mode khusus:
• Modus bit tetap: Setelah menjalankan suatu pekerjaan, perintah disimpan dalam memori sistem. Awalnya ini adalah fitur yang banyak digunakan untuk menghemat memori: pekerjaan besar dimuat ke dalam memori hanya sekali. Tetapi hari ini memori tidak mahal dan ada teknik yang lebih baik untuk mengelolanya, sehingga tidak digunakan lagi untuk mengoptimalkan kemampuan pada satu file. Ketika diterapkan ke seluruh direktori, bagaimanapun, bit yang lengket memiliki arti yang berbeda. Dalam hal ini, pengguna hanya dapat mengubah file di direktori ini jika dia adalah pengguna pemilik file atau jika file memiliki izin yang sesuai. Fitur ini digunakan pada direktori seperti
/ var / tmp, yang harus dapat diakses oleh semua orang, tetapi tidak sesuai bagi pengguna untuk mengubah atau menghapus data satu sama lain. Bit lengket ditunjukkan oleh t di akhir bidang izin file:
tandai:~> ls -ld /var/tmp
drwxrwxrwt 19 akar akar
8192 16 Jan 10:37 /var/tmp/
tandai:~> ls -ld /var/tmp
drwxrwxrwt 19 akar akar
Bit lengket diatur menggunakan perintah chmod o+t direktori. Asal bersejarah "t" ada di UNIX' simpan akses teks fitur.
• SUID (mengatur ID pengguna) dan SGID (mengatur ID grup): diwakili oleh karakter s di bidang izin pengguna atau grup. Ketika mode ini disetel pada file yang dapat dieksekusi, mode ini akan berjalan dengan izin pengguna dan grup pada file tersebut alih-alih dengan izin pengguna yang mengeluarkan perintah, sehingga memberikan akses ke sumber daya sistem. Kita akan membahas ini lebih lanjut di Bab 4.
• SGID (mengatur ID grup) pada direktori: dalam kasus khusus ini setiap file yang dibuat dalam direktori akan memiliki pemilik grup yang sama dengan direktori itu sendiri (sementara perilaku normalnya adalah file baru dimiliki oleh pengguna yang membuatnya). Dengan cara ini, pengguna tidak perlu khawatir tentang kepemilikan file saat berbagi direktori:
mimi:~> ls -ld /opt/docs
drwxrws--- 4 pengguna root
4096 25 Juli 2001 dokumen/
mimi:~> ls -ld /opt/docs
drwxrws--- 4 pengguna root
mimi:~> ls -l /opt/docs
-rw-rw---- 1 mimi pengguna
345672 30 Agustus 2001-Council.doc
mimi:~> ls -l /opt/docs
-rw-rw---- 1 mimi pengguna
Ini adalah cara standar untuk berbagi file di UNIX.
File yang ada dibiarkan tidak berubah!
File yang sedang dipindahkan ke direktori SGID tetapi dibuat di tempat lain tetap mempertahankan pengguna dan pemilik grup aslinya. Ini mungkin membingungkan.