Команда для печати пользователей, которые не имеют/sbin/nologin как оболочки

dnsmasq в настоящее время несколько ненадежно на моем прерывателе барьера, что приводит также к

nslookup: can't resolve 'starkill': Name or service not known

здесь, даже если имя обычно может быть решена без проблем.

сначала попробуйте a

killall -HUP dnsmasq

или даже перезапустите, если хотите быть уверенным, что dnsmasq на самом деле обслуживает запросы так, как и должно.

во-вторых, в dnsmasq есть возможность автоматически завершать FQDN'ы. Я хочу, чтобы это работало здесь со следующим конфигурационным файлом (/etc/config/dhcp):

config dnsmasq
    option domainneeded '1'
    option boguspriv '1'
    option localise_queries '1'
    option rebind_protection '1'
    option rebind_localhost '1'
    option local '/lan/'
    option domain 'lan'
    option expandhosts '1'
    option readethers '1'
    option leasefile '/tmp/dhcp.leases'
    option resolvfile '/tmp/resolv.conf.auto'
    option filterwin2k '1'
    list addnhosts '/var/adblock/block.hosts'

экспандхозы предназначены только для /etc/hosts, так что в основном не применимы к вашей установке, но я думаю, что локальный И домен должен помочь вам.

мой /etc/config/network имеет

option dns '192.168.200.1'

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

вы пробовали tcpdump'ing на вашем DNS сервере при прямом запросе с помощью nslookup? достигает ли когда-нибудь запрос? это был бы первый указатель, чтобы убедиться, что проблема действительно в открытом окне....

если вы найдете способ заставить dnsmasq последовательно обслуживать запрос, дайте мне знать, это действительно делает вещи здесь довольно нестабильными.

Я не знаю, что вы можете редактировать /etc/dnsmasq.conf вообще, но есть много вариантов, с которыми вы можете играть. Я использовал dnsmasq на полном linux boxen несколько раз и всегда мог настроить его под свои нужды, но я думаю, что на openwrt все немного по-другому, как мне кажется...

также, вероятно, обратите внимание на соответствующий раздел (вторичные dns) по адресу http://wiki.openwrt.org/doc/howto/dhcp.dnsmasq#add_a_secondary_dns

-1
28.04.2015, 17:04
3 ответа

Для печати только пользователей, у которых нет оболочки входа в систему, вы можете использовать awk только в простейшем случае:

awk -F/ '$NF != "nologin"' /etc/passwd

Здесь мы используем -F / в качестве разделителя, а затем '$ NF =! "nologin" 'где $ NF - последнее поле в строке / строке. Действие по умолчанию в awk` - print, поэтому печатается вся строка.

Найти все файлы, начинающиеся с s , можно легко выполнить с помощью find . GnuFind в этом случае

find /etc/ -maxdepth 1 -type f -name 's*' -printf '%P\n'

Здесь мы используем GNU find для поиска пути / etc / , а затем проверяем один уровень (без подкаталогов).

-тип f указывает find проверять только файлы. -name 's * не требует пояснений -printf'% P \ n ' '% P' - это формат printf. См. man find для получения дополнительной информации.

1
28.01.2020, 05:11
1. grep -v '/sbin/nologin' /etc/passwd|awk -F: '{print $1}'

2. ls s*|wc -w

или лучше:

2. ls -l s*|wc -l

Чтобы избежать ошибки при имении имени файла с пространством (ыми)

0
28.01.2020, 05:11

Первое:

grep -v "/sbin/nologin$" /etc/passwd | cut -d: -f1

Второе:

ls -ld /etc/s* | wc -l
0
28.01.2020, 05:11

Теги

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