Шаблон подстановки имени файла для «либо 1, либо 2» — [12]
. Это будет соответствовать одному символу, который равен либо 1, либо 2.
Чтобы сопоставить все .c
файлы, имена которых начинаются с abc
и продолжаются с 1 или 2, вы должны использовать
abc[12].c
Чтобы разрешить пятый символ, который является также 1 или 2, вы должны использовать
abc[12][12].c
?
будет соответствовать любому одиночному символу, а *
будет соответствовать любому количеству символов , поэтому abc[12][12]???.c
будет соответствовать abc11xxx.c
, но не abc11xxxx.c
, тогда как abc[12][12]*.c
будет.
IIRC, блокирующий сайты в /etc/hosts, переопределяет только DNS-поиск машины, вместо того, чтобы фактически блокировать подключения, поэтому дети, вероятно, все еще могут получить доступ к YouTube, напрямую перейдя по IP-адресу в адресной строке
Я бы использовал для этого брандмауэр iptables, чтобы ваша цепочка правил выглядела примерно так:
iptables --append OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
, чтобы заработали уже установленные соединения.
Затем, для IP основного сайта академии хана и IP-адресов каждого из сайтов, нуждающихся в белом списке, упомянутых в этом руководстве (, которые можно найти, используя, например, dig +short youtube-nocookie.com
из dnsutils
,)
iptables --append OUTPUT --destination [IP of site] -j ACCEPT
Что позволит разрешить любые исходящие подключения к этим сайтам
Затем, чтобы УДАЛИТЬ все исходящие запросы на подключение от этого пользователя, которые не были приняты в предыдущих правилах,
iptables --append OUTPUT -m owner --uid-owner [Ubuntu-Username] -j DROP
, затем сохраните/установите конфигурацию
iptables-save
Так работает
(UbuntuUser requests connection, sending output packet)
=> (if packet is part of an ongoing relationship, Accept (send) it)
=> (if packet destination is a khanacademy site, Accept it)
=> (if packet is from this user, and hasn't been accepted already, drop it)
Недостатком является то, что если IP-адрес любого из тех сайтов, которые вам нужно внести в белый список, изменится, вам придется перенастроить правила iptables, и чтобы использовать этот способ, вам нужно иметь права администратора на машине, но это дает вам контроль над сетевыми пакетами на уровне ядра -, что сложнее для кого-то понять
Вы, вероятно, захотите сделать что-то похожее на цепочку INPUT, если она еще не была обработана, но вышеизложенное должно (теоретически, я не пробовал на практике )достичь того, что вам нужно
Это руководство также может быть устаревшим, первый из этих сайтов из белого списка, похоже, не в сети