Количество домашние каталоги у детей /

Мне нужно подсчитать количество детей каталоги /, которые содержат один или более домашние каталоги. Например, если Джон, Эмили и Рик их домашние каталоги в /Home/Иоанна /дом/Эмили и /var/lib, то ответ будет 2.

Я предполагаю, что я должен использовать трубы с нарезанной и grep, но я не знаю точно как.

+771
IT guy 14 мая 2011 г., 17:18:07
34 ответов

Если вы используете систему, которая имеет утилиты GNU, вы можете всегда использовать базовое имя для полосы расширения:

$ базовое_имя -с ".мкВ" GameOfThronesS01E05.мкВ 
GameOfThronesS01E05

В противном случае, Python-это всегда хороший выбор,тоже:

$ на Python -C 'на импорт каталога sys;sys в печати.аргумент argv[1][:-4]' GameOfThronesS01E05.мкВ 
GameOfThronesS01E05
+990
Laxmikant Dange 03 февр. '09 в 4:24

Как написать баш скрипт, который делает списки по выбрать столбец из таблицы, которая находится в формате CSV формат?

Если у меня есть CSV-файл файлы эти содержимое:

 [пользователь]$ кот список1.КШМ
 Последние, Во-первых, пользователей
 lname1, fname1, пользователь1
 lname2, fname2, пользователь2

 [пользователь]$ кот список2.КШМ
 Последние, Во-первых, пользователей
 lname3, fname3, пользователь3
 lname4, fname4, пользователь4

И я хочу, чтобы скрипт, который будет вызван как CreateList <столбец> <файл1> <файл2> ...

Например :

 [пользователь]$ CreateList 2 список2.КШМ список1.КШМ
 список2: fname3, fname4
 список1: fname1, fname2
+943
Mangesh Jogade 19 февр. 2011 г., 18:31:47
Другие ответы

Связанные вопросы


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

Есть половина правды к предыдущим высказываниям. Вы можете настроить скрипт так, чтобы он не читается пользователем, но все же исполняемый. Процесс немного растянут, но это выполнимо, делая исключение в /etc/sudoer, так что пользователь может запустить скрипт как сам временно без ввода пароля. Этот метод: - обходит патч setuid для других дистрибутивов. - позволяет дать повышенными разрешениями, временно на определенный сценарий, не давая пользователю права sudo для все.

Следуйте инструкции на этот пост: Файл разрешения выполнять только

+924
Altblau 23 сент. 2019 г., 16:56:32

Это зависит от того.

Вообще говоря, нет. Вы не можете сделать это.

Однако, иногда можно. Например, предположим, что у вас есть программа, которая делает некоторые сложные операции со строками и изменения каждой строки, независимо. Затем вы могли бы использовать GNU параллельно - программа предназначена для запуска программ в параллельные.

Однако, вы должны знать, что ваша программа делает, и то, что является узким местом. Некоторые программы разделиться на более мелкие подпроцессы по умолчанию, так что вы получите не ускорение. Некоторые программы используют сильно диск, и поскольку это является узким местом, вы бы получили никаких улучшений. Некоторые программы имеют логики, которая не может быть использована на разделить файлы.

ГНУ параллельно делит файл на несколько частей и запускает скрипт на каждой из частей, слияние результатов. Это хорошо работает, если вы запустите что-то вроде программы на awk, которая меняет первый и второй столбец. Это работает не так хорошо, когда вы запускаете программу, которая меняет собаку до n, где N-сколько раз вы видели слово собака до сих пор.

+922
Narges 21 янв. 2016 г., 16:59:04

но имейте в строке заголовка в верхней

# печать заголовка (первая строка входных данных)
# и выполните указанную команду на теле (остаток вклада)
# использовать его в трубопроводе, например, PS | тела грэп somepattern
тела() {
 ИФС= читайте -Р заголовке
 функции printf '%s в заголовке\п' "$"
"[email protected]"
}

И использовать его как это

$ ПС вход aux | grep в тело someApp
ПОЛЬЗОВАТЕЛЬ ПИД %%ЦП МЕМ ВСЗ РСС ТЕЛЕТАЙП СТАТ ВРЕМЯ ЗАПУСКА КОМАНДЫ
1000 11634 51.2 0.1 32824 9112 ПТС/1 ЗП+ 13:24 7:49 someApp
+877
Techiegirl 9 июн. 2018 г., 02:36:35

У меня была та же проблема.

Этот Арч Линукс форуме пост с описанием проблемы:

Параметр $path в ~/.bashrc и не гарантирует ваш WM/dmenu унаследуют эту ОКР.
Более актуален вопрос, "Как вы войти?" Обычно ОКР экспортируется в ~/.bash_profile или ~/.профиль доступен в Х приложений.
Запуск dmenu_run, как вы обычно делаете, затем в dmenu, тип
Эхо $путь > /tmp/и пути
Затем в терминале кошка /tmp/и путь , чтобы увидеть, что $путь.



В моем случае, $путь к директории в ~/.профиль не подхватывается dmenu. Мой оконный менеджер запускается из .xinitrc и добавив дополнительный экспорт путь=$путь:/реж/от/проценты на .файла файл до старпома my_wm линии Исправлена проблема. Это хоть немного неуклюжим.

Как отмечалось ранее, мне пришлось удалить ~/.кэш/dmenu_run файл и войдите в систему снова после внесения изменений, чтобы заставить его работать.

+807
incolor 30 мая 2014 г., 03:22:38

Если как wlan0 будет точка доступа (AP), то вы не должны пытаться использовать его в качестве клиента (вокзал, ГНА). Но это то, что

авто как wlan0
разрешить-автоопределения wlan0
как wlan0 iface защитный инет по DHCP
#шифрование WPA-Conf в файле /etc/файле wpa_supplicant/wpa_supplicant от.конф

говорит: "пожалуйста, используйте как wlan0 как в клиент-режиме, и получить для него IP-адрес с помощью DHCP". Вместо этого, вы хотите что-то вроде

авто как wlan0
как wlan0 iface защитный инет статический
адреса 10.0.0.1
сетевая маска 255.255.255.0
трансляции 10.0.0.255

Заменить 10.0.0.* и маску с диапазона IP-адресов, которые вы хотите иметь для вашего АП.

+777
Black Apple 1 июл. 2013 г., 14:13:40

Ядро я использовал, был впоследствии лишен. Мои модули не были раздеты. Следовательно, они были очень большими.

+708
PAMOH8612 13 сент. 2016 г., 12:03:37

Вы говорите, что вы хотите жесткие ссылки — но вы же говорите, что ты хочешь, чтобы"папки", которые представляют собой вид'. Если вы счастливы с чем-то, что похоже, что вы хотите, рассмотрим функции оболочки:

ls_final() { ЛС "[email protected]" | грэп has_final; }

Вы в настоящее время вопрос говорит

имя файла "имеет _final"

Я не знаю, что это опечатка

имя файла "_final"

Если это так, изменить грэп соответственно.

Фильтровать по Размер файла немного сложнее, особенно если ограничить выбор-это не сила десяти (или небольшое число раз с силой десяти). Им можно управлять с помощью команды grep, если вы всегда используете (строчные л) или эквивалент. Вероятно, имеются и другие подходы, хотя это может быть очень тяжело чтобы сделать это элегантно, надежно и эффективно.

ТЛ;др если вы формируете привычку использовать ls_final, ls_smallи т. д. он будет выглядеть только нужные файлы присутствуют.

+706
timrwild 25 июл. 2012 г., 08:50:10

В дополнение к реализации различных оптимизаций в @ОДС ответить, существует огромное алгоритмической оптимизации. (Там также может быть некоторые криптоаналитических атак, я не уверен, насколько сильный алгоритм склепа Unix является, но это, вероятно, выходит за рамки сценария оболочки)

Проблема, которую вы пытаетесь решить, вероятно, был описан как "брутфорс паролей". Чтобы это сделать, вы создали все возможности в алфавитном порядке, и проверял их, выходя на первый матч. Если вы моделируете пароль как "случайную строку из 5 символов", то это на самом деле оптимально.

Очень немногие люди будут использовать на самом деле случайный пароль. Несколько, не самых. Даже для вещей, где они действительно должны. Особенно за то, что они не считают важным. Мы уже это подтвердил недавно и неоднократно многочисленными утечка базы паролей.

Пароль, который вы ищете может быть dbKbuW. Но это много, много раз больше шансов быть йцукен, абв123, или 123456. Мы знаем из утекшей базы данных, что топ-тысяча самых распространенных паролей треснет большинства.

Поэтому реальное ускорение для создания своими догадками в лучшем порядке. Как минимум, сортировать ваши письма-списки по частоте на английском языке (или, еще лучше, в паролях). Вы должны попробовать е намного раньше, чем Зи. Запуск через список 1000 или так, общие пароли, прежде чем даже начать свой перебрать итерации через пространство поиска (отходов немного времени, если это не сработает, но в зависимости от действий пользователей будет более чем в половине случаев).

Если вы посмотрите на то, как фактическое взлома паролей, инструменты для работы, они проходят через несколько списков распространенных паролей, затем с помощью словаря, затем через вариации (например, "смена е на 3"), затем с помощью различных паролей генерации стратегий, и только если ничего из этого не сработает, то, наконец, начать перебора пространства поиска.

+664
Marek Waszkiewicz 14 авг. 2014 г., 11:25:26

В предыдущих версиях БТК легко было запустить один экземпляр приложения с настройками по умолчанию ГТК:

GTK2_RC_FILES= epdfview

Но для версии 3, это не будет работать:

GTK3_RC_FILES= выказывают

не имеет никакого эффекта. Это удобство точно ушел?

+635
Chenxin 14 мая 2010 г., 23:52:50

Я всегда использовал УПП , чтобы скопировать его снова:

УПП -П 8129 ~/.по SSH/id_*.паб пользователь@хост:
СШ -п 8129 пользователь@хост 'кот id_*.паб >> ~/.по SSH/authorized_keys'

Хотя я должен сказать, я, вероятно, буду использовать другие (в одну линию/связь) методов, если я помню их в будущем. Но это еще один вариант для вас.

+579
Rachelle Ann Facistol Mata 2 нояб. 2016 г., 16:06:29

Я установил на ЕК@ экземпляра Linux-это vsftp. Я могу связаться с активном режиме без проблем, но в пассивном режиме я получаю:

Отключен от сервера
Не удалось получить список каталогов 
Ошибка в листинге директории '/'.

У меня есть набор: pasv_address=мой-общественно-ИС

В чем может быть проблема?

+523
Gerrad 8 янв. 2011 г., 02:36:29

Разрешили сайте команды меняются с FTP-демона В использования (например, сайт ЧМОД В входит; некоторые в веб-сервера Apache FTP-сервера). В общем, это не удаленной оболочки объекта, вы, кажется, ожидаете. Однако, судя по всему, службу proftpd поддерживает сайт партнеров.

Так что если ваш ftpd на вопрос есть сайте партнеров, вы можете попробовать на сайте партнеров на стороне клиента петлю, как этот (псевдо-код, сервер не упоминается, также имейте в виду, что там могут быть пробелы (нужны цитаты); также вам понадобится универсальный ftp-клиент (lftp может быть хороший кандидат)):

на файл в $(./фтп-вам-каталог-список)
 делаем ftp-клиент -с сайта "партнеров ${файл}"
сделано

Редактирование также увидеть Жиля хороший ответ вот на возможное взаимодействие между Баш скрипты и lftp.

В добавлении , если вы в некоторых скриптовых языков (например, Python), вы могли бы сделать себе одолжение путем с использованием некоторых FTP-библиотека.

+513
Dmitry Tabakov 26 мая 2019 г., 11:01:28

Fedora использует в качестве стандартной среды рабочего стола GNOME. GNOME использует виртуальную файловую систему под названием в, представляет сетевые ресурсы. Они не подключены к определенной точке монтирования. Если вы хотите, чтобы просмотреть эти крепления через терминал, вы должны использовать инструменты поставляются (в*).

Если ваши разделы монтируются по старинке, то просто тип крепления , чтобы выяснить, где они установлены.

+510
jackia1 2 сент. 2010 г., 08:53:11

[Это было написано за несколько лет до повсеместного внедрения journald на системах с systemd и не коснуться его. В настоящее время (конец 2018 года) как journald и (R)и syslog, описанные ниже, используются в дистрибутивах, таких как Debian. На других, возможно, придется установить rsyslog если вы хотите использовать одновременно, но интеграция с journald-это просто.]

Я не буду обсуждать лесозаготовки применительно к Ubuntu в частности много, поскольку эта тема является стандартным для Linux в целом (и я полагаю, что большинство или все, что я скажу тоже верно в общем на любой вкус *Nix, но не верьте мне на слово что). Я также не буду говорить много о "как читать журналы" за ответом на этот вопрос:

Это предположение даже правильно, что они написаны для человека удобочитаемость или они, как правило, оценены и использованы другие инструменты?

Я думаю, что зависит от приложения, но в целом, по крайней мере в отношении того, что происходит в системный журнал (см. ниже), они должны быть удобочитаем. "Смысл для меня" - это другой вопрос, лол. Однако, они могут также быть структурированы таким образом, что делает разбор их с помощью стандартных инструментов (команда grep, awk и т. д.) Для облегчения конкретных целей.

В общем, во-первых, существует различие между приложениями, которые делают свои собственные лесозаготовки и приложений, которые используют системный журнал. Apache по умолчанию является бывшим, хотя он может быть настроен, чтобы сделать позже (который я думаю, большинство людей сочли бы нежелательным). Приложения, которые делают их собственные лесозаготовки могли сделать это любым способом, через любое место на файл (- ы), так там не так много, чтобы сказать об этом. Система логгер обычно называют системный журнал.

системный журнал

"Системный журнал" - это действительно стандартная , которая реализуется с помощью процесса демона обобщенно называют и syslogd (D-это демон!). Преобладающим демон syslog, используемых в настоящее время на Linux, включая Ubuntu, это rsyslogd. Rsyslogd может сделать многое, но как настроен из коробки на большинстве дистрибутивов он эмулирует традиционный системный журнал, который сортирует вещи в простые текстовые файлы в каталоге/var/журнал. Вы можете найти документацию в /usr/доли/документ/пакет-док-[версия] (осторожно, там тоже в /usr/доли/документ/пакет-[версия], но это просто уведомления из источника пакета, такие как новости , а список изменений). Если она есть, это HTML, но обмен стека не позволяет встраивание локальной файловой ссылки:

file://usr/share/doc/rsyslog-doc/index.html

Так что можно попробовать копировать вставлять. Если его там нет, это может быть отдельный пакет, который не установлен. Ваш запрос упаковывая системы (например, АПТ-кэша поиск пакет | грэп док).

Конфигурация в файле/etc/пакет.конф, который имеет ручной страницы, человек, пакет.конф, хотя в то время как руководство страница делает точный ссылкой, Это может быть менее проницаемыми, как введение. К счастью, основы фондового пакет.конф соответствовать традиционного системного журнала.conf, для которых есть много введений и учебники по. Этот, например, что вы хотите взять из этого, а глядя на ваш местный пакет.конф, понимание объектов и приоритетов ("приоритет" иногда называют осторожностью), поскольку они являются частью вышеупомянутых системный журнал стандарт. Причина, по которой этот стандарт важен, потому что пакет на самом деле получает свои вещи через ядро, и что ядро реализует стандарт.

Что касается $ директив в rsyslog.конф, это пакет определенных и если вы установите, что опционные док упаковке вы найдете инструкции к ним в rsyslog_conf_global.html.

Получайте удовольствие...если вам интересно о том, как приложения используют системный журнал, смотрю на мужчину регистратор и человек 3 системных журналов.

Ротацию Логов

Нормативные помощью вращающихся логов с помощью утилиты logrotate, предназначенную (и есть человек у logrotate). Нормативный метод используете logrotate через хрон демон, хотя это не должно быть сделано таким образом (например, если вы склонны превратить ваш рабочий стол каждый день, вы могли бы также просто сделать это один раз при загрузке до системного журнала начинается , но, очевидно, после того, как файловая система смонтирована в режиме RW).

Есть хорошее введение в logrotate, предназначенную здесь. Обратите внимание, что logrotate, предназначенную не только для системного журнала вещи, он может быть использован с любым файлом. Базовый файл конфигурации в/etc/logrotate, предназначенную.конф, но так как конфигурация имеет директиву include, обычно большинство вещей идет в отдельные файлы в каталоге/etc/logrotate, предназначенную.д каталог (здесь D-это каталог, а не демон; у logrotate не демон).

Важная вещь, чтобы рассмотреть, когда используете logrotate каких приложений будет заново действовать, когда его лог-файл становится "вращается" -- другими словами, переехал - в то время как приложение работает. Компания WRT (р)и syslogd, это будет просто перестать писать в этот журнал (я думаю, есть основания для этого). Обычным способом борьбы с этим является, чтобы сказать syslog на перезагрузку (и снова открыть все свои файлы), который является, почему вы видите postrotate директивы в logrotate, предназначенную conf файлов посылает сигнал SIGHUP на syslog-демона.

+475
Sherry Cunningham 2 окт. 2017 г., 21:48:49

Наличие батареи информация в файл/sys/класс/power_supply является надежным индикатором того, что система поддерживает аккумулятора, и это стандартная функция для Linux, но это не всегда называют то же самое. Ваш называется BAT1. Я смотрю здесь, что называется аккумулятор. Кроме того, не все записи в файл/sys/класс/power_supply аккумуляторы.

Искать все файлы, соответствующие этому шаблону /системы/класса/питания/питания/*/тип. Если хотя бы один из них содержит работы батареи, есть батареи. Другие возможные значения для типа являются сети и по USB, может и больше.

Одна другая вещь, которая возможно заключается в том, что система принимает батареи, но батарея была физически удалена. В этом случае батарея электропитания будет по-прежнему отображаться. Как вы можете обнаружить это , может быть, зависит от системы, но попробуйте почитать емкости или что-то и посмотреть, если вы получите прочитать ошибку, которая, вероятно, означает, что батарея была удалена.

Детали: Documentation/power/power_supply_class.txt

+464
Tim Stringer 26 окт. 2011 г., 00:47:47

Я пытаюсь перекодировать в 854х480 кодек H264 MP4 видео в h265 MP4 видео через vaapi.

Видео не приятно смотреть, и кодирует очень быстро. Но есть черная полоса справа от видео. Если я изменю моей команде высококлассные 1280х720, этого не произойдет. Любая помощь ценится, спасибо.

ffmpeg на hwaccel vaapi -hwaccel_device /Дев/Дри/renderD128 -hwaccel_output_format vaapi -я 1.МР4 -С:в hevc_vaapi -ВФ scale_vaapi=854:480 -СС 00:00:0.0-Т 10 -maxrate 400 выход.МР4
+449
16807 19 окт. 2013 г., 17:10:01

https://github.com/chrissound/SodiumSierraStrawberry

Позволяет укоротить путь, как:

От: /главная/натрия/проекты/личные/Сиерра/супер/длинный/путь/HolyAvacado

К: »Проекты Малых.../Суп.../Долгота.../Пэт.../HolyAvacado/

+447
m13r 3 июл. 2016 г., 08:30:42
  1. переадресация с IPv4 должен быть включен.
  2. Не назначьте IP ничего между вашей физической форме, и pfSense интерфейсе WAN.

  3. Пусть pfSense сделать свою работу DHCP от точки доступа.

  4. Назначить статический IP-адрес LAN-интерфейса pfSense и включить DHCP-сервер с pfSense к локальной сети.

  5. Включить DHCP-клиент на vmbr3.

  6. Включить DHCP-клиента на все последующие Домены КВМ добавлен в vmbr3.

+425
eddeeye 5 сент. 2016 г., 02:44:53

Чтобы сделать нечто подобное, вам придется использовать некоторые любят (Н)проклятия: http://www.gnu.org/software/ncurses/

+421
Dave Lentz 4 апр. 2010 г., 11:23:32

На Ubuntu:

$ судо кот /ВАР/журнал/авт.журнал|команда grep СШ|грэп принять

На CentOS/RHEL с:

$ судо кот /ВАР/лог/безопасной|грэп СШ|грэп принять

Это позволит отобразить все подключения, и как они аутентификация [после последнего вращения файла журнала].

Если вы только хотите просмотреть пароль, просто труба через другой команды grep:

 ... грэп СШ|грэп принять|пароль команда grep 

И за бонусные очки, краткий список пользователей с использованием паролей (Если выходные данные команды выше показать вам имя пользователя в 9-й столбец):

... грэп пароля|у awk '{печати $9}'|СНП|уник
+419
Danny278 13 февр. 2012 г., 05:07:26

У меня просто настройка сервера Linux. Но в настоящее время у меня возникли проблемы при подключении к внешнему миру. Я не в состоянии сделать с wget,программа apt-get или пинг. Здесь указаны некоторые важные детали:

$пинг google.com
пинг: неизвестный хост google.com

кошка /и т. д./файл resolv.конф

dmust поиск.местные
имен 198.154.126.1

ВИМ /и т. д./сети/интерфейсов

# Этот файл содержит описание сетевых интерфейсах, имеющихся в системе
# и как их активировать. Дополнительные сведения см. В разделе интерфейсы(5).

# Сетевой интерфейс loopback 
авто Ло
iface защитный Ло инет замыкания

# Основной сетевой интерфейс
авто eth0 в
слово iface eth0 в инет статический
 адрес 198.154.126.179
 сетевая маска 255.255.255.0
 сеть 198.154.126.0
 трансляции 198.154.126.255
 шлюз 198.154.126.1
 # ДНС-* варианты реализуются пакет resolvconf, если установлен
 ДНС-серверы 198.154.126.1
 ДНС-поиск dmust.местные

Обновление

маршрут -Н

Таблица IP-маршрутизации ядра 
Пунктом Genmask Шлюз Флаги Метрики Использовать Реф Недвижимость
198.154.126.0 0.0.0.0 255.255.255.0 u 0 не 0 0 eth0 в
0.0.0.0 0.0.0.0 198.154.126.1 в UG 100 0 0 eth0 в

команда grep '^хозяев /и т. д./файл nsswitch.конф
ведущие: файлы ДНС
+382
Arman Pabla 18 мая 2011 г., 06:19:04

Я пытаюсь установить Droxбыл Оперативной на ноутбуке я только что принял под управлением Ubuntu, и я получаю эту ошибку, когда я пытаюсь запустить игру:

судо ./DroxOperative./DroxOperative: ошибка при загрузке разделяемых библиотек: libopenal.так.1: невозможно открыть разделяемый объектный файл: нет такого файла или каталога

Насколько я могу судить, это довольно распространенная ошибка для запуска, но я не могу найти как это исправить.

Что здесь происходит и как это исправить? Я знаю, что мне нужно установить в OpenAL, но я это уже сделал. Из чего я могу собрать, я получаю сообщение об ошибке, потому что игра представляет собой 32-разрядное приложение, и я установил 64-битную с OpenAL. Где я могу найти последнюю версию 32-бит с OpenAL

+374
Maggy Ghattas 26 сент. 2010 г., 00:42:34

Я использую в CentOS 7, Давайте шифровать (хочу очистить все вещи, связанные 002.бкит.ВН), то nginx.

Я пытаюсь установить давайте шифрование для 002.бкит.ВН , потом удалить его, некоторые вещи все еще существуют, но я не знаю, как снимите его.

Потом, это мой сайт https://002.bkit.vn/

Если я позволю Гугл Хром небезопасным загрузить скрипт, он будет отображать неплохо.

Как удалить перенаправления HTTP на HTTPS?

+291
user132523 27 февр. 2017 г., 07:37:09

Я хочу использовать шавка с несколькими учетными записями. Я хотел бы использовать другой SMTP-сервера для отправки электронной почты через программу ssmtp. Один внутренний, предоставляемых компанией (IMAP поддерживается) и один для моей личной электронной почты (на Gmail).

+278
LanaCos 29 июл. 2019 г., 08:23:10

Ваше регулярное выражение является правильным, но СЭД не обрабатывает lookarounds. Ваш код отлично работает с помощью Perl:

на Perl -ПЭ с:(?<=<Тип>)по умолчанию(?=</Тип>):супер:' ваше.файл

Как регулярные выражения, как правило, не очень хорошо в XML-обработки, я предлагаю попробовать XMLStarlet:

в XML-Эд -О-у '//тип' -в 'супер' ваш.файл

Как на Perl и XML с можете сделать редактирование на месте тоже, поэтому не добавляет боли замена СЭД.

+184
Hazen Fira 11 мар. 2016 г., 16:14:16

Сначала проверьте это кошка /proc/filesystems с тем, если для vfat является их или нет. и звучит глупо, но работа много времени использовать некоторые guitool ФС инструменты, как утилита GParted иногда его легко устранить с ними.

Проверить все модули файловой системы, проверьте здесь также Общ /библиотека/модули/$(uname-Р)/ядра/ФС

+182
Alexandru Cancescu 7 мая 2018 г., 04:18:04
SSH_CMD ивал [email protected]$SSH_DST "команды mkdir $dir1 и && МВ $dir1 и $Директория dir2 && касания $директория dir2"

Это практически тот же как бег

функция eval "$SSH_CMD [email protected]$SSH_DST команды mkdir $dir1 и && МВ $dir1 и $Директория dir2 && касания $директория dir2"

ивала присоединяется аргументы, он попадает в одну строку, а потом бежит, что в качестве командной оболочки. В частности, && действует на локальной стороне, поэтому Shell запускает первый СШ ... команды mkdir dir1 и, и если это удается, он бежит МВ каталога dir2 dir1 ит. д. команды mkdir работает на удаленном хосте, но мВ на локальном хосте, где dir1 и не существует.


Нет необходимости использовать функцию eval здесь. Твоя первая команда будет делать без него:

$SSH_CMD [email protected]$SSH_DST "команды mkdir $dir1 и && МВ $dir1 и $Директория dir2 && касания $директория dir2"

Когда $SSH_CMD это не цитирует, оно разделяется на три слова, СШ, , и path_to/личность так, как хочется. Это работает, но это немного грязным, и ты попадешь в беду, если вы были в числе аргументов с пробелами в $SSH_CMD, или использовать Глоб персонажей.

Если вам нужно хранить переменное количество аргументов, как в SSH_CMD, то лучше использовать массив. Кроме того, цитировать других переменных, чтобы предотвратить разбиение на слова тоже:

ssh_cmd=(СШ-я path_to/личность)
ssh_user=пользователь
ssh_host=сервер
из dir1=dir1 и
директория dir2=директория dir2
"${ssh_cmd[@]}" "[email protected]$ssh_host" "команды mkdir $dir1 и && МВ $dir1 и $Директория dir2 && касания $директория dir2"

Увидеть BashFAQ 050: я пытаюсь создать команду в переменную, но в сложных случаях всегда удастся! и как мы можем выполнить команду, хранящуюся в переменной? для более подробной информации.

+163
werd1002 15 апр. 2017 г., 05:12:17

На OSX Сьерра, где я могу контролировать свои сочетания клавиш через файловую систему?

Я бы хотел, чтобы скрипт установки эквивалент XKBOPTIONS="клавише Ctrl:nocaps" В /и т. д./По умолчанию/клавиатуры в Ubuntu, но и на Mac.

+130
Bildev 5 окт. 2017 г., 04:12:40

без вариантов, чтобы исключить имена.

Но как сделать это, чтобы исключить часть имени - например. образец *~

?

+121
Bell 15 сент. 2018 г., 03:56:55

Я веду дискурс форума контейнер программного обеспечения на сервере под Ubuntu, я смог войти в контейнер, используя команду.

судо докер экзек-это приложение Баш

И тогда я установка пароля для пользователя root, но SSH не работает, как ожидалось всегда получаю неверный пароль.

СШ журнала отладки

Набор в /proc/самоуправления/oom_score_adj равным к 0
debug1: rexec начать в 5 из 5 newsock 5 трубы 7 носки 8
debug1: из inetd розетки после dupping: 3, 3
Подключение ::1 порт 45924 на ::1 порт 22
debug1: клиент версия протокола 2.0; клиентское программное обеспечение версии OpenSSH_6.6.1p1 Убунту-2ubuntu2
debug1: матч: OpenSSH_6.6.1p1 Убунту-2ubuntu2 ПЭТ OpenSSH_6.6.1* Совместимость 0x04000000
debug1: включение режима совместимости для протокола 2.0
debug1: локальное строке версия протокола SSH-2.0-OpenSSH_6.6.1p1 Убунту-2ubuntu2
debug1: permanently_set_uid: 105/65534 [preauth]
debug1: list_hostkey_types: СШ-ОГА,СШ-ДСС уровнем-алгоритм SHA2-nistp256,СШ-ed25519 [preauth]
debug1: SSH2_MSG_KEXINIT послал [preauth]
debug1: SSH2_MSG_KEXINIT получил [preauth]
debug1: KEX по: клиент->aes128-CTR и сервер [email protected] никто [preauth]
debug1: KEX по: сервер->клиент aes128-Суу [email protected] никто [preauth]
debug1: ожидая SSH2_MSG_KEX_ECDH_INIT [preauth]
debug1: отправлено SSH2_MSG_NEWKEYS [preauth]
debug1: ожидая SSH2_MSG_NEWKEYS [preauth]
debug1: получил SSH2_MSG_NEWKEYS [preauth]
debug1: KEX по сделано [preauth]
debug1: userauth-запрос на суперпользователя служба СШ-способ подключения не [preauth]
debug1: попытка 0 отказов 0 [preauth]
debug1: Пэм: инициализация для "корень"
debug1: пам: установка PAM_RHOST на "localhost"
debug1: пам: установка PAM_TTY ДО "СШ"
debug1: userauth-запрос для root пользователей сервиса ssh-соединения способ пароль [preauth]
debug1: 1 попытка сбоев 0 [preauth]
модуля pam_unix(накопитель sshd:авт): сбой проверки подлинности; параметр logname= идентификатором uid=0 euid так=0 телетайп=СШ Русер= rhost=пользователя на localhost=корень
debug1: пам: аутентификация по паролю не для root: сбой проверки подлинности
Не пароль для root от ::1 порт 45924 ssh2
Превышение полномочий или плохие собственности на файл /var/журнал/btmp
Соединение закрыто ::1 [preauth]
debug1: do_cleanup [preauth]
debug1: monitor_read_log: детский журнал ФД закрыт
debug1: do_cleanup
debug1: пам: очистка
debug1: убийство privsep ребенка 32712

Посоветуйте, пожалуйста.

+96
sontario 16 нояб. 2018 г., 13:44:45

Если порт все еще находится в состоянии прослушивания, то приложение все равно как-то работает. Используйте команду как lsof -я , чтобы проверить, какой процесс слушаю и убить его.

Если у вас нет команды lsof инструмент установлен, вам придется искать в ПС-эф для все запущенные процессы приложения.

+74
nanounanue 19 июл. 2017 г., 13:48:53

Давая процесс право изменить его uid эквивалентно предоставив ей право работать с правами root, поскольку он может просто изменить его uid в корень. Так что даже если вы сделали это, не было бы никакой пользы.

Вы можете улучшить безопасность этой установки путем сокращения рисков, что программу можно заставить делать что-то непредвиденное, как корень. Это не уменьшит воздействие полного компромисса (если злоумышленник может сделать вашу программу запустить произвольный код), но это может уменьшить влияние частичного компромисса (где он только смог убедить вашу программу, чтобы сделать некоторые конкретные вещи, например, прочитать файл и отобразить его). Чтобы снизить риск, уменьшить промежуток времени, в течение которого программа запущена от имени root. Запустить его как отдельного пользователя, но держать его реальный uid равным 0. Когда программа должна быть корневой, он временно переключается с эффективным uid на 0, а затем переключается обратно.

Отметим, что это не очень практично в многопоточной программе с ID пользователя в течение всего процесса, а не на поток.

Для повышения надежности и безопасности, осуществления разделения полномочий: разделение программы на два процесса, один работает как корень и один, который работает в качестве отдельного пользователя. Процесс, который запускается как root, следует делать как можно меньше. Он принимает запросы от других процессов, проверяет их по мере возможности, и выполняет их. Тогда, даже если другой процесс глючит, она может делать-это вопрос допустимых запросов.

Для простых нужд, а не написать программу, которая работает с правами root, вы можете быть в состоянии иметь правило суда, который напрямую позволяет основной программы для выполнения команд в качестве третьего пользователя. Вместо того, чтобы полагаться на промежуточных корневых программу для проверки, можно встроить проверку в правиле судо, например

myapp_user все = (все-все) validate_and_run

Это позволяет myapp_user для выполнения команды от имени любого пользователя, но команда должна быть validate_and_run (с любыми аргументами).

+24
Mohit Tomar 4 сент. 2013 г., 14:20:33

Показать вопросы с тегом