İzinler doğru olsa bile bir dizine CD'ye `` İzin Reddedildi ''


13

Bu çok garip. Bir Linux (RHEL) kutusuna kullanıcı 'g' olarak giriş yaptı, ls -lahşov yapıyor

drwxrwxrwx 6 g    g    4.0K Jun 23 13:27 .
drwxrw-r-x 6 root root 4.0K Jun 23 13:15 ..
-rwxrw---- 1 g    g     678 Jun 23 13:26 .bash_history
-rwxrw---- 1 g    g      33 Jun 23 13:15 .bash_logout
-rwxrw---- 1 g    g     176 Jun 23 13:15 .bash_profile
-rwxrw---- 1 g    g     124 Jun 23 13:15 .bashrc
drw-r----- 2 g    g    4.0K Jun 23 13:25 .ssh

Gruptaki kullanıcı 'g' Yani 'g' / / okuma ve .ssh dizinine yazma muktedir ama bunu yaparsam gerektiğini ls -lah .ssh/anladım ls: .ssh/: Permission denied. Ayrıca denediğimde ve catdizindeki herhangi bir dosyayı da İzin verilmedi

Ben kök olarak gidip izinleri değiştirirseniz 700, 744, 766'kullanıcı' izni sürece ya da bir şey çalıştığını 7 ve ben can CD ve LS dizin ve dosyaları içinde.

id g İadeler

uid=504(g) gid=506(g) groups=506(g)

Düzenle:

Bu izinleri tam olarak aynı bir kutuya kopyaladım ve sorun yok. Ben yapabilirsiniz cdbir dizine yürütme izinleri olmadan.

Yanıtlar:


29

Dizin , girebilmeniz için yürütme bitinin ayarlanmasını gerektirir. Ne test bilmiyorum ama olamaz yürütmek bit olmadan bir dizin girin veya içine dosyalar okuyun:

$ mkdir foo
$ echo "baz" > foo/bar
$ chmod 660 foo
$ cd foo
bash: cd: foo: Permission denied
$ cat foo/bar
cat: foo/bar: Permission denied

Yani, sürece senin işlemi iirc, çalıştırılabilir bit set vermeden dizinleri girmenizi sağlar CAP_DAC_OVERRIDE POSIX yeteneği seti (kök varmış gibi) vardır.

Temel olarak, sadece güvenli olmak için .ssh dizinini 700'de ve içindeki her şeyi 600'de tutmaya çalışmalısınız. Ssh man sayfası, ~ / .ssh dosyasındaki dosyalar için gerekli sahiplik ve izin modları hakkında dosya başına talimatlar verir.


17

Bir dizin, bunun için yürütme izni gerektirir cd. Bu beklenen davranıştır.


Ancak catdizindeki aynı izinlere sahip herhangi bir dosyayı da kullanamıyorum , okumak için yürütme izinlerine gerek yok
Smudge

4
Bir dizindeki herhangi bir şeye erişmek için dizinde yürütme izinlerine ihtiyacınız vardır. Bu cevap doğrudur.
EightBitTony

1
@samarudge xSize bu dizinde "bulunma" izni vermek için bir dizini göz önünde bulundurun . Bu olmadan, dizine cd yapamazsınız, dizinde ne olduğunu göremezsiniz, dizinde neyi açamazsınız. Kütüphanede bulunma izniniz yoksa, oradaki kitapları okuyamazsınız.
DerfK

Dizine yürütme izinleri eklersem (dizine 744, içindeki dosyalara 644) SSHD'den .ssh dizini izinlerinin 644 veya daha düşük olması gerektiğini söyleyen bir hata alıyorum. Ancak 644 gibi izinlerle .ssh / yetkili_anahtarlara erişemediğini söylüyor
Smudge

* Özellikle '.ssh / directory'
yazmıyor

2

Ls veya cd'yi bir dizine eklemek için yürütme izinlerine ihtiyacınız vardır. Onlara sahip olmasanız da, içeriği gerçekten inceleyemez ve içindeki dosyaların izinlerini göremezsiniz, bu nedenle, onları katlayamazsanız, büyük olasılıkla dosya izinleri kendileri yanlıştır.

700 dizin izni ve dosya izinleri 644 benim için mükemmel kurulum.


Dosyaların izinleri, dosyaların 644sahibi g: g olduğundan dosyaların izinleri doğrudur. Eğer dizine yürütme izinleri eklerseniz SSHD izinleri 644 veya altına bırakmam gerektiğini söylüyor
Smudge

Sunny adlı kullanıcının yorumları doğru - aşağı oy biraz sert
AndyM

0

Ben şimdi bu bir ssh dosyası sorunu mu? genel bir chmod sorunu değil mi?

Eğer öyleyse dene

$chmod go-w ~/
$chmod 700 ~/.ssh
$chmod 600 ~/.ssh/*
$chmod 600 ~/.ssh/.*

başka bir sorun, bağlama noktası olabilir, başka bir yerden mi monte edildi, CIFS, NFS?
AndyM

0

Dizinlerin açılabilmesi için x bitinin ayarlanması gerekir (bitin arama biti olarak görülen dizin için). Bu yüzden sadece klasör setini almak ve tüm dosyaları yürütülebilir olarak ayarlanmış kabusa (ağaç seçeneği -d List directories only.) sahip olabilmek için ağacı kullanıyorum :

sudo tree -faid here_goes_your_directory xargs -L1 -I{} sudo chmod 755  "{}"

Uyarı!!! bunu dikkate almanız gerekir:

  • Kök /dizinde veya sistem dizinlerinde chmod veya chown özyinelemenin kullanılması işletim sisteminizi yok eder (aslında /dizin veya sistem dizinlerinde yinelenen herhangi bir şey tehlikelidir)

  • bu şekilde izin toplu ayarlamak için iyi bir güvenlik uygulaması değildir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.