Права доступа запрещены владельцу, хотя он установлен в 666 в каталоге .ssh


12

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

Я получаю отказ в разрешении при перечислении или cding в .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

Steeldriver прав. В каталоге вам также нужен 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

Мне удалось исправить это перед собой, скопировав его куда-то еще, а затем скопировав обратно
Somesh Mukherjee

-2

Когда вы запускаете команду ls -l в любом каталоге, первый столбец является столбцом разрешений, который интерпретируется следующим образом:

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

(ТИП) ---- (пользователь) ----- (группа) ---- (другие)

ТИП: Если '-' , это файл. Если '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).
Кос

1
@kos, он / она означает, что первое поле в строке указывает тип записи файла. -Символ означает , что это «нормальный» файл. А dзначит это каталог. Есть и другие, например c, l(для символической ссылки) s, и даже больше для других ОС.
Джош

@ Джош Да, макет смутил меня.
Кос
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.