LINUX.ORG.RU

Сообщения HolyBoy

 

[bash] удаление повторяющихся строк

Форум — Development

Доброй ночи.

Имеется два файла с содержимым

file1

4
5
1
12

file2

5
12

Из file1 надо удалить все строки, совпадающие со строками в file2. Строки могут содержать абсолютно любые символы.

Родил только что-то вроде:

cat file2 | while read a; do sed  '/"$a"/d' file1 ; done

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

И как эту задачу решить красиво?

PS Файлы по размеру небольшие, так что, вполне бы сгодилось решение вида

cat file1 file2 | $(COMMAND) 

где $(COMMAND) — какая-нибудь команда, навроде uniq, только не оставляющая ни одной строки, повторяющейся более одного раза.

и результат должен получиться для file1:

4
1

 

HolyBoy
()

[mail][greylisting] sqlgrey

Форум — Admin

Добрый день.

Давно пользуюсь этим замечательным продуктом. Базу держу на PostgreSQL.

Конфиг:

conf_dir = /etc/sqlgrey
loglevel = 2
log_override = whitelist:1,grey:2
user = sqlgrey
group = sqlgrey
inet = 2501    # bind to localhost:2501
pidfile = /var/run/sqlgrey.pid
confdir = /etc/sqlgrey
reconnect_delay = 2
max_connect_age = 48
connect_src_throttle = 5
awl_age = 60
group_domain_level = 2
db_type = Pg
db_name = sqlgrey
db_host = mainserv
db_user = sqlgrey
db_pass = pass
db_cleandelay = 1800
clean_method = async
prepend = 1
greymethod = full
optmethod = none
discrimination = off
discrimination_add_rulenr = off
reject_first_attempt = delay
reject_code = 451
admin_mail = root@gate

В процессе корпоративного использования выяснилось, что письма со всяких бесплатных почтовиков, навроде google.com, аль mail.ru и подобных им приходят с задержками. Это объясняется тем, что у данных сервисов работает несколько почтовых серверов на отправку и они каждый раз могут отсылать письма с другого почтового сервера. Соответственно, sqlgrey считает, что это совершенно новое письмо с нового сервера и даёт ему отлуп на некоторое время. Т.о. полное время задержки в худшем случае может составить до нескольких часов.

Была мысль использовать host, а затем, выдрав айпи и имена хостов, напрямую занести их в таблицу whitelisted domains, но, скажем, для яндекса используются хосты из домена mail.yandex.net вида: forward9.mail.yandex.net, forward12.mail.yandex.net и тд.

Соответственно, для yandex.net ничего похожего не выводится, для mail.yandex.net не выводится ничего.

Как можно решить эту проблему и решаема ли она в принципе?

Второй вопрос: можно ли использовать одну и ту же базу sqlgrey для запущенных на разных хостах sqlgey? Т.е., не возникнет ли к.-л. коллизий?

 

HolyBoy
()

iproute2+iptables=маршрутизация по меткам

Форум — Admin

Добрый день.

Как водится, появилась пара провайдеров, соответственно, следует раскидать трафик по интерфейсам.

Настроен iproute2:

# ip rule
0:      from all lookup local 
32756:  from 1.1.1.1 lookup s
32757:  from all fwmark 0x1e lookup s
32758:  from 2.2.2.2 lookup b
32759:  from all fwmark 0x14 lookup b
32766:  from all lookup main 
32767:  from all lookup default

# ip route list table s
ip.addr.dns.serv1 via 1.1.1.2 dev eth0 
127.0.0.0/8 via 127.0.0.1 dev lo 
default via 1.1.1.2 dev eth0
# ip route list table b
ip.addr.dns.serv2 via 2.2.2.3 dev eth2 
127.0.0.0/8 via 127.0.0.1 dev lo 
default via 2.2.2.3 dev eth2

Маршрут по умолчанию для всей системы при этом установлен через 1.1.1.2, т.е. через интерфейс eth0.

Настраиваем icmp:

$IPT -t mangle -A OUTPUT -s $EXTIP2 -p icmp -j MARK --set-mark 0x14                                                                 
$IPT -t mangle -A OUTPUT -s $EXTIP -p icmp -j MARK --set-mark 0x1e

Пробуем:

# ping -I eth0 -c 3 ya.ru 
PING ya.ru (77.88.21.8) from 1.1.1.1 eth0: 56(84) bytes of data.
64 bytes from ya.ru (77.88.21.8): icmp_seq=1 ttl=52 time=16.5 ms
64 bytes from ya.ru (77.88.21.8): icmp_seq=2 ttl=52 time=16.1 ms
64 bytes from ya.ru (77.88.21.8): icmp_seq=3 ttl=52 time=16.4 ms

--- ya.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 16.181/16.381/16.557/0.186 ms

gate ~ # ping -I eth2 -c 3 ya.ru 
PING ya.ru (77.88.21.8) from 2.2.2.2 eth2: 56(84) bytes of data.
64 bytes from ya.ru (77.88.21.8): icmp_seq=1 ttl=59 time=2.46 ms
64 bytes from ya.ru (77.88.21.8): icmp_seq=2 ttl=59 time=2.49 ms
64 bytes from ya.ru (77.88.21.8): icmp_seq=3 ttl=59 time=2.42 ms

--- ya.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 2.425/2.460/2.495/0.028 ms

Как видно, всё работает. Для чистоты эксперимента в таблицах временно убирались правила

from ip
. В общем, метки от iptables принимаются и понимаются iproute2.

Теперь, пробуем пустить исходящий трафик, скажем, от squid через интерфейс eth2. По умолчанию, как выше сказано, он бегает через eth0. Добавляем правило фаервола:

$IPT -t mangle -A OUTPUT -p tcp --dport http -j MARK --set-mark 0x14

и смотрим, куда же побежит сей трафик по логам:

Feb 18 14:28:03 gate kernel: [46051.290116] ACCEPT IN= OUT=eth0 SRC=1.1.1.1 DST=213.180.204.11 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=23141 DF PROTO=TCP SPT=45386 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 MARK=0x14 
Feb 18 14:28:05 gate kernel: [46053.183161] ACCEPT IN= OUT=eth0 SRC=1.1.1.1 DST=87.250.251.60 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=15276 DF PROTO=TCP SPT=58717 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 MARK=0x14

Если последить через tcpdump, то выясняется, что исходящий трафик бежит через eth2, но с адресом eth0:

# tcpdump -i eth2 -n 'tcp port 80'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 68 bytes
15:04:37.727833 IP 1.1.1.1.58404 > 78.140.142.125.80: . ack 3246838659 win 501 <nop,nop,timestamp[|tcp]>
15:04:37.734168 IP 1.1.1.1.58404 > 78.140.142.125.80: . ack 2897 win 501 <nop,nop,timestamp[|tcp]>
, а ответы возвращаются на интерфейс eth0, как и должно следовать из данного расклада.

Вопрос: как же заставить правильно работать эту связку? Ловить пакеты и менять адрес источника, и тогда, как понимаю, метить ничего не надо будет, iproute2 уже сказано, что делать с пакетами от соответствующих источников? Иных путей для решения проблемы нет?

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

HolyBoy
()

[LaTeX] Вывод произвольной даты.

Форум — Desktop

Существует ли какая-то связка команд, позволяющая выводить заданную произвольно дату в формате текущей локализации?

Хочется что-то вроде

\printdate{1.1.2010}
и результата вида

1 января 2010 г.

Соответственно, если вдруг изменится локализация, к примеру, с русской на английскую, то данная команда должна выдать результат навроде

January 1, 2010

Команда \today не устраивает, т.к. выводит только дату текущую, а надо, бывает, произвольную вывести.

 

HolyBoy
()

[latex] Двусторонняя печать.

Форум — Desktop

Создал tex-исходник с такими настройками:

\documentclass[twoside,a4paper,12pt]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T2C]{fontenc}
\usepackage[english]{babel}
\usepackage{indentfirst}
\usepackage{misccorr}


\begin{document}
\frenchspacing

Текст…
\end{document}

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

Получается, что место для подшивки после распечатки находится справа, а не слева, как должно быть. Как это забороть?

 

HolyBoy
()

Работа с read-only root filesystem

Форум — Admin

Пытаюсь водрузить в качестве раутера на ITX с тремя сетевыми ( ага :) ) оптимизированную генту.

Поскольку sys-apps/baselayout-2.0.1 с openrc работали некорректно, приходится работать с baselayout-1. Из-за того, что в качестве диска на этой системе используется CF, волей-неволей приходится использовать ro root.

Система разделена на два раздела, используется ext2 на каждом. Ядро собрано таким образом, что можно грузить эту машинку как по сети, так и с диска, т.о. вся отладка может делаться на сборочном хосте, проверяться по сети, а потом, простым копированием, всё необходимое переносится на CF.

На данный момент система загружается без проблем, при необходимости подхватывает динамический адрес по dhcp или из собственного файла конфигурации /etc/net.xxx. Сделано это было вот как:

1. ядро пропатчено и собрано с поддержкой unionfs; 2. отредактирован скрипт /sbin/rc:

# Setup initial $PATH just in case
        PATH="/bin:/sbin:/usr/bin:/usr/sbin:${PATH}"
        # добавлено 4 строки
        /bin/mount -n -t tmpfs tmpfs /unionfs/etc -o size=1M
        /bin/mount -n -t unionfs unionfs /etc -o dirs=/unionfs/etc=rw:/etc=ro
        echo "tmpfs /unionfs/etc tmpfs rw,size=1M 0 0" >> /etc/mtab
        echo "unionfs /etc unionfs rw,dirs=/unionfs/etc=rw:/etc=ro 0 0" >> /etc/mtab
3. создан каталог /unionfs/ с нужными подкаталогами, например, /unionfs/etc/ и т.д.; 4. В /etc/fstab прописано:
tmpfs                   /unionfs/var/lock       tmpfs           size=20K,nodev,nosuid,noexec    0 0
tmpfs                   /unionfs/var/log        tmpfs           size=3M,nodev,nosuid,noexec     0 0
tmpfs                   /unionfs/var/run        tmpfs           size=200K,nodev,nosuid,noexec   0 0
tmpfs                   /unionfs/var/spool      tmpfs           size=10M,nodev,nosuid,noexec    0 0
tmpfs                   /unionfs/var/lib        tmpfs           size=1M,nodev,nosuid,noexec     0 0
tmpfs                   /unionfs/tmp            tmpfs           size=1M,nodev,nosuid,noexec     0 0
unionfs                 /var/lock               unionfs         dirs=/unionfs/var/lock=rw:/var/lock=ro          0 0
unionfs                 /var/log                unionfs         dirs=/unionfs/var/log=rw:/var/log=ro            0 0
unionfs                 /var/run                unionfs         dirs=/unionfs/var/run=rw:/var/run=ro            0 0
unionfs                 /var/spool              unionfs         dirs=/unionfs/var/spool=rw:/var/spool=ro        0 0
unionfs                 /var/lib                unionfs         dirs=/unionfs/var/lib=rw:/var/lib=ro            0 0
unionfs                 /tmp                    unionfs         dirs=/unionfs/tmp=rw:/tmp=ro                    0 0
5. ну и, наконец, в том же fstab корневой раздел переключен на ro (для варианта загрузки по nfs, nfs-сервер раздаёт корень в режиме ro):
/dev/sda2             /      ext2            noatime,ro       0 1

Итак, загрузка проходит прекрасно, нужные сервисы стартуют и вроде бы всё ок. Но при перезагрузке/выключении компьютера, после выдачи сообщения

Unmounting filesystem
процесс завершения работы прекращается, появляется сообщение, что переключен уровень init и что
Could not kill process <номер>: No such process
. Поначалу я подумал, что этот процесс можно отловить с помощью
ps -ef > file
и последущим сравнением номера бажащего процесса с теми, что были запущены, но нет, таковых в списке не оказалось. Видимо, это процесс порождается при завершении работы. Конкретнее сказать нельзя. Ну а поскольку процесс завершения работы останавливается, то это несколько напрягает: получается, что удалённо этот компьютер не перезагрузить, только с кнопки или с помощью Magic keys.

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

HolyBoy
()

[странное]awk и обработка отдельных полей

Форум — Development

Добрый день.

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

К примеру, хочется, чтобы сработало что-то навроде:

awk '{print $(let "$2-$1")}'

Как такое сделать?

 

HolyBoy
()

[Gnome][Gentoo] Виста-стайл детектед

Форум — Desktop

Настало время и мейнтейнеры размаскировали Gnome 2.26.

Обновился. Проверил всё. Убрал из домашнего каталога все скрытые файлы и каталоги, относящиеся к предыдущей версии Гнома.

И сразу же полезли гадости:

1. На рабочем столе у меня валялись файлы *.desktop с таким, примерно, содержимым:

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=SSH to work
Type=Application
Terminal=true
Icon[ru_RU]=gnome-panel-launcher
Name[ru_RU]=SSH to work
Exec=ssh IP.AD.RE.SS -l LOGIN -i /home/USER/.ssh/id_dsa
Icon=/usr/share/pixmaps/gnome-term.png
GenericName[ru_RU]=

Разумеется, в предыдущей версии Гнома этих расширений не было видно, только соответствующий значок. Здесь же все подобные файлы резко потеряли значки и приобрели расширения. Решил создать из меню Гнома тестовую кнопку запуска. Создал, внутри её оказалось вот это:

#!/usr/bin/env xdg-open

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=true
Icon[C]=gnome-panel-launcher
Name[C]=test
Exec=ssh LOGIN@homegate
Name=test
Icon=gnome-panel-launcher
Видно, что он мало отличается от предыдущих.

И он, зараза, показывается также, как и те, старые файлы. Ему нельзя назначить иконку из /usr/share/pixmaps и тд. Что за нафиг?

2. Предположим, я смирился с внешним видом этих файлов, но они у меня не абы зачем, а для дела — быстрого соединения с нужными хостами. Запускаем такой файл и выскакивает сообщение:

Сомнительный значок запуска Значок запуска «test.desktop» не проверен на безопасность. Если неизвестно, откуда появился этот файл, его запуск может нарушить безопасность системы.

а с ними три варианта: «Запустить всё равно», «Считать проверенным», «Отмена». Пробую второй вариант. Ничего не происходит, окно закрывается, а при следущем запуске оно появляется снова: дескать, не доверяем-с. Прямо UAC какой-то! Как эту гадость вырубить?

3. Соединение с внешними хостами по ssh у меня идёт с помощью ключевых файлов. Так вот, если я, выбрав первый вариант, запускаю соединение по ssh, в котором ключевой файл без пароля, то всё нормально проходит, а вот если у меня ключевой файл запаролен, то появляется окошко:

Введите пароль для разблокирования секретного ключа. Приложение хочет получить доступ к секретному ключу USERNAME@homepc, но он заблокирован

Поначалу я обрадовался: появилась красивая приблуда для ввода пароля, если ошибся с запуском приложения, можно нажать отмену. Но когда я ввожу пароль, он не принимается без каких-либо сообщений об этом и заново открывается предложение ввести пароль для разблокирования. После исчерпания лимита попыток соединиться, ssh-сервер даёт отлуп. Как ЭТО уродство прибить?

 ,

HolyBoy
()

[Gentoo][python] Sandbox и ACCESS VIOLATION

Форум — Linux-install

Система в чруте. Обновился пистон с 2.5 до 2.6. Переменные окружения перечитал. Пересобрал принудительно весь system.

Во время python-updater на пакете dev-libs/libgweather вот такое сообщение выскакивает:

--------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE "/var/log/sandbox/sandbox-29794.log"

VERSION 1.0
FORMAT: F - Function called
FORMAT: S - Access Status
FORMAT: P - Path as passed to function
FORMAT: A - Absolute Path (not canonical)
FORMAT: R - Canonical Path
FORMAT: C - Command Line

F: open_wr
S: deny
P: /dev/stderr
A: /dev/stderr
R: /dev/stderr
C: /bin/sh /usr/bin/pygtk-codegen-2.0 --register /usr/share/pygtk/2.0/defs/gtk.defs --override gweather.override --prefix pygweather gweather.defs 

F: open_wr
S: deny
P: /dev/stderr
A: /dev/stderr
R: /dev/stderr
C: /bin/sh /usr/bin/pygtk-codegen-2.0 --register /usr/share/pygtk/2.0/defs/gtk.defs --override gweather.override --prefix pygweather gweather.defs

На багзиле с этим только одна тема. Вроде всё что положено сделано: симлинк профиля, выбран питон правильный и тд. Однако ж… вот. Пробовал пересобрать dev-python/pygtk. Не помогло. Он последней стабильной версии. Неприятно то, что таких пакетов похоже несколько и с "-sandbox" собирать стрёмно.

Попробовал написать в stderr:

# echo 'abc' > /dev/stderr 
abc

Вроде нормально. Что же тогда не так?

 ,

HolyBoy
()

Зависание Gnome после suspend

Форум — Desktop

Здравствуйте.

Имеется gnome-2.24.

По каким-то, малопонятным для меня причинам, после пробуждения от режима ожидания, рабочий стол зависает. Т.е. все запущенные до саспенда программы работают, но новые запустить нельзя. В .xsession-errors ничего подозрительного не наблюдается, разве что только ругань на dbus, связанная с отсутствием имени пользователя. Из gnome можно только попробовать запустить выход из сессии, но он штатно не завершается, только по ctrl+alt+backspace.

Если выйти в чистую консоль и набрать /etc/init.d/xdm stop, то процесс gdm всё равно остаётся в памяти и может быть убран только по kill -9 PID. Только тогда можно штатно запустить X и работать.

В интернетах на эту тему мало что пишут, в основном убунтоводы.

PS amd64

HolyBoy
()

Squid и запрет работы с другими прокси.

Форум — Admin

Добрый день.

По мотивам темы в Толксах появился вопрос: как можно порезать доступ к анонимным прокси, используя, по возможности, только Squid? Разумеется, вариант с баном по IP даже не рассматривается, больше интересует возможность резать по заголовкам, в них передаётся адрес запрещённого сайта или какая-то информация, позволяющая определить, что эта страница — результат запроса к прокси?

HolyBoy
()

К вопросу о распространении сертификатов.

Форум — Admin

В продолжение чуть ранее поднятой темы www.linux.org.ru/view-message.jsp?msgid=3720992

Помимо сертификатов клиента есть ещё и сертификат TLS-сервера, генерируемый с помощью

openvpn --genkey --secret ta.key

Каким же способом его распространять? Совет воспользоваться sftp или чем-то наподобие не канает, т.к. в таком случае что мешает также распространять сертификаты из темы выше?

HolyBoy
()

NFSv4 после suspend/hibernate

Форум — Admin

Добрый день.

Установлен и настроен nfsv4 сервер версии 1.2.0 и такой же клиент. В /etc/fstab клиента прописано:

homegate:/distfiles         /usr/portage/distfiles  nfs4            hard,intr,proto=tcp 0 0

Когда клиент загружается, то всё работает просто отлично: директория монтируется и тд и тп. Стоит же перевести компьютер в suspend/hibernate на сколь-нибудь долгое время, так после включения начинает тупить доступ к этой сетевой директории на клиенте. К примеру, если набрать cd /usr/portage/distfiles, то консоль «замерзает» и тд. В логах при этом ничего не светится: ни на клиенте, ни на сервере. Примерно через 5 минут, а может и больше, сетевое подключение восстанавливается и работает далее без проблем.

Разумеется, при всём при этом остальные сервисы работают безупречно, т.е. это связано не с сетевой картой.

Подозреваю, что проблема здесь настройках таймаутов, но где они лежат, не нашёл. Никто не в курсе, как это поправить?

HolyBoy
()

id/winbind и getent — разночтения

Форум — Admin

Здравствуйте. Имеется samba-3.0.33, введенная как обычный хост в домен win2003. Используется самба только для получения пользователей-паролей для сквида. Почему-то объявилось следущее:

# wbinfo -r N\\user
10067
10077
10043
10044
10066
10076
10048
# wbinfo --group-info=N\\inet
N\inet:x:10044

или

# id N\\user
uid=10380(N\user) gid=10043(clamav) группы=10043(clamav),10067(N\aho),10077(N\sec),10044(N\inet),10066(N\aho resourse),10076(N\sec resourse),10048(BUILTIN\users)
показывают, что якобы пользователь N\user находится в группе inet, а
# getent group | grep inet
N\inet:x:10044:N\user2,NFR\user1
N\inetfull:x:10106:N\user3

не показывает наличия этого пользователя в данной группе. В виндовом домене этот пользователь исключён неделю назад из данной группы, т.е. getent работает корректно. В логах самбы, само собой, ничего. Никто не сталкивался с подобным?

HolyBoy
()

Таблица маршрутизации

Форум — Admin

Имеется:
сеть С1: 192.168.1.0/24
сеть С2: 193.168.1.0/24
VPN сеть В: 10.10.0.0/24

маршрутизатор М1: 192.168.1.1
маршрутизатор М2: 193.168.1.1

Маршрутизатор М1 по совместительству является ВПН-сервером 10.10.0.1, а М2 — клиентом 10.10.0.2.

После установления ВПН соединения на М1 следующая таблица маршрутов:

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
yy.y.yyy.yyy    0.0.0.0         255.255.255.240 U     0      0        0 eth0
10.10.0.0       10.10.0.1       255.255.255.0   UG    0      0        0 tap0
10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 tap0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
127.0.0.0       127.0.0.1       255.0.0.0       UG    0      0        0 lo
0.0.0.0         xx.x.xxx.xxx    0.0.0.0         UG    3      0        0 eth0
0.0.0.0         192.168.1.254   0.0.0.0         UG    4      0        0 eth1

На М2:

 route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
193.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     10.10.0.1       255.255.255.0   UG    0      0        0 tap0
10.10.0.0       10.10.0.1       255.255.255.0   UG    0      0        0 tap0
10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 tap0
172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       127.0.0.1       255.0.0.0       UG    0      0        0 lo
0.0.0.0         172.16.0.1      0.0.0.0         UG    2      0        0 eth0

Итак, при таком положении вещей, все ресурсы сети С1 доступны с М2. Разумеется, на компьютерах в С1 шлюзом по умолчанию является М1. 
Но когда я пытаюсь получить с компьютера из С2 доступ к С1, то ничего не выходит. 
Перепробовал всякие варианты маршрутов как на М1, так и на М2. Чувствую, тут все достаточно просто, но в упор не вижу, что именно.

Какого маршрута и где не хватает, чтобы смотреть ресурсы С1 из С2, при условии, что на компьютерах в С1 указан дефолтным маршрутизатор 
М1, а в С2 — М2?

>>>

HolyBoy
()

acl и работа с samba, etc

Форум — Admin

С этим получается какая-то чепуха.
Если работать через самбу, то для шары указываем: [Groupdir]
path = /home/samba/workdir
comment = рабочие директории
browseable = yes
writeable = yes
inherit acls = yes
guest ok = no

Начинаем раздавать права на папки внутри шары:

# pwd
/home/samba/workdir

# getfacl test/

# file: test
# owner: root
# group: root
user::rwx
group::rwx
group:Domain\040Admins:r-x
group:Domain\040Users:---
group:buhgalteria:rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:group:Domain\040Admins:r-x
default:group:Domain\040Users:---
default:group:buhgalteria:rwx
default:mask::rwx
default:other::---

С исходной папкой разобрались. Теперь, юзеры:

# id h
uid=1022(h) gid=513(Domain Users) группы=513(Domain Users),1006(buhgalteria)

# id b
uid=1018(b) gid=512(Domain Admins) группы=512(Domain Admins),513(Domain Users)

Когда в винде логинится юзер b, то он не может писать в папку test, но может просматривать ее содержимое. Когда то же самое делает h, то он может создать папку или файл в test/ и просматривать содержимое.
Итак, h создал файл:

# getfacl test/ff.txt

# file: test/ff.txt
# owner: h
# group: Domain\040Users
user::rwx
group::rwx
group:Domain\040Admins:r-x
group:Domain\040Users:---
group:buhgalteria:rwx
mask::rwx
other::---

который может прочитать, но не удалить пользователь b, и папку

# getfacl test/qwer/

# file: test/qwer
# owner: h
# group: Domain\040Users
user::rwx
group::rwx
group:Domain\040Admins:r-x
group:Domain\040Users:---
group:buhgalteria:rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:group:Domain\040Admins:r-x
default:group:Domain\040Users:---
default:group:buhgalteria:rwx
default:mask::rwx
default:other::---

которую пользователь b не может удалить, но может открыть (что правильно) и создать в НЕЙ (!!) свою папку

# getfacl test/qwer/b/
# file: test/qwer/b
# owner: b
# group: Domain\040Admins
user::rwx
group::rwx
group:Domain\040Admins:r-x
group:Domain\040Users:---
group:buhgalteria:rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:group:Domain\040Admins:r-x
default:group:Domain\040Users:---
default:group:buhgalteria:rwx
default:mask::rwx
default:other::---

а также, может удалить все папки, лежащие в test/qwer/ и созданные не им, а пользователем h. Как это решить, до сих пор не понимаю. Пробовал маски менять, не помогло. Костыль в виде периодически повторяющегося скрипта

#!/bin/sh

chown root -R /home/samba/workdir/test/
chgrp root -R /home/samba/workdir/test/
chmod 0770 -R /home/samba/workdir/test/
setfacl -R -m g:buhgalteria:rwx /home/samba/workdir/test/
setfacl -R -m g:Domain\ Admins:r-x /home/samba/workdir/test/

очень не хочется использовать, т.к. получается большая дырка. Как заставить этот acl правильно работать?


Теперь, я пробую работу с acl, логинясь прямо на сервер.
Юзеры те же самые.

Создал пользователем h файл и папку:

# getfacl test/qwer2/

# file: test/qwer2
# owner: h
# group: Domain\040Users
user::rwx
group::rwx
group:Domain\040Admins:r-x
group:Domain\040Users:---
group:buhgalteria:rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:group:Domain\040Admins:r-x
default:group:Domain\040Users:---
default:group:buhgalteria:rwx
default:mask::rwx
default:other::---

# getfacl test/2

# file: test/2
# owner: h
# group: Domain\040Users
user::rw-
group::rwx #effective:rw-
group:Domain\040Admins:r-x #effective:r--
group:Domain\040Users:---
group:buhgalteria:rwx #effective:rw-
mask::rw-
other::---

но тут получается еще хуже. Несмотря на то, что b не могжет удалить файл и папку, он может записывать в файл (!??) и создавать файлы-папки в qwer2/, а также спокойно удалять их, не взирая на права и маски. Почему?

Все тестовые примеры в винде создавались из контекстного меню папки, а в линуксе командами mkdir и touch. Все права, которые видны, назначены системой автоматически, за исключением папки test/

>>>

HolyBoy
()

fetchmailу не нравится «@»

Форум — Admin

Установлен fetchmail. В .fetchmailrc написано

set postmaster "e32gbf" poll umail.ru with proto POP3 auth password user "main@domain.dom" there with password "passwd" is e32gbf here options warnings 3600

Пытаюсь соединиться

/usr/bin/fetchmail -a -s -m "/usr/bin/procmail -d \%T"

пишет

sh: -c: line 0: unexpected EOF while looking for matching `'' sh: -c: line 1: ошибка синтаксиса: неожиданный конец файла fetchmail: MDA возвратил ненулевой статус 2 sh: -c: line 0: unexpected EOF while looking for matching `'' sh: -c: line 1: ошибка синтаксиса: неожиданный конец файла fetchmail: ошибка записи текста сообщения fetchmail: Ошибка MDA при выборке из main@domain.dom@umail.ru fetchmail: Статус запроса=6 (IOERR)

Решил поправить .fetchmailrc. Заменил "@" на "%40":

set postmaster "e32gbf" poll umail.ru with proto POP3 auth password user "main%40domain.dom" there with password "passwd" is e32gbf here options warnings 3600

и при попытке коннекта пишет

fetchmail: Ошибка авторизации для main%40domain.dom@umail.ru fetchmail: Статус запроса=3 (AUTHFAIL)

Как решить эту проблему?

>>>

HolyBoy
()

RSS подписка на новые темы