У меня установлена 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
Другие файлы в той же папке не имеют такой проблемы. Что может быть причиной такого поведения?
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
видит, что вы вводите только один аргумент, так что вам не нужен заголовок, как вы знаете что вы делаете, и результат будет похож на ваш.