Bagaimana cara mengubah izin pada semua file dalam direktori, dan ketika file baru ditambahkan, ke nilai default?

5

Saya memiliki folder /home/userName/Public/Mediatempat saya menyimpan semua media di mesin; folder ini dimaksudkan agar dapat diakses oleh semua pengguna mesin lainnya - jika hanya untuk menghentikan mereka harus secara independen mengunduh / menyalin file media yang sama.

Apakah ada cara di mana saya dapat mengubah izin untuk:

owner: userName /* my own user */
Access: read and write

group: users
Access: read only /* I'm not entirely sure I trust all my users enough to give them powers of delete */

Others
Access: read only

Idealnya saya ingin orang lain dapat menambahkan media mereka sendiri, tetapi untuk izin untuk semua media / file / direktori yang ditambahkan oleh saya sendiri ke default ke yang tercantum di atas. Izin untuk file yang ditambahkan oleh pengguna saya ingin default untuk yang di atas, dengan pengecualian bahwa pengguna mempertahankan kepemilikan.

Saya berasumsi bahwa inotify dan umask dapat digunakan; tetapi -dan saya hanya bisa meminta maaf untuk ini- Saya tidak tahu bagaimana menggunakannya untuk memberikan solusi.

Terima kasih atas bantuan yang dapat Anda berikan. Suatu hari, saya berharap dapat menggunakan Ubuntu tanpa kebingungan ... =)

David Thomas
sumber

Jawaban:

7
chown -R userName:groupname folderName
chmod -R 744 folderName

umask 022 (in .login or .profile)

chmod mengubah izin pada file. Agak aneh jika Anda tidak terbiasa, tetapi singkatnya:

Penggunaan (untuk oktal): chmod ABC (file target / folder)

"A" adalah izin untuk Pemilik, "B" adalah izin untuk Grup pemilik, dan C adalah izin untuk Semua Orang.

Izin rusak sebagai berikut

1 = Jalankan 2 = Tulis 4 = Baca

Tambahkan mereka untuk menentukan tingkat izin. Misalnya untuk memberi baca dan tulis tetapi tidak mengeksekusi, Anda menggunakan (2 + 4) = 6. Untuk membaca, menulis, dan mengeksekusi yang Anda gunakan (1 + 2 + 4) = 7. Untuk mengeksekusi saja, gunakan 1.

Jadi "chmod -R 744 folderName" berarti:

Tetapkan izin untuk Pemilik untuk Membaca + Menulis + Jalankan (7) Tetapkan izin untuk grup Pemilik untuk Membaca (4) Tetapkan izin untuk Dibaca Semua Orang (4)

Terapkan izin ini ke folderName dan dari sana terapkan secara rekursif (-R) ke semua file di folder.

Ini cukup mendasar; ada cara lain untuk menggunakan chmod, dan properti lain yang dapat Anda atur dengannya, dll, tetapi ini adalah awal yang baik.

Sekarang umask:

Umask pada dasarnya adalah cara untuk mengatur izin default untuk pembuatan file dan direktori. Biasanya diset untuk setiap pengguna di file profil atau. Login mereka, tetapi Anda dapat mengaturnya sendiri di berbagai waktu hanya dengan mengetikkan umask 022 atau apa pun ... Itu akan tetap sampai Anda mengubahnya, atau logout.

Izin umask (oktal) adalah kebalikan dari izin chmod. Saya tahu itu aneh. Tetapi jika Anda ingin semua file dalam direktori dibuat dengan izin file 777 (baca + tulis + eksekusi untuk pemilik, grup, dan semua orang) Anda akan mengatur umask menjadi 000.

Jadi agar semua pengguna Anda membuat file yang 644 (baca / tulis, baca, baca) Anda akan mengatur umask ke 022 (yang tampaknya salah, tetapi file tidak dapat dieksekusi secara default, jadi file yang baru dibuat akan menjadi 644 dan direktori yang baru dibuat adalah 755).

Harapan itu tidak terlalu membingungkan.

Satanicpuppy
sumber
Saya telah memilih, dan menerima, karena itu adalah jawaban yang luar biasa , dan penjelasan yang bagus (dan memang sesuai dengan yang saya inginkan), tetapi saya ingin tahu pendapat Anda tentang apakah harus ada media pengguna atau tidak ? Dalam hal itu semua media bersama akan disimpan di bawah akun pengguna publik / publik-ish, jadi direktori ~ / saya tetap pribadi?
David Thomas
Ada banyak cara untuk melakukannya; Saya tidak ingin orang berkeliaran di ~ saya, tentu saja. Tapi Anda bisa saja membuat folder, dan chown ke grup umum atau sesuatu. Tidak perlu membuat seluruh pengguna ... Hanya satu set kata sandi yang perlu diingat.
Satanicpuppy