Pertanyaan akses direktori Linux

2

Saya memiliki sistem linux dengan apache terinstal dan saya menyimpan file web di / home / username / www / sitename / htdocs. Agar ini berfungsi, / home / nama pengguna saya telah membaca dan mengeksekusi izin untuk semua orang. Saya tahu itu ide yang buruk, tetapi saya adalah satu-satunya pengguna di sistem jadi ... saya tidak terlalu peduli dan saya tidak tahu lagi bagaimana cara melakukannya. Tetapi kenyataannya adalah saya harus membuat pengguna lain. Masalah dengan itu, jelas, adalah bahwa pengguna baru memiliki akses ke file pengguna lama. Apakah ada cara saya hanya bisa mengizinkan apache pengguna data www dan pengguna saya sendiri untuk mengakses / home / nama pengguna? Inilah yang saya coba:

i created a group webusers
i added my username and www-data to webusers
i removed rx permissions for everyone on /home/username
rx permissions still remain for the group on /home/username

Jadi bukankah seharusnya www-data dapat mengakses / home / nama pengguna sekarang? Itu berada di grup yang sama dengan pengguna saya. Atau tidak sesederhana itu? Saya sudah membaca ada kelompok primer dan sekunder tetapi saya tidak benar-benar mengerti maksudnya ...

Marius
sumber

Jawaban:

1

Kamu butuh chgrp webusers pada file yang Anda ingin anggota grup dapat mengakses.

Dennis Williamson
sumber
Saya mengerti, tetapi pertanyaan lain masih tetap: jika saya chgrp htdocs, akan apache dapat mengaksesnya jika direktori home sendiri tidak chgrp'ed?
Marius
@Marius: jika direktori induk memiliki hak mengeksekusi untuk Other, ia akan dapat mengakses (mencari) file di direktori tersebut.
Dennis Williamson
0

Jika suatu aplikasi perlu mengakses entitas sistem file, file atau direktori, aplikasi itu seharusnya (terlepas dari hak yang diminta pada entitas itu sendiri) hak eXecute pada semua direktori induk. Akan tetapi, bisa memiliki mis. mengeksekusi hak yang diberikan oleh izin grup pada satu direktori dan oleh orang lain izin pada yang lain: tidak ada perbedaan dalam bagaimana Aplikasi mendapatkan haknya.

Sebagai izin untuk /home mungkin 755 ( rwxr-xr-x ), mungkin ada dua kemungkinan masalah.

Pertama, Anda harus memastikan Apache benar-benar berjalan www-data, dan kedua, setelah Anda menambahkan beberapa pengguna ke grup Anda perlu me-restart semua aplikasi yang sudah berjalan sebagai pengguna karena Linux tidak melihat /etc/passwd setiap kali perlu mendapatkan daftar grup, alih-alih ia menyimpan daftar GID dalam struktur kernel.

Grup primer dan sekunder hanya valid ketika diterapkan ke pengguna. Pengguna dapat menjadi bagian dari sejumlah grup, tetapi salah satunya dipilih sebagai primer dan ditugaskan untuk file yang baru dibuat; yang lain hanya digunakan untuk mengontrol hak akses.

whitequark
sumber
-2

Setiap file dan direktori memiliki seperangkat izin untuk pemilik, grup, dan lainnya (semua orang).

Menjalankan ls -l untuk menemukan apa ini

Untuk mengubah izin, gunakan chmod, untuk mengubah pemilik dan grup, gunakan chown

Itu man halaman untuk chown dan chmod memberikan kiat untuk menerapkan izin secara rekursif yang membuat tugas lebih mudah, serta sintaks untuk digunakan.

  • Anda membuat grup ( webusers dalam kasus Anda) dan ubah kepemilikan file dalam /home/user1/www/sitename/htdocs untuk user1.webusers
  • Kemudian ubah izin file ke rw-rw---- dan direktori dan cgi untuk rwxrwx---
  • user2 (pengguna baru) tidak akan dapat mengakses file kecuali mereka adalah bagian dari grup pengguna web
Brendan
sumber
Terima kasih, tetapi jika saya mengubah izin pada htdocs saja, apache tidak akan dapat mengakses file, karena tidak akan memiliki izin di / home / user1? Atau apakah itu tidak masalah?
Marius
-1 grup bukan grup pemilik, ini terpisah ( chgrp ).
Hello71
Jadi ... sekarang saya benar-benar bingung ... :)
Marius
Ah itu poin yang bagus Marius, saya pikir hierarki direktori di atas htdocs juga harus dapat dieksekusi dan dibaca, jadi mungkin perlu mengatur direktori setidaknya rwxrwxr-x naik hierarki
Brendan
chown melakukan hal yang sama dengan chgrp, itu hanya lebih umum - yaitu bisa ubah pemilik jika Anda melewati bendera kanan ... dalam hal ini lewat user1.webusers hanya akan mengubah grup untuk file yang dibuat oleh user1
Brendan