Saya ingin mengubah izin folder dan semua sub folder dan file dalam satu langkah (perintah) di Linux.
Saya sudah mencoba perintah di bawah ini tetapi hanya berfungsi untuk folder yang disebutkan:
chmod 775 /opt/lampp/htdocs
Apakah ada cara untuk mengatur chmod 755
untuk /opt/lampp/htdocs
dan semua isinya termasuk subfolder dan file?
Juga, di masa depan, jika saya membuat folder atau file baru di dalam htdocs
, bagaimana izin itu secara otomatis diatur 755
?
Saya juga melihat tautan ini:
http://stackoverflow.com/questions/3740187/how-to-set-default-chmod-in-linux-terminal
linux
permissions
directory
chmod
Adam
sumber
sumber
chmod 75 /opt/lampp/htdocs
atau haruskah itu benar-benar terjadichmod 755 /opt/lampp/htdocs
?Jawaban:
Jawaban lainnya benar, karena
chmod -R 755
akan mengatur izin ini untuk semua file dan subfolder di pohon. Tetapi mengapa Anda mau ? Mungkin masuk akal untuk direktori, tetapi mengapa mengatur bit eksekusi pada semua file?Saya menduga apa yang benar-benar ingin Anda lakukan adalah mengatur direktori ke 755 dan meninggalkan file sendiri atau mengaturnya ke 644. Untuk ini, Anda dapat menggunakan
find
perintah. Sebagai contoh:Untuk mengubah semua direktori menjadi 755 (
drwxr-xr-x
):Untuk mengubah semua file ke 644 (
-rw-r--r--
):sumber
{} \;
di ujung telepon?chmod 644 {} \;
menentukan perintah yang akan dijalankan olehfind
untuk setiap file.{}
diganti oleh path file, dan tanda titik koma menunjukkan akhir perintah (lolos, jika tidak maka akan ditafsirkan oleh shell bukanfind
).Periksa opsi -R
chmod -R <permissionsettings> <dirname>
Di masa mendatang, Anda dapat menghemat banyak waktu dengan memeriksa halaman manual terlebih dahulu:
Jadi dalam hal ini:
sumber
man
?man
. Khusus untuk sesuatu seperti digrep
mana jika Anda baruman
mengenalnya, akan sangat memakan waktu untuk menemukan contoh dalam dokumen, namun Google atau SO memberikan contoh dalam hitungan detik.Jika Anda ingin mengatur izin untuk semua file
a+r
, dan semua direktoria+x
, dan melakukannya secara rekursif melalui pohon subdirektori lengkap, gunakan:The
X
(yaitu modalX
, tidak kecilx
!) Diabaikan untuk file (kecuali mereka yang dieksekusi untuk seseorang yang sudah) tapi digunakan untuk direktori.sumber
chmod
dokumen, di mana saya tahu saya bisa menggunakannyachmod -R g+wX .
. Bravo!x
file jika sudah memilikinya.Anda dapat menggunakan
-R
denganchmod
untuk traversal rekursif dari semua file dan subfolder.Anda mungkin perlu sudo karena tergantung pada LAMP yang diinstal oleh pengguna saat ini atau yang lain:
sumber
sudo chmod 755 -R /directory
tidak berhasil tetapisudo chmod -R 755 /directory
berhasil. Aneh. Omong-omong, saya menggunakan Mac os x.sudo chmod 755 -R
bekerjaPerintah rekursif yang benar adalah:
-R
: ubah setiap sub folder termasuk folder saat inisumber
Untuk mengatur ke semua subfolder (rekursif) gunakan -R
Dan gunakan umask untuk mengatur default ke folder baru / file cd / folder umask 755sumber
umask
755! Anda tidak akan dapat membuat daftar, membaca atau menggunakan file atau direktori yang Anda buat!λ ~ → umask 022 λ ~ → umask -S u=rwx,g=rx,o=rx λ ~ → umask 755 λ ~ → umask -S u=,g=w,o=w
chmod 755 -R /opt/lampp/htdocs
akan mengatur izin secara rekursif. Tidak ada cara untuk mengatur izin untuk file secara otomatis hanya dalam direktori ini yang dibuat setelah Anda mengatur izin, tetapi Anda dapat mengubah izin file default seluruh sistem Anda dengan dengan pengaturanumask 022
.sumber
inherit
bisa menjadi solusi untuk banyak kasus atau akankah ini bekerja dengan NTFS-3G secara eksklusif?myforlder
dari tempat lain (seperti PC) ke direktori target ini (di server) karena ia akan mencoba membuat folder baru di direktori target dengan namamyfolder
yang Anda tidak memiliki izin untuk melakukannya. Seperti yang saya milikiroot
, saya hanya menggunakanchown -R username:usergroup /directory
.Anda mungkin ingin mempertimbangkan jawaban yang diberikan oleh nik di superuser ini dan menggunakan "satu chmod" untuk semua file / folder seperti ini:
sumber
-exec
opsifind
untuk mengatasiArgument list too long
kesalahan.Menggunakan:
Namun, berhati-hatilah dengan itu. Ini benar-benar dapat melukai Anda jika Anda mengubah izin file / folder yang salah.
sumber
Berikut cara lain untuk mengatur direktori ke 775 dan file ke 664.
Mungkin terlihat panjang, tapi cukup keren karena tiga alasan:
man
halaman (lihat di bawah).Perhatikan bahwa saya belum mengkonfirmasi perbedaan kinerja (jika ada) antara solusi ini dan hanya menggunakan dua perintah find (seperti dalam solusi Peter Mortensen). Namun, melihat contoh serupa dalam manual ini menggembirakan.
Contoh dari
man find
halaman:Bersulang
sumber
chmod -R 755 directory_name
berfungsi, tetapi bagaimana Anda akan menyimpan file baru ke 755 juga? Izin file menjadi izin default.sumber
Untuk Mac OS X 10.7 (Lion), itu adalah:
Dan ya, seperti yang dikatakan semua orang lain, berhati-hatilah saat melakukan ini.
sumber
Anda ingin memastikan bahwa file dan direktori yang sesuai adalah chmod-ed / izin untuk mereka yang sesuai. Untuk semua direktori yang Anda inginkan
Dan untuk semua gambar, JavaScript, CSS, HTML ... yah, Anda seharusnya tidak mengeksekusinya. Jadi gunakan
Tetapi untuk semua kode logika (misalnya kode PHP), Anda harus mengatur izin agar pengguna tidak dapat melihat kode itu:
sumber
Saya pikir Adam bertanya bagaimana cara mengubah nilai umask untuk semua proses yang ingin beroperasi pada
/opt/lampp/htdocs
direktori.Mask mode pembuatan file pengguna (umask) digunakan untuk menentukan izin file untuk file yang baru dibuat. Ini dapat digunakan untuk mengontrol izin file default untuk file baru.
jadi jika Anda akan menggunakan beberapa jenis program ftp untuk mengunggah file ke
/opt/lampp/htdocs
Anda perlu mengkonfigurasi server ftp Anda untuk menggunakan umask yang Anda inginkan.Jika file / direktori dibuat misalnya dengan php, Anda perlu memodifikasi kode php
jika Anda akan membuat file / folder baru dari sesi bash Anda, Anda dapat menetapkan nilai umask di profil shell Anda ~ / .bashrc Atau Anda dapat mengatur umask di
/etc/bashrc
atau/etc/profile
file untuk semua pengguna. tambahkan yang berikut ke file: umask 022Dan untuk mengubah izin untuk file yang sudah dibuat, Anda dapat menggunakan find. Semoga ini membantu.
sumber
Ada dua jawaban untuk menemukan file dan menerapkannya
chmod
. Yang pertama adalahfind
file dan berlakuchmod
seperti yang ditemukan (seperti yang disarankan oleh @WombleGoneBad).Solusi kedua adalah membuat daftar semua file dengan
find
perintah dan menyediakan daftar ini kechmod
perintah (seperti yang disarankan oleh @lamgesh).Kedua versi ini berfungsi dengan baik selama jumlah file yang dikembalikan oleh
find
perintah kecil. Solusi kedua terlihat bagus untuk mata dan lebih mudah dibaca daripada yang pertama. Jika ada banyak file, solusi kedua menghasilkan kesalahan:Argument list too long.
Jadi saran saya adalah
chmod -R 755 /opt/lampp/htdocs
jika Anda ingin mengubah izin semua file dan direktori sekaligus.find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
jika jumlah file yang Anda gunakan sangat besar. The-type x
pilihan pencarian untuk jenis tertentu dari file saja, di mana d digunakan untuk menemukan direktori, f file dan l untuk link.chmod 755 $(find /path/to/base/dir -type d)
sebaliknyasumber
Ini sangat sederhana.
Di Terminal buka file manager. Contoh:
sudo nemo
. Pergi/opt/
kemudian klik Properti → Izin . dan kemudian lainnya . Akhirnya, ubah untuk membuat dan menghapus dan mengajukan akses untuk membaca dan menulis dan mengklik tombol berlaku ... Dan bekerja.sumber