.Ssh dizininde 666 olarak ayarlanmış olmasına rağmen, sahipler için izin verilmedi


12

Geçenlerde .ssh dizini ile uğraştım. Bazı izin değişiklikleri yaptım sanırım ve artık buna erişmeme izin vermiyor. Kök kullanıcı (sudo -i) olarak erişebilirim ama somesh olarak erişemiyorum

Dosyaları göstermesine rağmen .ssh dosyasına listelerken veya kodlarken izin verilmedi

ls: cannot access /home/somesh/.ssh/amazon.pem: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa: Permission denied
ls: cannot access /home/somesh/.ssh/known_hosts: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa.pub: Permission denied
total 0
-????????? ? ? ? ?            ? amazon.pem
-????????? ? ? ? ?            ? id_rsa
-????????? ? ? ? ?            ? id_rsa.pub
-????????? ? ? ? ?            ? known_hosts

Kök ve ls olarak giriş yapmak aşağıdaki sonuçları verir

# ls -l /home/somesh/ -a |grep ssh
drw-rw-rw-  2 somesh somesh 4096 Aug 27 15:45 .ssh

İçindeki dosyalar bile .ssh, somesh'e aittir: somesh ve chm

-rw-rw-rw- 1 somesh somesh 1692 Aug 27 15:45 amazon.pem
-rw-rw-rw- 1 somesh somesh 1675 Aug 25 20:01 id_rsa

5
Bkz. Chmod 644 dizinleri neden erişilemez kılıyor? . AFAIK ~/.sshdizini için doğru izinler 700( drwx------).
steeldriver

Yanıtlar:


22

Steeldriver haklı. xDizinde, içindeki dosyaları listeleyebilmek için bayrağa da erişmeniz gerekir .

Kullanarak dizini düzeltmek, chmod 700 ~/.sshbu (doğru) duruma geçmenize yardımcı olacaktır:

$ ls -ld ~/.ssh
drwx------. 2 user user 4096 Aug 26 10:37 /home/user/.ssh

Ayrıca bunu almak için chmod 600 ~/.ssh/id_rsave tuşlarını kullanarak düzeltmelisiniz chmod 644 ~/.ssh/*.pub:

$ ls -l ~/.ssh/
-rw-------. 1 user user  1766 Mar  7  2014 id_rsa
-rw-r--r--. 1 user user   415 Mar  7  2014 id_rsa.pub

Bunu başka bir yere kopyalayıp sonra tekrar kopyalayarak
kendimden

-2

Herhangi bir dizinde ls -l komutunu çalıştırdığınızda , ilk sütun aşağıdaki gibi yorumlanan izin sütunudur:

1 ------------- 2 3 4 ------- 5 6 7 ------- 8 9 10

(TÜR) ---- (kullanıcı) ----- (grup) ---- (diğerleri)

TÜR: '-' ise, bir dosyadır. Eğer 'd' bir dizindir.

İzinler: okumak: 4, yazmak: 2, yürütmek: 1

Yani okuma, yazma ve yürütme izinleriniz kullanıcı grubunda 7 olacaktır .

Kullanabilirsiniz

sudo chmod 7 6 6 file_name 

veya

sudo chmod -R u+x /home/somesh/.ssh 

-R - üst klasörün ve içindeki alt nesnelerin iznini değiştirir


2
TYPE bölümünü anlamıyorum; Ayrıca chmod 700 file_nameve chmod u+x file_namebirbirinden tamamen farklı şeyler yapmak. Birincisi izinleri ayarlar, rwx/---/---ikincisi sadece xsahibi için biti ayarlar (ve bundan başlayarak 666dosyayı 766değil olarak değiştirir 700).
kos

1
@kos, dizgideki ilk alanın dosya girişi türünü ifade ettiği anlamına gelir. Bir -karakter, bunun "normal" bir dosya olduğu anlamına gelir. A d, bir dizin olduğu anlamına gelir. Başkaları da da olduğun gibi c, l(sembolik bağlantı) sve hatta daha fazla diğer işletim sistemleri için.
Josh

@Josh Yep, düzen beni şaşırttı.
kos
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.