LINUX.ORG.RU
ФорумAdmin

Изменение хостов простым пользователем

 ,


0

2

Мотивация:

Рутовые права должны быть только у администраторов операционной системы.Администраторы прикладных программ их иметь не должны.

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

Вопрос:

Хочу чтобы пользователь мог сам редактировать хосты, без доступа к основным файлам системы (типа /etc/hosts).

Установка чего-то жирного (типа админки DNS с веб-мордой на Java) исключена.

Как это лучше всего сделать?

Есть ли какая-нибудь прога, которая позволит на лету подхватывать изменения в /home/user/etc/hosts и отдавать линуксовой системе ресолвинга хостов?

★★★★☆

Последнее исправление: stevejobs (всего исправлений: 1)

HOSTALIASES не поможет?

Есть ли какая-нибудь прога, которая позволит на лету подхватывать изменения в /home/user/etc/hosts и отдавать линуксовой системе ресолвинга хостов?

Тот же dnsmasq может читать hosts-like-файлы, только надо будет reload в крон добавить или еще как-то. Но вообще все это прекрасно автоматизируется (не со стороны пользователя, конечно, об этом должен побеспокоиться администратор ОС).

alozovskoy ★★★★★
()
Ответ на: комментарий от Ford_Focus

И что помешает юзеру поимев рутовую катю с открытым файлом /etc/hosts открыть любой другой файл системы?

futurama ★★★★★
()
Ответ на: комментарий от Ford_Focus

Ты не понял?!

юзер сделает sudo /usr/bin/host0

запустится kate /etc/hosts, теперь идем в file-> open-> /etc/whatever

И где твой бог теперь?

futurama ★★★★★
()
Ответ на: комментарий от Ford_Focus

И что помешает администратору приложения А поломать все записи хостов администратора приложения Б? Или вообще стереть из хостов локалхосты, превратив сервер в тыкву?

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

Но никаких, черт возьми, скриптов с рутовскими правами, которые вдобавок еще и правят базовые файлы системы! Любой быдлокодер устроит админам полный ад

Например, я в своих скриптах часто пользуюсь вот этой софтиной: https://github.com/cbednarski/hostess

Проблема с ней в том, что если вместо «hostess add local.example.com 127.0.0.1» написать «hostess add 127.0.0.1 local.example.com», то софтина выпадет с экзепшеном и оставит полностью пустой файл хостов. Полностью пустой, Карл, понимаешь что в этот момент случается с сервером?

Что случится, если быдлокодер окажется еще и школьником с фантазией, и начитавшись секуритилаба попробует кривыми хостами эскалировать себе права и подумать страшно

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от futurama

man 3 gethostbyname
Все что можно контролировать, делается через /etc/nsswitch.conf

Ну это на нижнем уровне.

А на верхнем, возможно мы можем запустить с правами пользователя какой-то (очень маленький, написанный на Go) DNS, который в качестве файла конфигурации будет принимать хосты в формате JSON/XML/Yaml. И этот DNS сделать parallel upstream'ом для локально установленного BIND9, который в свою очередь прописан в nsswithch

Интересно, есть ли уже готовое battle-tested production-ready решение для этого

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от Ford_Focus

К чему такие сложности? chmod a+rw /etc/hosts

Хотя примерно равноценно твоему предложению будет chmod -R 777 /.

anonymous
()

Фигней не занимайся, совсем ожирел

anonymous
()

Хочу чтобы пользователь мог сам редактировать хосты, без доступа к основным файлам системы

Таким макаром юзер получит привилегии администратора системы относительно процедуры резолва имён.
Если это действительно нужно, то используйте механизмы изоляции пространства имён: systemd-nspawn, docker, lxc, etc.

ArcFi
()
Ответ на: комментарий от stevejobs

RHEL6, где этого ничерта нет

Гугл говорит, что LXC должен работать, chroot — тем более.

ArcFi
()

ставится например powerdns и активируется фича для загрузки зон через http-json интерфейс, далее пишется мелкая обертка над wget\curl с парсингом параметров и на этом все.

anonymous
()

Отдельный днс. Второй вариант ACL на fs.

anonymous
()

пропатчи glibc, чтоб в юзерские host файлы умел, помимо системного

Harald ★★★★★
()

Чёт не могу сообразить для каких таких задач может понадобиться давать пользователю возможность редактировать /etc/hosts. В моей практике этот файл использовался только для всяких отладочных вещей.

MrClon ★★★★★
()
Ответ на: комментарий от stevejobs

Любой быдлокодер устроит админам полный ад

Как насчёт контейнеров?

Yustas ★★★★
()

сам редактировать хосты

Самый простой вариант - пусть сам использует адреса.

становится неоправданно долгой и не автоматизируемой

Второе неправда, потому первое легко чинится.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

Самый простой вариант - пусть сам использует адреса.

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

Самый частый случай, это инструкция по установке софта, начинающаяся словами «добавьте в /etc/hosts хост с названием database указывающий на postgresql, иначе ничего не заработает».

Второе неправда, потому первое легко чинится.

непонятно. Разверни мысль

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 2)
Ответ на: комментарий от stevejobs

Разверни мысль

куча ынтерпрайзного софта

И этот софт приходится каждый день устанавливать в новом окружении? Какой-то странный ынтырпрайз.

процедура инсталляции ... становится неоправданно долгой и не автоматизируемой

не от того, что «завязана на администраторов ОС». А от того, как реализована эта «завязка»(и другие вокругадминские процессы). Оно бывает недоавтоматизированным, и именно от этого неоправдано долгой.

Другими словами, проблема не [всегда] в администраторах ОС.

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.