Izin ditolak tetapi izin grup terlihat bagus di redhat

11

Saya punya ftpadmin pengguna:

-bash-3.2$ id ftpadmin
uid=10001(ftpadmin) gid=2525(fsg) groups=2525(fsg),10005(git)

Grup penting yang perlu diperhatikan adalah "git"

Maka saya punya repositori git saya:

ls -al
drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

Jadi ftpadmin adalah anggota dari git, dan git telah memberikan semua izin kepada orang-orang dalam grup. Mengapa saya melihat ini ketika saya login sebagai ftpadmin:

-bash-3.2$ ls -al /home/git/
ls: /home/git/fsg: Permission denied
...

Sepertinya saya harus memiliki izin ...

Perbarui Izin di / home / git adalah

drwxrw-rw-   6 git      git          4096 Apr 26 09:20 git

masih terlihat bagus ...

Perbarui izin baru di / home / git adalah:

drwxrwxrw-   6 git      git          4096 Apr 26 09:20 git

Izin pada / home / git / fsg adalah:

drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

Namun, saya masih dapat

ls: /home/git/fsg: Permission denied
ls: /home/git/fsg: Permission denied
Tony
sumber
1
Di mana izin itu /home/git?
Zoredache
drwxrw-rw- 6 git git 4096 26 Apr 09:20 git
Tony
seharusnya drwxrwxr-xjika Anda ingin itu hanya-baca untuk non-anggota grup tetapi dapat diubah oleh anggota grup; seharusnya drwxrwx---jika Anda hanya ingin anggota grup ada di dalamnya.
Avery Payne
4
Anda memerlukan bit grup "x" yang diatur dalam direktori untuk memungkinkan pencarian grup . Izin "rw-" memungkinkan membuka file yang diberi nama (r) atau membuat file (w), tetapi tidak mencantumkan atau mencari file (x).
mpez0
tidak bekerja lihat pembaruan terakhir saya
Tony

Jawaban:

9

Ingin memberi +1 secara khusus mpez0, untuk jawabannya, "Anda memerlukan bit grup" x "di direktori untuk memungkinkan pencarian grup. Izin" rw- "memungkinkan membuka file yang diberi nama (r) atau membuat file (w), tetapi tidak mencantumkan atau mencari file (x). "

Sangat mudah untuk dilupakan, dan solusinya terkubur di tengah. Ini jelas merupakan masalah bagi pengguna Linux baru sehubungan dengan izin file / direktori untuk pengguna dan grup.

Semua yang dikatakan Avery benar berdasarkan uang, sekali lagi berharap saya bisa memberi Anda +1 juga.

Mencari contoh lain yang lebih rinci mungkin membantu pengguna Linux baru ( tidak mencari kredit apa pun, hanya memberikan contoh lain untuk kejelasan ). Pada pc saya sendiri, saya ingin membuat pengguna tambahan untuk proyek pengembangan spesifik. Sedang menguji beberapa masalah SSH, SFTP antara mesin saya dan server co-located di web. Mendapat kesalahan "Izin ditolak" yang sama setelah menyiapkan semuanya ... dan ya itu tampak benar kecuali untuk masalah pencarian berdasarkan izin untuk yang lain yang ditunjukkan mpez0.

Catatan: Untuk pengguna Linux baru, izin adalah pengguna, grup, lainnya atau rwx, rwx, rwx dan akan terlihat seperti ini

drwxr-xr--   

user has read + write + execute, rwx 
group has only read and execute, r-x
other has only read acces r--

Untuk 'lain' kita diingatkan TIDAK cukup untuk menemukan / mencari direktori, sehingga pesan kesalahan.

Inilah yang saya lakukan, (menemukan pesan kesalahan pada langkah 6)

1) membuat pengguna, hoiuser (untuk melihat informasi pengguna, Anda dapat menggunakan cmd jari, "finger hoiuser" atau membaca file 'cat / etc / passwd')

2) membuat grup, hoidevs (menambahkan pengguna "hoiuser" ke grup)

root@zareason-breeze:/etc# cat group | grep hoidevs 
hoidevs:x:1010:userz,hoiuser 

Ingat Anda harus keluar dan masuk lagi untuk izin "grup" baru untuk dikaitkan dengan ID Akun.

3) chgrp hoidevs untuk direktori / home / userz / data / Sites / hoi dan menciptakan tempat untuk file

hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

4) Membuka Jendela Terminal, pengguna userz aktif

5) su-hoiuser (beralih ke hoiuser pengguna)

6) Mencoba untuk cd / home / userz / data / Situs

hoiuser@zareason-breeze:/home/userz/data$ cd Sites
-su: cd: Sites: Permission denied    (voila, the problem)


userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr--  11 userz userz  4096 2012-02-24 16:20 ./
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/

7) Mengubah izin untuk Situs

userz@zareason-breeze:~/data/Sites$ chmod 755 .
userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr-x  11 userz userz  4096 2012-02-24 16:20 ./

Dan masalah voila diperbaiki .... di sini adalah buktinya

hoiuser@zareason-breeze:/home/userz/data$ id
uid=1009(hoiuser) gid=1009(hoiuser) groups=1009(hoiuser),1010(hoidevs)

hoiuser@zareason-breeze:/home/userz/data$ cd Sites        (<- yea no error message)
hoiuser@zareason-breeze:/home/userz/data/Sites$ cd hoi
hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x 11 userz userz 4096 2012-02-24 16:20 ../
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Bahkan pengguna Linux / Unix yang berpengalaman kami membutuhkan pengingat sekarang dan lagi.

Seperti yang ditunjukkan, tidak cukup hanya memberikan izin yang benar ke direktori di mana file berada, Anda juga perlu memastikan semua direktori yang mengarah ke direktori tersebut memiliki izin yang benar, terutama kemampuan "lain" untuk "cari" dan cari direktori dan file. Hampir tidak intuitif ketika x berarti mengeksekusi, benar.

Struktur subdirektori saya adalah: / home / userz / data / Sites / hoi / html /

Mulai dari rumah

userz@zareason-breeze:~$ pwd
/home

Ini adalah struktur direktori saya SEBELUM chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr--  11 userz userz     4096 2012-02-24 16:20 Sites/    (<-- Do you see it, other is r--)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Ini adalah struktur direktori saya SETELAH chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr-x  11 userz userz     4096 2012-02-24 16:20 Sites/      (<-- Fixed by the chmod > 755 ., now r-x)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Perhatikan satu-satunya perubahan adalah izin rx untuk 'lain' untuk direktori 'Situs'. Semoga ini bisa membantu orang lain, itu penyegaran yang baik bagi saya.

CBPHP
sumber
3
Saya mengalami masalah serupa pada FreeBSD dan OpenBSD. Kuncinya bagi saya adalah bagian ini: Ingat Anda harus keluar dan masuk lagi agar izin "grup" baru dikaitkan dengan ID Akun. Cukup yakin, dokumentasi FreeBSD menyatakan: `-G grouplist ... perubahan keanggotaan grup tidak berlaku untuk sesi login pengguna saat ini, yang mengharuskan pengguna untuk terhubung kembali agar terpengaruh oleh perubahan.
iboisver
6

Anda harus memiliki izin pada direktori yang berisi file untuk sampai ke file. Apa izin di / home / git? (ya, Zoredache, saya memberi Anda +1 untuk menunjukkan itu)


Tindak lanjut: Anda memerlukan bit eksekusi (x) yang ditetapkan untuk grup agar grup tersebut dapat memasuki direktori. Anggap saja analog kasar dengan pengaturan "Traverse Directory" windows. Tanpa itu, akses akan ditolak untuk grup. Jika Anda putus asa, Anda dapat melakukan:

chmod g+x /home/git
chmod g+x /home/git/fsg

Coba yang berikut ini dan poskan pesan dari masing-masing:

cd /home
cd /home/git
cd /home/git/fsg

Masing-masing harus dapat diakses oleh ftpadmin. Jika salah satu dari mereka tidak , maka itu akan menghentikan Anda untuk masuk /home/git/fsg.

Avery Payne
sumber
drwxrw-rw- 6 git git 4096 26 Apr 09:20 git
Tony
masuk akal, saya masih mendapatkan izin ditolak di / home / git / fsg yang drwxrwxr-x 7 git git 4096 20 Apr 20 14:17 fsg
Tony
dan pada "izin terakhir" yang ditolak, apakah bit eksekusi grup diatur? Tidak masalah jika Anda memiliki izin untuk anak tersebut jika orang tua tidak memiliki izin juga.
Avery Payne
Lihat pembaruan terakhir saya. Saya meletakkan izin di sana dan bit group-exec diatur
Tony
Saya melihat Anda memiliki hasil untuk /home/gitdan /home/git/fsgtetapi untuk apa hasilnya /home?
Avery Payne
4

Setelah mengubah grup pengguna X melalui akses root, Anda harus keluar dan masuk lagi dengan pengguna X itu, jika tidak, grup baru tidak akan diperhitungkan

Marco Marsala
sumber
3

Coba masuk lagi, atau jalankan su - ftpadminuntuk masuk ke dalam shell saat ini. Karena grup diatur ketika Anda masuk, mungkin saja Anda menambahkan ini-dan-begitu ke grup tetapi pengaturan grup lama masih digunakan.

erjiang
sumber