Власникам дозволів відмовлено, хоча в каталозі .ssh встановлено 666


12

Нещодавно я заплутався з каталогом .ssh. Я вніс деякі зміни дозволу, я думаю, і тепер це більше не дозволить мені отримати доступ до нього. Я можу отримати доступ до нього як користувач root (sudo -i), але не як somesh

У дозволі мені відмовляють, коли я перераховую або записуюсь у .ssh, хоча він показує файли

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

Вхід у систему як root та ls дає такі результати

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

Навіть файли всередині .ssh належать somesh: somesh і 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
Див. Чому chmod 644 робить каталоги недоступними? . AFAIK правильні дозволи для ~/.sshкаталогу є 700( drwx------).
steeldriver

Відповіді:


21

Стілдрівер має рацію. У каталозі вам також потрібен xпрапор доступу, щоб мати можливість перелічити файли всередині.

Виправлення каталогу за допомогою chmod 700 ~/.sshповинно допомогти вам перейти до цього (правильного) стану:

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

Також слід виправити свої ключі за допомогою chmod 600 ~/.ssh/id_rsaта 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

Мені вдалося виправити це перед собою, скопіювавши його деінде, а потім скопіювавши його назад
SoWhat

-2

Коли ви запускаєте команду ls -l у будь-якому каталозі, перший стовпець - це стовпець дозволу, який інтерпретується так:

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

(TYPE) ---- (користувач) ----- (група) ---- (інші)

ТИП: Якщо "-" , це файл. Якщо 'd' - це каталог.

Дозволи: читання: 4, запис: 2, виконання: 1

Тож для читання, запису та виконання ваших дозволів буде 7 у групі користувачів.

Можна використовувати

sudo chmod 7 6 6 file_name 

або

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

-R - це змінює дозвіл батьківської папки та дочірніх об'єктів всередині


2
Я не розумію частину ТИПУ; також chmod 700 file_nameі chmod u+x file_nameзробити дві абсолютно різні речі. Перший встановлює дозволи rwx/---/---, а другий просто встановлює xбіт для власника (і, починаючи з 666нього, файл змінить на 766, а не на 700).
kos

1
@kos, s / він означає, що перше поле в рядку вказує тип запису файлу. -Символ означає , що це «нормальний» файл. Це dозначає, що це каталог. Є й інші, теж подобається c, l(для символічного посилання), sі навіть більше для інших операційних систем.
Джош

@Josh Yep, макет мене збентежив.
кос
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.