Не могу читать / редактировать существующие файлы

У меня установлена ​​Ubuntu (Lubuntu 12.04) на SD-карте, которую я использую в мини-ПК mk802. Когда я монтирую SD-карту на моем ПК (Ubuntu 12.04), у меня нет возможности читать / редактировать файлы, связанные с ssh (например, etc / ssh_config или etc / sshd_config), но я вижу это в выводе ls:

root@boss:/media/d5578c69-a3c3-43be-a24f-9e1daaf6eb62/etc# ls -lrta ssh*
total 168
-rw-r--r--   1 root root    302 Jan 10  2011 ssh_import_id
-rw-r--r--   1 root root   1669 Apr  2  2012 ssh_config
-rw-r--r--   1 root root 125749 Apr  2  2012 moduli
-rw-r--r--   1 root root    395 Jun 12  2012 ssh_host_rsa_key.pub
-rw-------   1 root root   1679 Jun 12  2012 ssh_host_rsa_key
-rw-r--r--   1 root root    175 Jun 12  2012 ssh_host_ecdsa_key.pub
-rw-------   1 root root    227 Jun 12  2012 ssh_host_ecdsa_key
-rw-r--r--   1 root root    603 Jun 12  2012 ssh_host_dsa_key.pub
-rw-------   1 root root    672 Jun 12  2012 ssh_host_dsa_key
-rw-r--r--   1 root root   2498 Dec  8 01:17 sshd_config
drwxr-xr-x   2 root root   4096 Dec  8 01:17 .
drwxr-xr-x 120 root root   4096 Jan 19 08:32 ..


root@boss:/media/d5578c69-a3c3-43be-a24f-9e1daaf6eb62/etc# cat sshd_config
cat: sshd_config: No such file or directory

Другие файлы в той же папке не имеют такой проблемы. Что может быть причиной такого поведения?

1
задан 19 January 2014 в 12:50

1 ответ

1119 Я вижу проблему. Вы используете ls -lrta ssh* в каталоге /etc/. Это соответствует каталогу ssh в этой папке, а затем перечисляет содержимое этого каталога. Те файлы, которые вы видите, на самом деле находятся в /etc/ssh/.

ls -lrtad ssh* не войдет в каталог.

Доступ к вашим файлам из каталога /etc/ssh/.


Хитрость здесь в том, что ls обычно помещает заголовок в таких случаях, когда эти файлы находятся в каком каталоге, когда вы используете ls с * в командной строке. Проблема в том, что * расширяется оболочкой для создания командной строки. Например, когда вы пишете ls py* и в каталоге также есть записи python и python3, оболочка фактически выполнит эту команду: ls python python3, и на выходе будет что-то вроде:

python:
debian_config

python3:
debian_config

Поскольку ls видит несколько аргументов, он печатает заголовок для каждого каталога. Таким образом, вы можете легко увидеть, что эти файлы находятся в разных каталогах. Но когда в каталоге только одно совпадение, как в вашем случае, ls ssh* расширяется до ls ssh, тогда ls видит, что вы вводите только один аргумент, так что вам не нужен заголовок, как вы знаете что вы делаете, и результат будет похож на ваш.

0
ответ дан 19 January 2014 в 12:50

Другие вопросы по тегам:

Похожие вопросы: