Не использовать ls
для этого. Вот один путь, который работает со всеми именами файлов, даже те, которые содержат новые строки, потому что он печатает только символ новой строки вместо имени файла:
find . -mindepth 1 -maxdepth 1 -type d -printf '\n' | wc -l
Править: Текущая версия не приводит ни к каким предупреждениям, потому что -mindepth
и -maxdepth
должен быть прежде -type
(дерево каталогов сокращено прежде, чем проверить на каталоги, сэкономить время).
Если Вы хотите войти в систему как Testuser
, затем да, необходимо удостовериться это ~Testuser
, ~Testuser/.ssh
и ~Testuser/.ssh/authorized_keys
принадлежите пользователю Testuser
, и что все три не перезаписываемы никаким другим пользователем, т.е.
chown Testuser ~Testuser ~Testuser/.ssh ~Testuser/.ssh/authorized_keys
chmod go-w ~Testuser ~Testuser/.ssh ~Testuser/.ssh/authorized_keys
Обратите внимание, что предпочтенный способ загрузить новый ключ к учетной записи состоит в том, чтобы использовать ssh-copy-id
. Это устроило бы полномочия быть корректным.
Вы можете также иметь ~Testuser/.ssh
и ~Testuser.ssh/authorized_keys
принадлежавший корню, но это только для необычных установок, где Вы не хотите, чтобы пользователь смог изменить список авторизованных ключей. Файл должен быть читаемым Testuser
в любом случае.