LINUX.ORG.RU

Ответ на: комментарий от realbarmaley

Никак кроме диверсии назвать ЭТО язык не поворачивается. Мне хочется верить, что это не злой умысел, а просто человеческая глупость.

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

systemd, dbus, polkitd+JS, BPF в ядре – все это классическая диверсия против GNU/Linux.

Навредил и сбежал к хозяйвам: https://www.opennet.ru/opennews/art.shtml?num=57464

anonymous
()
Ответ на: комментарий от rtxtxtrx

чтоб отказаться от паролей и одновременно защититься от опасных программ (браузер, wine — будут работать от другого пользователя).

teod0r ★★★★★
() автор топика
Последнее исправление: teod0r (всего исправлений: 1)
Ответ на: комментарий от anonymous

Это не в dbus, а udev правила надо писать

да, точно. что-то я перепутал dbus и udev.

https://wiki.gentoo.org/wiki/Allow_only_known_usb_devices

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

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

лучше в таком случае и от systemd избавиться

в моей системе нет ни systemd, ни polkit, ни sudo, ни PAM (лишняя прослойка, всё равно мне от неё ничего не надо).

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

Если запущен X11 то он может перехватывать все нажатия на клавиатуру, зависит от настроек конкретного X11.

да, запущен. Как в иксах настроить, чтобы при нажатии кнопки питания и ctrl+alt+del посылались соответствующие сигналы иниту?

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

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

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

https://wiki.gentoo.org/wiki/Allow_only_known_usb_devices

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

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

ЗЫ: лично PAM и tcpd считаю очень полезными и нужными.

Одна авторизация с плюшками, например в PAM есть поддержка CAP и не надо каждому приложению поддерживать свою авторизацию, можно слинковатся с libpam.

По уаналогии использование tcpd даст дополнительную фильтрацию и не надо каждому приложению писать поддержку сети, можно слинковатся с библиотеками tcpd.

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

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

просмотрел ещё раз статью, так и не понял, как там распознаётся своя/чужая? по серийному номеру?

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

Не только по серийному, можно фильтровать по всем параметрам с вывода:

``udevadm info -a -p /sys/bus/usb/devices/3-1`

Например предлагаю: производителя, модель, серийник, название продукта, класс. Можно добавлять и удалять свои параметры фильтрации подключаемых устройств.

anonymous
()
Ответ на: комментарий от firkax
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
extern char **environ;
int main(int argc, char **argv) {
  argv[0] = "/usr/local/sbin/wrapped_script.sh";
  execve("/usr/local/sbin/wrapped_script.sh", argv, environ);
  fprintf(stderr, "execve(/usr/local/sbin/wrapped_script.sh) error %d (%s)\n", errno, strerror(errno));
  return -1;
}

то ли я что-то делаю не так...
скопировал содержимое в a.c, заменил путь к скрипту. сделал make a. сделал права

-rwsr-sr-x 1 root root 16256 May 19 04:56 "a"
в скрипте прописал sleep 1000. залогинился другим обычным юзером. запустил скомпилированную программу, и вижу что EUSER у sleep 1000 — user, не root!

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

А, ещё забыл. Если из этого скрипта будешь вызывать другие - они себе так же откатят setuid если у них не указано -p. Это поведение в целом можно убрать, если в программе-обёртке в начало вставить setuid(0);. Но тогда будет другая проблема: поскольку информацию про сделанный setuid мы затёрли, узнать из скрипта какой юзер его на самом деле запустил уже не получится. В итоге есть разные варианты с тем, прятать ли setuid и если прятать, то когда, а так же с тем. кто и когда будет проверять права юзера-запускателя на выполнение действия. Главное - что проверить надо раньше чем затирать инфу о юзере.

firkax ★★★★★
()