позволить доли окон через iptables в debian 9

grep '^ [^: ]\+:: '/etc/shadow ничего не покажет, так как образец Regex неверен.

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

grep '^[^:]\+:.:' /etc/shadow

Давайте разбьем его:

  • ^ [^: ]\+ найдет часть от начала строки до следующего : т.е. имя пользователя

  • За именем пользователя последует : , любой отдельный символ, указанный маркером Regex . (возможно, ! или * ), а затем : .

-121--154175-

Вот интересный вариант. Вы можете использовать sed непосредственно, чтобы удалить все копии первой строки и оставить все остальное на месте (включая саму первую строку).

sed '1{h;n;};G;/^\(.*\)\n\1$/d;s/\n.*$//' input

1 {h; n;} помещает первую строку в область хранения, печатает ее и считывает в следующей строке - пропуская остальные команды sed для первой строки. (Также пропускает первый 1 тест для второй строки , но это не имеет значения, поскольку этот тест не был бы применен ко второй строке.)

G добавляет новую строку, за которой следует содержимое удерживаемого пространства, к образцу пространству.

/^\(. *\)\n\1 $/d удаляет содержимое образца пространства (таким образом, переходя к следующей строке), если часть после новой строки (т.е. то, что было добавлено из области хранения) точно соответствует части перед новой строкой. Здесь будут удалены строки, дублирующие заголовок.

s/\n. * $// удаляет часть текста, добавленного командой G , так что печатается только строка текста из файла.

Однако, поскольку regex является дорогостоящим, несколько более быстрым подходом было бы использование одного и того же условия (с отрицанием) и P до новой линии, если часть после новой линии (т.е. то, что было добавлено из удерживаемого пространства) не точно соответствует части перед новой линией, а затем безоговорочно удалить образец пространство:

sed '1{h;n;};G;/^\(.*\)\n\1$/!P;d' input

Вывод при вводе:

ID  Data1  Data2
1    100    100
2    100    200
3    200    100
4    100    100
5    200    200

-121--23930-

Я не знаю конкретно о systemd, но если вы используете StartManager, вы можете использовать nm-online в верхней части вашего сценария, чтобы подождать, пока сеть не заработает.

if nm-online; then 
    echo "Online"
    # do my stuff
else
    echo "Network error"
fi

По умолчанию он будет ждать 30 секунд, пока сетевое подключение станет активным, и возвращает 0 (true), если это так, в противном случае - false.

Это, по крайней мере, лучше, чем пинг, я думаю.

0
25.10.2018, 18:44
1 ответ

так как я установил только cifs -утилиты, которые мне не нужны138139137вот что у меня сработало:

iptables -t filter -A OUTPUT -p tcp --dport 445 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 445 -j ACCEPT

надеюсь, кому-то это будет полезно:-)

0
28.01.2020, 04:11

Теги

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