Sistem pengendalian Linux ialah sistem pengendalian sumber terbuka yang digunakan secara meluas pada pelbagai peranti seperti pelayan dan komputer peribadi. Apabila menggunakan Linux, anda sering menghadapi pengecualian "Kebenaran Ditolak". Artikel ini akan meneroka punca pengecualian ini dan memberikan contoh kod khusus.
Setiap fail dan direktori dalam Linux mempunyai tetapan kebenaran yang sepadan untuk mengawal kebenaran membaca, menulis dan melaksanakan pengguna. Kebenaran dibahagikan kepada tiga peringkat: kebenaran pengguna, kebenaran kumpulan dan kebenaran pengguna lain. Apabila pengguna cuba melakukan operasi tetapi tidak mempunyai kebenaran yang mencukupi, sistem membuang pengecualian "Kebenaran Ditolak".
Jadi apakah sebab pengecualian "Kebenaran Ditolak"? Mari analisa beberapa situasi biasa.
Apabila tetapan kebenaran fail atau direktori tidak membenarkan pengguna semasa melakukan operasi tertentu, pengecualian yang ditolak kebenaran akan berlaku. Sebagai contoh, jika kami cuba memadam fail yang hanya pengguna root mempunyai kebenaran untuk memadam, sistem akan melaporkan ralat.
Kod sampel:
$ rm /root/important_file rm: cannot remove '/root/important_file': Permission denied
Sesetengah program memerlukan pengguna root untuk dijalankan dengan jayanya, dan apabila pengguna semasa tidak mempunyai kebenaran yang mencukupi, pengecualian "Kebenaran Ditolak" juga akan dilaporkan. Sebagai contoh, jika kita cuba mengubah suai fail konfigurasi sistem tertentu, kita perlu menjalankan editor sebagai pengguna akar, tetapi jika pengguna semasa ialah pengguna biasa, ralat akan dilaporkan.
Kod sampel:
$ vi /etc/ssh/sshd_config E212: Can't open file for writing
Apabila sistem fail di mana fail atau direktori terletak dipasang dalam mod baca sahaja, tiada apa yang boleh dilakukan pada operasi menulis sistem fail. Apabila cuba menulis, sistem akan membuang pengecualian "Kebenaran Ditolak".
Kod contoh:
$ touch /mnt/readonly/file.txt touch: cannot touch '/mnt/readonly/file.txt': Read-only file system
Kadangkala, pengecualian kebenaran mungkin disebabkan oleh pengguna tidak mempunyai kebenaran untuk mengakses direktori induk. Sebagai contoh, jika pengguna cuba mengakses direktori tetapi tidak mempunyai kebenaran untuk mengakses direktori induk direktori, sistem akan melaporkan ralat.
Kod sampel:
$ cd /root/important_directory -bash: cd: /root/important_directory: Permission denied
Dalam sistem Linux, sesetengah sumber hanya boleh digunakan oleh satu proses pada masa yang sama. Apabila proses lain telah mengunci sumber, proses lain tidak akan dapat mendapatkan hak akses kepada sumber dan akan melaporkan ralat.
Kod sampel:
$ echo "data" > /var/lockfile -bash: /var/lockfile: Permission denied
Di atas adalah beberapa punca biasa pengecualian "Kebenaran Ditolak" Apabila kami menghadapi pengecualian ini, kami boleh mengambil penyelesaian yang sepadan mengikut situasi tertentu:
Ringkasnya, pengecualian "Kebenaran Ditolak" biasanya disebabkan oleh kebenaran pengguna yang tidak mencukupi Kami hanya perlu membuat pelarasan yang sepadan mengikut situasi khusus untuk menyelesaikan masalah. Dengan memahami sebab biasa ini dan menganalisis contoh kod, kami boleh memahami dan mengendalikan pengecualian kebenaran yang berlaku dalam sistem pengendalian Linux dengan lebih baik.
Atas ialah kandungan terperinci Sebab untuk kebenaran Linux dinafikan pengecualian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!