запрет изменения файла (resolv.conf)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

запрет изменения файла

Сообщение Stanislav Potapchik »

читаем:
Изменение атрибутов ext2fs и ext3fs используя chattr [исправить]

Команда chattr позволяет изменять параметры ФС для отдельного файла или директории:
chattr +a - только добавление данных (append-only), удаление и переименование запрещено;
chattr +i - запрещено удаление, изменение или переименование (immutable);
chattr +A - запретить сохранение данных о каждом обращении к файлу (no atime)
chattr +S - синхронное изменение всех данных на диск, без кэширования;
chattr +c - файл будет хранится на диске в сжатом виде (нужен отдельный патч для ядра);
chattr +s - после удаления файла, место на диске забивается нулями (внешний патч);
chattr +u - резервирование данных файла после удаления (внешний патч);

Пример:
chattr -R +i /bin /sbin /usr/bin /usr/sbin - запрещаем изменение бинарников
chattr +a /var/log/secure - предотвращаем модификацию лога злоумышленником

Для просмотра расширенных атрибутов используется утилита lsattr.


получаем:
stanislav@lexx4:/etc$ chattr +i resolv.conf
chattr: Неприменимый к данному устройству ioctl while reading flags on resolv.conf

смотрю свойства
stanislav@lexx4:/etc$ ls -l resolv.conf
-rw-r--r-T 1 root root 140 Дек 4 11:27 resolv.conf

создаём resolv.conf в Temp. пробуем
stanislav@lexx4:~/Temp$ ls -l resolv.conf
-rw-r--r-- 1 stanislav stanislav 141 Дек 4 11:52 resolv.conf
stanislav@lexx4:~/Temp$ chattr +i resolv.conf
chattr: Неприменимый к данному устройству ioctl while reading flags on resolv.conf

а в чём собственно дело? как зафиксировать файл, если reiserfs ?
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: запрет изменения файла

Сообщение sciko »

Stanislav Potapc... писал(а):
04.12.2009 12:10
Изменение атрибутов ext2fs и ext3fs
Stanislav Potapc... писал(а):
04.12.2009 12:10
как зафиксировать файл, если reiserfs ?
Он русский и это многое объясняет.

Добавьте разделу attrs в опции монтирования.
Спасибо сказали:
Аватара пользователя
Brainsburn
Сообщения: 950
Статус: /
ОС: Gentoo

Re: запрет изменения файла

Сообщение Brainsburn »

Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: запрет изменения файла

Сообщение Poor Fred »

Уже в который раз вижу, как люди пытаются заблочить /etc/resolv.conf. На кой? Разберитесь лучше с конфигом программы, которая его изменяет! Держу пари, что это клиент DHCP.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: запрет изменения файла

Сообщение Stanislav Potapchik »

Poor Fred писал(а):
04.12.2009 12:27
Уже в который раз вижу, как люди пытаются заблочить /etc/resolv.conf. На кой? Разберитесь лучше с конфигом программы, которая его изменяет! Держу пари, что это клиент DHCP.

так и есть. но все упорно советуют именно залочить файл. я в сетях не очень, поетому верю.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: запрет изменения файла

Сообщение Poor Fred »

Stanislav Potapchik писал(а):
04.12.2009 12:40
так и есть. но все упорно советуют именно залочить файл. я в сетях не очень, поетому верю.

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

Рассказывай, что ты не хочешь, чтобы там менялось, а перед этим посмотри внимательно /etc/dhclient/dhclient.conf (если у тебя Дебиан или клон и если я не сильно ошибаюсь с именем файла)
Убить всех человеков!
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: запрет изменения файла

Сообщение sciko »

Poor Fred писал(а):
04.12.2009 13:01
если у тебя Дебиан или клон и если я не сильно ошибаюсь с именем файла
В Дебиане /etc/dhcp3/dhclient.conf
Спасибо сказали:
Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: запрет изменения файла

Сообщение Stanislav Potapchik »

глянул и не понял ничего. хотя там почти всё закоментировано, но как то передаётся на скрипт /sbin/dhclient-script, который пересоздаёт /etc/resolv.conf

а смысл в том, что воткнул второй сетевой кабель в комп и всё вроде работает, но до перезагрузки. если в файле переписать (или заменить на рабочую копию), опять хорошо.
так бы и ладно, но проявилась ещё проблема. пишу sudo aptitude update в консоли - Ош ftp://ftp.debian-multimedia.org sid Release.gpg Не удалось найти IP адрес для ftp.debian-multimedia.org
хотя пинг проходит нормально.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: запрет изменения файла

Сообщение Poor Fred »

Stanislav Potapchik писал(а):
04.12.2009 21:33
а смысл в том, что воткнул второй сетевой кабель в комп и всё вроде работает, но до перезагрузки. если в файле переписать (или заменить на рабочую копию), опять хорошо.

Теперь еще раз, внятно и по порядку.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: запрет изменения файла

Сообщение Stanislav Potapchik »

2 сетевухи, 2 провайдера. 1- инет, 2-локалка.
всё прописано в /etc/network/interfaces
обе сетевые получают по dhcp
запросы и ответы идут правильно
при перезагрузке файл /etc/resolv.conf перезаписывается на dns-сервер 2 провайдера и инет не пашет.
вручную переписываю файл - инет опять есть, но aptitude не находит серверов, хотя пинг до них проходит.
Спасибо сказали:
mailman137
Сообщения: 492
ОС: Debian-based mixed

Re: запрет изменения файла

Сообщение mailman137 »

Имхо, можно попробовать применить для /etc/dhcp3/dhclient.conf вот эту директиву со значением false

The do-forward-updates statement

do-forward-updates [ flag ] ;

If you want to do DNS updates in the DHCP client script (see dhclient-script(8)) rather than having the DHCP client do the
update directly (for example, if you want to use SIG(0) authentication, which is not supported directly by the DHCP client, you
can instruct the client not to do the update using the do-forward-updates statement. Flag should be true if you want the DHCP
client to do the update, and false if you don’t want the DHCP client to do the update. By default, the DHCP client will do
the DNS update.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: запрет изменения файла

Сообщение Poor Fred »

Stanislav Potapchik писал(а):
05.12.2009 11:29
при перезагрузке файл /etc/resolv.conf перезаписывается на dns-сервер 2 провайдера и инет не пашет.

Укажи в конфиге запрашивать только IP-адрес.
Убить всех человеков!
Спасибо сказали:
mailman137
Сообщения: 492
ОС: Debian-based mixed

Re: запрет изменения файла

Сообщение mailman137 »

Уважаемый Poor Fred! А правильно ли я понял, что достаточно оперировать опциями директивы request?
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: запрет изменения файла

Сообщение Poor Fred »

mailman137 писал(а):
05.12.2009 13:53
Уважаемый Poor Fred! А правильно ли я понял, что достаточно оперировать опциями директивы request?

Сейчас под рукой конфига нет, там еще какие-то директивы, но в общем - да.

По-моему там еще директивы, что отправлять серверу. Но в данном случае они вроде не нужны, если провайдер ничего такого не требует.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: запрет изменения файла

Сообщение Stanislav Potapchik »

request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;


что именно оставить?

Сейчас под рукой конфига нет,


пожалуйста
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: запрет изменения файла

Сообщение Poor Fred »

Stanislav Potapchik писал(а):
05.12.2009 15:19
что именно оставить?

Код: Выделить всё

request subnet-mask, broadcast-address, time-offset, routers, host-name,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers;

Достаточно будет, хотя не факт, что провайдер все эти данные дает. Но не помешают, во всяком случае. Минимум:

Код: Выделить всё

request subnet-mask, broadcast-address, routers,host-name;
require subnet-mask, broadcast-address, routers;

Директива require задает что обязательно должно быть получено. Хотя сама она не обязательна. Как и строка

Код: Выделить всё

send host-name "<hostname>";


domain-name, domain-name-servers, domain-search - это как раз то, что в /etc/resolv.conf прописывается. В нем нужно предварительно прописать требуемые сервера.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: запрет изменения файла

Сообщение Stanislav Potapchik »

Poor Fred писал(а):
05.12.2009 15:46

Код: Выделить всё

request subnet-mask, broadcast-address, time-offset, routers, host-name,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers;


рано радовался... не знаю, что и как, но перезагрузился контрольный раз и опять по новой.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: запрет изменения файла

Сообщение Poor Fred »

Stanislav Potapchik писал(а):
05.12.2009 22:58
рано радовался... не знаю, что и как, но перезагрузился контрольный раз и опять по новой.

Поиграйся с опциями. Оставь минимальные запросы. Запускай вручную dhclient3 eth0 и смотри, когда и что изменяет resolv.conf. Почитай man dhclient.conf.

К примеру, вот мой конфиг (правда, на Фре):

Код: Выделить всё

# cat /etc/dhclient.conf

interface "fxp0" {
    prepend domain-name-servers 127.0.0.1;
    prepend domain-name "mydomain";
    request subnet-mask, broadcast-address, time-offset, routers, domain-name-servers;
    require subnet-mask, domain-name-servers;
}

lease {
    interface "fxp0";
    option host-name "myhost.mydomain";
    option domain-name-servers 127.0.0.1;
    option domain-name "home";
}

У меня свой DNS-сервер (а он уже форвардит к провайдерским) и свое имя хоста, поэтому мне не хотелось получать их от провайдера.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: запрет изменения файла

Сообщение Stanislav Potapchik »

в принципе, пока не решился этот вопрос, может подскажете, что делать с аптитуде? напомню, что когда и инет и локалка есть и браузер обе сети видит и пинг до всего есть, аптитуде не может update сделать. пишет не вижу сервера. ???
Спасибо сказали:
mailman137
Сообщения: 492
ОС: Debian-based mixed

Re: запрет изменения файла

Сообщение mailman137 »

пока не решился этот вопрос

Из http://ky6uk.ugatu.net/howto-pppd-and-resolf-conf
Как подружить pppd и resolv.conf

Живу в общежитии с локальной сетью примерно на 2-3 тысячи машин. В сети так же имеется локальный DNS сервер и некоторое количество локальных ресурсов, для которых на этом DNS сервере существуют соответствующие записи. Подразумевается, что этот DNS сервер может ресолвить как внешние адреса, так и локальные. Выходом во «внешний мир» для меня служит VPN соединение провайдера, доступного в этой локальной сети. Проблема заключается в том, что после поднятия ppp интерфейса pppd перетирает глобальный /etc/resolv.conf своим, который содержит только две записи, полученные от провайдера и знать не знающие о наших локальных ресурсах.

Так как мне надоело каждый раз после поднятия ppp интерфейса вручную править /etc/resolv.conf, решил разобраться как заставить pppd не заменять этот файл своим.

Решение проблемы нашел только одно. Это убрать из файла настроек pppd (у меня это /etc/ppp/options) строку usepeerdns. Эта строка заставляет pppd запросить у провайдера адреса двух DNS серверов и передать их в скрипт /etc/ppp/ip-up в качестве переменных DNS1 и DNS2. Так же эта опция передает в этот же скрипт параметр USEPEERDNS со значением 1. После этого скрипт /etc/ppp/ip-up.d/0000usepeerdns перезаписывает файл /etc/resolv.conf своим, содержащим полученные адреса DNS серверов.

Такая причина не может ли быть у Вашей проблемы?
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: запрет изменения файла

Сообщение Poor Fred »

Stanislav Potapchik писал(а):
06.12.2009 11:54
в принципе, пока не решился этот вопрос, может подскажете, что делать с аптитуде? напомню, что когда и инет и локалка есть и браузер обе сети видит и пинг до всего есть, аптитуде не может update сделать. пишет не вижу сервера. ???

Наверняка дело в неправильных маршрутах. Попробуй для начала пропинговать и протрассировать эти сервера, которых он не видит. Просмотри маршруты route -n. Доступны ли DNS-серверы, прописанные в resolv.conf?
Короче, так однозначно не скажешь, в чем проблема.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Stanislav Potapchik
Сообщения: 271
ОС: Debian, Ubuntu, Mint

Re: запрет изменения файла

Сообщение Stanislav Potapchik »

вобщем всё решилось изменением /etc/dhcp3/dhclient.conf на

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name "ionitcom.ru";

prepend domain-name-servers 172.18.0.1, 172.18.1.1;

prepend domain-name "Home ";

request subnet-mask, broadcast-address, time-offset, routers,
netbios-name-servers, netbios-scope, interface-mtu,
domain-name, domain-name-servers, domain-search, host-name,
rfc3442-classless-static-routes, ntp-servers;


т е он автоматом дописывает в /etc/resolv.conf то, что тому не хватает.

всё работает, только напрягает
parse_option_param: Bad format a
Спасибо сказали: