Linux команда chmod - команда изменения прав доступа.
Isi kandungan:
- Kebenaran Fail Linux
- Menggunakan
chmod - Kaedah simbolik (Teks)
- Kaedah Numerik
- Menggunakan Fail Rujukan
- Secara Rekursif Tukar Kebenaran Fail
- Mengendalikan Pautan Simbolik
- Menukar Kebenaran Fail dalam Bulk
- Kesimpulannya
Di Linux, akses ke fail diuruskan melalui kebenaran fail, atribut, dan pemilikan. Ini memastikan bahawa hanya pengguna dan proses yang dibenarkan boleh mengakses fail dan direktori.
Tutorial ini merangkumi cara menggunakan perintah
chmod
untuk menukar kebenaran akses fail dan direktori.
Kebenaran Fail Linux
Sebelum meneruskan, mari kita jelaskan model kebenaran asas Linux.
Di Linux, setiap fail dikaitkan dengan pemilik dan kumpulan dan diberikan hak akses kebenaran untuk tiga kelas pengguna yang berbeza:
- Pemilik fail. Anggota kumpulan. Lebih-lebih lagi (orang lain).
Pemilikan fail boleh diubah menggunakan perintah
chown
dan
chgrp
.
Terdapat tiga jenis kebenaran fail yang digunakan untuk setiap kelas:
- Kebenaran membaca. Menulis kebenaran. Laksanakan izin.
Konsep ini membolehkan anda menentukan pengguna mana yang dibenarkan untuk membaca fail, menulis ke fail, atau melaksanakan fail.
Kebenaran fail boleh dilihat menggunakan arahan
ls
:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type
Watak pertama menunjukkan jenis fail. Ia boleh menjadi fail biasa (
-
), direktori (
d
), pautan simbolik (
l
), atau sebarang jenis fail khas yang lain.
Sembilan aksara seterusnya mewakili kebenaran fail, tiga tiga kali ganda daripada tiga aksara setiap satu. Triplet pertama menunjukkan keizinan pemilik, keizinan kumpulan kedua, dan triplet terakhir menunjukkan semua orang keizinan. Kebenaran boleh mempunyai makna yang berbeza bergantung pada jenis fail.
Dalam contoh di atas (
rw-r--r--
) bermakna pemilik fail telah membaca dan menulis kebenaran (
rw-
), kumpulan dan yang lain hanya membaca kebenaran (
r--
).
Setiap satu daripada tiga helai kebenaran boleh dibina dari aksara berikut dan mempunyai kesan yang berbeza, bergantung kepada sama ada ia ditetapkan ke fail atau ke direktori:
Kesan Kebenaran pada Fail
| Kebenaran | Watak | Makna pada Fail |
|---|---|---|
| Baca |
-
|
Fail tidak boleh dibaca. Anda tidak boleh melihat kandungan fail. |
r
|
Fail boleh dibaca. | |
| Tulis |
-
|
Fail tidak boleh diubah atau diubah suai. |
w
|
Fail boleh diubah atau diubah suai. | |
| Jalankan |
-
|
Fail tidak dapat dilaksanakan. |
x
|
Fail boleh dilaksanakan. | |
s
|
Sekiranya terdapat dalam triplet
user
ia menetapkan bit
setuid
. Sekiranya terdapat dalam triplet
group
, ia menetapkan bit
setgid
. Ia juga bermaksud bahawa bendera
x
ditetapkan.
Apabila bendera
|
|
S
|
Sama seperti
s
tetapi bendera
x
tidak ditetapkan. Bendera ini jarang digunakan pada fail. |
|
t
|
Sekiranya terdapat di triplets yang
others
ia menetapkan sedikit
sticky
.
Ia juga bermaksud bahawa bendera
|
|
T
|
Sama seperti
t
tetapi bendera
x
tidak ditetapkan. Bendera ini tidak berguna pada fail. |
Kesan Kebenaran pada Direktori (Folder)
Di Linux, Direktori adalah jenis khas fail yang mengandungi fail dan direktori lain.
| Kebenaran | Watak | Makna di Direktori |
|---|---|---|
| Baca |
-
|
Kandungan direktori tidak dapat ditunjukkan. |
r
|
Kandungan direktori boleh ditunjukkan.
(cth. Anda boleh menyenaraikan fail di dalam direktori dengan
|
|
| Tulis |
-
|
Kandungan direktori tidak boleh diubah. |
w
|
Kandungan direktori boleh diubah.
(contohnya Anda tidak boleh membuat fail baru, padam fail.. etc) |
|
| Jalankan |
-
|
Direktori ini tidak boleh ditukar kepada. |
x
|
Direktori ini boleh dilayari menggunakan
cd
. |
|
s
|
Sekiranya terdapat dalam triplet
user
, ia menetapkan bit
setuid
. Sekiranya terdapat dalam triplet
group
ia menetapkan bit
setgid
. Ia juga bermaksud bahawa bendera
x
ditetapkan. Apabila bendera
setgid
ditetapkan pada direktori, fail-fail baru yang dibuat di dalamnya mewarisi kumpulan ID direktori (GID), dan bukannya ID kumpulan utama pengguna yang membuat fail tersebut.
|
|
S
|
Sama seperti
s
tetapi bendera
x
tidak ditetapkan. Bendera ini tidak berguna pada direktori. |
|
t
|
Sekiranya terdapat di triplets yang
others
ia menetapkan sedikit
sticky
.
Ia juga bermaksud bahawa bendera
|
|
T
|
Sama seperti
t
tetapi bendera
x
tidak ditetapkan. Bendera ini tidak berguna pada direktori. |
Menggunakan
chmod
Perintah
chmod
mengambil bentuk umum berikut:
chmod MODE FILE…
Perintah
chmod
membolehkan anda menukar keizinan pada fail menggunakan mod simbolik atau angka atau fail rujukan. Kami akan menerangkan mod lebih terperinci kemudian. Perintah itu boleh menerima satu atau lebih fail dan / atau direktori yang dipisahkan oleh ruang sebagai argumen.
Hanya root, pemilik fail atau pengguna dengan hak istimewa sudo boleh menukar keizinan fail. Lebih berhati-hati apabila menggunakan
chmod
, terutamanya apabila menukar kebenaran secara rekursif.
Kaedah simbolik (Teks)
Sintaks perintah
chmod
apabila menggunakan mod simbolik mempunyai format berikut:
chmod perms… FILE…
Set pertama bendera (
), bendera pengguna, mendefinisikan kelas pengguna yang keizinan ke fail diubah.
-
u- Pemilik fail.g- Pengguna yang menjadi ahli kumpulan.o- Semua pengguna lain.a- Semua pengguna, sama denganugo.
Jika bendera pengguna diabaikan, satu lalai adalah dan kebenaran yang ditetapkan oleh umask tidak terjejas.
Set kedua bendera (
), bendera operasi, menentukan sama ada keizinan itu akan dialih keluar, ditambah atau ditetapkan:
-
-Menghapuskan kebenaran yang ditentukan.+Menambah keizinan yang ditentukan.=Perubahan keizinan semasa ke kebenaran yang ditentukan. Sekiranya tiada keizinan ditentukan selepas simbol=semua izin daripada kelas pengguna yang ditentukan akan dikeluarkan.
Kebenaran (
perms…
) boleh ditetapkan secara eksplisit menggunakan sifar atau satu atau lebih huruf berikut:
r
,
w
,
x
,
X
,
s
, dan
t
. Gunakan satu huruf dari set
u
,
g
, dan
o
apabila menyalin kebenaran daripada satu kepada kelas pengguna lain.
Apabila menetapkan keizinan untuk lebih daripada satu kelas pengguna (
), gunakan koma (tanpa ruang) untuk memisahkan mod simbolik.
Berikut adalah beberapa contoh bagaimana untuk menggunakan perintah
chmod
dalam mod simbolik:
-
Berikan ahli-ahli keizinan kumpulan untuk membaca fail tersebut, tetapi tidak menulis dan melaksanakannya:
chmod g=r filenameKeluarkan kebenaran pelaksanaan untuk semua pengguna:
chmod ax filenameMengeluarkan kebenaran menulis secara berulang untuk pengguna lain:
chmod -R ow dirnameKeluarkan kebenaran baca, tulis dan laksanakan untuk semua pengguna kecuali pemilik fail:
chmod og-rwx filenamePerkara yang sama juga boleh dilakukan dengan menggunakan borang berikut:
chmod og= filenameBeri baca, tulis dan laksanakan kebenaran kepada pemilik fail tersebut, baca keizinan pada kumpulan fail dan tidak ada kebenaran kepada semua pengguna lain:
chmod u=rwx, g=r, o= filenameTambah keizinan pemilik fail kepada kebenaran yang ahli mempunyai kumpulan fail:
chmod g+u filenameTambah sedikit melekat pada direktori yang diberikan:
chmod o+t dirname
Kaedah Numerik
Sintaks perintah
chmod
apabila menggunakan kaedah angka mempunyai format berikut:
chmod NUMBER FILE…
Apabila menggunakan mod angka, anda boleh menetapkan keizinan untuk ketiga-tiga kelas pengguna (pemilik, kumpulan, dan semua yang lain) pada masa yang sama.
NUMBER
boleh menjadi nombor 3 atau 4 digit.
Apabila nombor 3 digit digunakan, angka pertama mewakili kebenaran pemilik fail, yang kedua dari kumpulan fail dan yang terakhir semua pengguna lain.
Setiap menulis, membaca, dan melaksanakan keizinan mempunyai nilai nombor berikut:
-
r(dibaca) = 4w(tulis) = 2x(jalankan) = 1 tidak ada izin = 0
Nombor kebenaran kelas pengguna tertentu diwakili oleh jumlah nilai kebenaran untuk kumpulan itu.
Untuk mengetahui keizinan fail dalam mod angka hanya mengira jumlah untuk semua kelas pengguna. Sebagai contoh, untuk memberi kebenaran membaca, menulis dan melaksanakan pemilik fail, baca dan laksanakan kebenaran ke kumpulan fail dan hanya baca kebenaran kepada semua pengguna lain yang akan anda lakukan sebagai berikut:
- Pemilik: rwx = 4 + 2 + 1 = 7Group: rx = 4 + 0 + 1 = 5Orang: rx = 4 + 0 + 0 = 4
Dengan menggunakan kaedah di atas, kita dapat mencapai nombor
754
, yang mewakili keizinan yang diingini.
Untuk menubuhkan
setuid
,
setgid
dan bendera
sticky bit
menggunakan empat nombor digit.
Apabila nombor 4 digit digunakan, digit pertama mempunyai makna yang berikut:
- setuid = 4setgid = 2sticky = 1ntuk berubah = 0
Tiga digit seterusnya mempunyai makna yang sama seperti apabila menggunakan 3 nombor digit.
Jika digit pertama adalah 0, ia boleh ditinggalkan, dan mod boleh diwakili dengan 3 digit. Mod angka
0755
adalah sama dengan
755
.
Untuk mengira mod angka anda juga boleh menggunakan kaedah lain (kaedah binari), tetapi ia agak rumit. Mengetahui cara mengira mod angka menggunakan 4, 2, dan 1 adalah mencukupi untuk kebanyakan pengguna.
Anda boleh menyemak keizinan fail dalam notasi angka menggunakan perintah
stat
:
stat -c "%a" filename
644
Berikut adalah beberapa contoh bagaimana untuk menggunakan perintah
chmod
dalam mod angka:
-
Berikan pemilik fail membaca dan menulis kebenaran dan hanya membaca kebenaran kepada ahli kumpulan dan semua pengguna lain:
chmod 644 dirnameBeri pemilik fail membaca, menulis dan melaksanakan kebenaran, baca dan laksanakan kebenaran kepada ahli kumpulan dan tidak ada kebenaran kepada semua pengguna lain:
chmod 750 dirnameBerikan baca, tulis, dan laksanakan kebenaran, dan sedikit melekat pada direktori yang diberikan:
chmod 1777 dirnameSecara rawak set baca, tulis, dan laksanakan kebenaran kepada pemilik fail dan tidak ada kebenaran untuk semua pengguna lain pada direktori tertentu:
chmod -R 700 dirname
Menggunakan Fail Rujukan
- Pilihan
--reference=ref_file
pilihan
--reference=ref_file
membolehkan anda untuk menetapkan keizinan fail untuk menjadi sama seperti fail rujukan tertentu (
ref_file
).
chmod --reference=REF_FILE FILE
Sebagai contoh, arahan berikut akan memberikan kebenaran
file1
ke
file2
Secara Rekursif Tukar Kebenaran Fail
Untuk beroperasi secara
--recursive
pada semua fail dan direktori di bawah direktori yang diberikan, gunakan pilihan
-R
(-
--recursive
):
chmod -R MODE DIRECTORY
Sebagai contoh, untuk menukar keizinan semua fail dan subdirektori di bawah direktori
/var/www
kepada
755
anda akan menggunakan:
Mengendalikan Pautan Simbolik
Pautan simbolik sentiasa mempunyai
777
kebenaran.
Secara lalai, apabila menukar keizinan symlink,
chmod
akan menukar keizinan pada fail yang ditunjuk pautan.
chmod 755 symlink
Kebarangkalian bahawa bukannya menukar pemilikan sasaran, anda akan mendapat "symlink" tidak dapat mengakses 'Permissions denied'.
Ralat berlaku kerana secara lalai pada kebanyakan symlinks distribusi Linux dilindungi, dan anda tidak boleh beroperasi pada fail sasaran. Pilihan ini dinyatakan dalam
/proc/sys/fs/protected_symlinks
.
1
bermakna diaktifkan dan
0
orang kurang upaya. Adalah disyorkan untuk tidak melumpuhkan perlindungan symlink.
Menukar Kebenaran Fail dalam Bulk
Kadang-kadang terdapat situasi di mana anda perlu menukar fail dan kebenaran direktori secara pukal.
Senario yang paling biasa ialah mengubah rekod fail laman web secara rekursif kepada
644
dan keizinan direktori kepada
755
.
Menggunakan kaedah angka:
find /var/www/my_website -type d -exec chmod 755 {} ;
find /var/www/my_website -type f -exec chmod 644 {} ;
Menggunakan kaedah simbolik:
find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ;
find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;
Perintah
find
akan mencari fail dan direktori di bawah
/var/www/my_website
dan lulus setiap fail dan direktori yang terdapat pada perintah
chmod
untuk menetapkan kebenaran.
Kesimpulannya
Perintah
chmod
mengubah keizinan fail. Kebenaran boleh ditetapkan menggunakan mod simbolik atau angka.
Untuk mengetahui lebih lanjut mengenai
chmod
lawati halaman lelaki chmod.
Fail fail explorer vs fail google pergi: menguruskan fail lebih baik
Bingung antara ES File Explorer dan Google Files Pergi untuk anda telefon Android? Baca perbandingan mendalam kami untuk mengetahui apl explorer fail yang lebih baik untuk anda.
Bagaimana hendak mengubah suai kebenaran fail di linux secara rekursif
Linux adalah sistem berbilang pengguna dan akses kepada fail dikawal melalui kebenaran fail, atribut, dan pemilikan. Dalam artikel ini, kami akan menerangkan cara menukar kebenaran fail dan direktori secara rekursif.
Perintah Grep dalam linux (cari teks dalam fail)
Grep adalah salah satu perintah yang paling kuat dan lazim digunakan di Linux. Grep mencari satu atau lebih fail input untuk baris yang sepadan dengan corak yang diberikan dan menulis setiap baris yang hampir sama dengan output standard.







