Saya mengemas folder dengan banyak sub-folder dan file di Windows dengan 7zip, mengunggah ke VPS dan kemudian menjalankan perintah:
tar -xvzf file.tar.gz
maka semua file dan folder yang sudah dibongkar memiliki izin 777. Bagaimana cara mendapatkannya sehingga folder akan memiliki izin 755 dan file 644?
linux
file-permissions
tar
Kaspar L. Palgi
sumber
sumber
Jawaban:
Jika Anda berjalan
tar(1)
sebagai pengguna biasa, itu akan berlakuumask
secara default. Jika Anda menjalankantar(1)
sebagairoot
, maka Anda dapat memberikan--no-same-permissions
opsi baris perintah untuk memintatar(1)
untuk menghormatiumask
.Jadi: jalankan ini sebagai pengguna biasa:
atau jalankan ini sebagai
root
:Anda mungkin ingin tetap
umask 022
ke dalam~/.bashrc
,~/.bash_profile
atau~/.profile
. (Lihatbash(1)
manual untuk detail lengkap tentang file start up. Ini rumit.)Detail tentang
umask
dapat ditemukan di halaman shell Anda, halamanumask(2)
panggilan sistem, atau halamanumask(1posix)
utilitas yang disediakan POSIX (jika Anda telahmanpages-posix
menginstalnya).sumber
Jalankan perintah berikut di root direktori untuk mengatur izin yang diinginkan untuk direktori dan file Anda:
Waspadai jarak antara braket keriting penutup dan garis miring
sumber
\;
Jika Anda menggunakan modal X di
chmod
Anda dapat menggunakannya untuk mengatur izin eksekusi hanya pada direktori. yaitusumber
Saya menemukan solusi ini yang berhasil untuk saya. Untuk folder dan subfolder:
Dan untuk semua file (juga dalam folder dan subfolder):
Semua komentar diterima jika ini bukan cara yang baik untuk melakukannya. Saya baru mulai belajar Linux.
Mengikuti komentar, solusi yang lebih kuat yang menangani karakter khusus dengan baik adalah:
sumber
the': No such file or directory chmod: cannot access
Logo.txt ': Tidak ada file atau direktori chmod: tidak dapat mengakses `./blog/wp-content/themes/OneRoom/LOGO': Tidak ada file atau di pastoran777
berbahaya dan hanya berlaku untuk sebagian kecil sistem.find . -type f -print0 | xargs -0 chmod 644
,. Tidak-name "*"
diperlukan, danxargs(1)
akan mem-parsing nama file pada spasi atau baris baru kecuali Anda menggunakan-0
- yang mem-parsing nama file padaNUL
karakter ASCII , yang tidak dapat muncul dalam nama file. The-print0
untukfind(1)
meminta untuk memformat output dalam mode cocok untukxargs -0
masukan.Temukan . -type f -exec chmod 644 {} \;
sumber