find
работы точно также. Но если Вы используете zshell (zsh
):
Только для файлов:
ls -al path/**/*(.)
Только для директоров:
ls -al path/**/*(/)
Посмотрите man zshexpn
для большего количества eamples. Конкретно "раздел" спецификатора шарика.
Аргументы командной строки каждого процесса в системе считаются "общедоступными". Не только команда w
, но и ps
и top
и многие другие команды обращаются к этой информации как к само собой разумеющимся. Действительно, для получения этой информации не требуется никаких специальных привилегий. В Linux вы можете прочитать командную строку другого процесса, даже процесса, принадлежащего другому пользователю, прочитав /proc/
.
Это не является дефектом или небезопасным поведением со стороны w
или top
или ps
(или cat
). Скорее всего, система не передает конфиденциальную информацию в командных строках в многопользовательских системах никогда.
Большинство утилит, которые имеют возможность принимать пароли в документе командной строки, не рекомендуется делать это. Например, из руководства mysql
:
Указание пароля в командной строке следует считать небезопасным. См. Раздел 5.3.2.2, "Руководство для конечных пользователей по безопасности паролей". Вы можете использовать опциональный файл, чтобы избежать указания пароля в командной строке.
Кстати, передача паролей или конфиденциальных данных в переменных окружения менее откровенно опасна, но на самом деле опасна и на большинстве систем.
Пока небезопасно, пожалуйста, помните, что Linux в эти дни в его начале двадцатых, как с другими вещами, в которых в нем последствия безопасности были либо не то, что ясно или адресованы позже.
Следовательно, как упоминалось в других ответах, не используйте пароль в командной строке.
Вы можете (и, вероятно, SHOLD) также ограничить информацию, предоставленную либо Mountring PRECFS с помощью параметра
, или использование GrSecurity закаленного ядра. Обратите внимание, что это может сломать некоторые вещи (возможно, CGUP и все, что полагается на них - как E.g. Systemd), по крайней мере, на момент написания этого.
Нет, небезопасно пропускать пароли к программам в командной строке. Лучше использовать:
mohsen@debian:~$ mysql -uuser -p
Enter password: