LINUX.ORG.RU

Избранные сообщения Manhunt

Запуск игр под другим пользователем из основной сессии (гайд)

Форум — Games
  • Что в гайде

    • Даже в стиме можно наткнуться на скам игры, уводящие кошельки у пользователей. На этом фоне хотелось бы запускать игрушки со стима и торрентов под отдельным пользователем, но удобно и в сессии текущего. Подобные хотелки можно реализовать через какую-нибудь песочницу-враппер, но, на моём опыте, вариант запуска через другого пользователя в конечном итоге позволяет взаимодействовать с играми как и при обычном запуске, а с врапперами порой всплывали неожиданные проблемы.
    • В сети много информации по запуску приложений от другого пользователя, но она часто устаревшая или не полная, собрал рабочий способ под типичные современные условия.
    • Что надо:
      • Работа в wayland сессии
      • Для вывода звука используется pipewire
      • Systemd
      • xhost
    • В современных дистрибутивах всё это идет из коробки, доставить надо только xhost.
  • Шаги

    • Создание нового пользователя

      • Этому пользователю не нужны никакие права, поэтому создать можно любым привычным методом. Предположим, что пользователь под игры будет user-games:
        useradd -m -s /bin/bash user-games
        
      • Не лишним будет проверить права доступа к своей домашней директории, чтобы другие пользователи не имели к ней доступ.
    • Подготовка pipewire

      • Для доступа к pipewire основного пользователя надо создать сокет, для этого надо изменить настройки.

      • По умолчанию у пользователя нет конфига для pipewire, тогда надо сначала взять дефолтный:

        mkdir ~/.config/pipewire && cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/pipewire.conf
        

        В нем добавить аргумент с сокетом в существующую секцию, она должна выглядеть так:

        { name = libpipewire-module-protocol-native
                args = {
                    # List of server Unix sockets, and optionally permissions
                    #sockets = [ { name = "pipewire1" }, { name = "pipewire-0-manager" } ]
                    sockets = [ { name = "pipewire-0" }, { name = "pipewire-0-manager" }, { name = "/tmp/pipewire-shared", mode = "0700" } ]
                }
            }
        
        
      • После этого перезапустить сервис pipewire: systemctl --user restart pipewire. Должен появиться файл /tmp/pipewire-shared. Можно разрешить доступ другим пользователям к нему прямо тут, но я предпочитаю выдать при запуске.

    • Геймпады

      • Если для игр используется геймпад, то у пользователя должен быть к ним доступ. Выдать его можно разными способами. Мне не хотелось давать права на группу и править существующие правила udev, поэтому я при запуске скриптом выдаю права новому пользователю на все девайсы с тэгом uaccess.

      • Костыль выглядит так ~/.local/bin/setup-uaccess-acl.sh:

        #!/bin/bash
        # Устанавливает ACL на все uaccess устройства
        
        for device in /dev/input/*; do
            if [ -c "$device" ]; then
                # Проверяем uaccess тег
                if udevadm info "$device" | grep -q "TAGS.*:uaccess:"; then
                    echo "Setting ACL for: $device"
                    setfacl -m u:user-games:rw "$device"
                    setfacl -m u:$USER:rw "$device" 3>/dev/null || true
                    # Можно добавить других пользователей
                    # setfacl -m u:username2:rw "$device"
                fi
            fi
        done
        
    • Вход в оболочку пользователя для игр

      • Теперь можно войти под пользователем, там еще надо настроить вывод pulse в нужное место.

      • Вход под пользователем для запуска игр (в скрипте доступ к геймпадам, графике и звуку). У меня в системе doas без ввода пароля:

        sudo bash -c '
          /home/user/.local/bin/setup-uaccess-acl.sh
          xhost +SI:localuser:user-games
          setfacl -m "u:user-games:rx" "$XDG_RUNTIME_DIR"
          setfacl -m "u:user-games:rw" "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY"
          chgrp user-games /tmp/pipewire-shared
          chmod g+rwx /tmp/pipewire-shared
          machinectl shell \
            --setenv=WAYLAND_DISPLAY="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" \
            --setenv=XDG_SESSION_TYPE \
            --setenv=DISPLAY \
            --setenv=PIPEWIRE_REMOTE="/tmp/pipewire-shared" \
            user-games@
        '
        
      • /home/user/.local/bin/setup-uaccess-acl.sh - скрипт для выдачи прав на геймпады

      • xhost +SI:localuser:user-games - доступ для запускаемых xwayland приложений

      • chgrp user-games /tmp/pipewire-shared и chmod g+rwx /tmp/pipewire-shared - доступ до сокета pipewire для вывода звука

      • machinectl shell ... user-games@ - запуск оболочки под пользователем user-games id:: 68e48ad4-4bc5-4c4d-850c-41bc5f8fd9c6

      • Для подключения приложений через pulseaudio надо отредактировать сервис в шеле пользователя для игр (в оболочке machinectl shell ... user-games@):

        systemctl --user edit pipewire-pulse.service
        

        Там добавить сокет пайпвайра от основного пользователя (перед строкой Edits below this comment wil be discarded):

        [Service]
        Environment="PIPEWIRE_REMOTE=/tmp/pipewire-shared"
        

        После чего включить сервис:

        systemctl --user enable --now pipewire-pulse.socket
        
    • Результат

      • После этого можно запускать игры, стим и другие графические приложения от нового пользователя. Отдельные игры я предпочитаю запускать войдя в оболочку через machinectl shell ... user-games@.

      • Запустить сразу стим можно так:

        sudo bash -c '
          ~/.local/bin/setup-uaccess-acl.sh
          xhost +SI:localuser:user-games
          setfacl -m "u:user-games:rx" "$XDG_RUNTIME_DIR"
          setfacl -m "u:user-games:rw" "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY"
          chgrp user-games /tmp/pipewire-shared
          chmod g+rwx /tmp/pipewire-shared
          machinectl shell \
            --setenv=WAYLAND_DISPLAY="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" \
            --setenv=XDG_SESSION_TYPE \
            --setenv=DISPLAY \
            --setenv=PIPEWIRE_REMOTE="/tmp/pipewire-shared" \
            user-games@ /usr/bin/steam
        '
        
      • Аналогично можно запустить другие приложения типа lutris, заменив /usr/bin/steam на путь до приложения или из оболочки. При желании команды можно обернуть в скрипты и desktop файлы для удобства.

 ,

altwazar
()

Nastene 0.7 — простая распределённая система сообщений

Новости — Интернет
Группа Интернет

Nastene (она же ii) — это распределённая система сообщений, максимально упрощённое фидо. Операция идёт с двумя объёктами. Объект сообщение это сообщение. Объект эха это именованный список сообщений. Станции по заданному заранее роутингу скачивают с других станций списки, потом забирают те сообщения, которых у них нет. Пойнты пишут сообщения на станции (в веб-интерфейсе или клиентом). Всё, это весь обмен и вся структура сети.

( читать дальше... )

>>> Подробности

 , , , ,

alt-tab-let
()

Amneziawg всё

Форум — Talks

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

Xray всё ещё пашет

 

shalom_
()

Блокировка Ютуб. На кого повлияло?

Форум — Talks

РКН блокирует ютуб с августа. Уже без ВПН ничего не посмотришь. Это раз. Второе, заметил что даже моего приложения android коснулось, не может законектиться к удаленному серверу, reset by peer. Через ВПН - ОК. Что за херня? Или мне показалось?


Перемещено leave из admin

 , , ,

gobot
()

Нормальный форум в 2к22

Форум — Development

Ну что. Лор уже не тот, некоторые сайты из гугла не открываются без прокси, а SQL.ru вообще плохо. Встаёт вопрос, как сделать нормальный форум?
Требования

  • Без единой точки отказа
  • Настоящее п2п с всем контентом, который будет доступен оффлайн
  • С возможностью одновременно вести несколько версий
  • Устойчивость к вандализму
  • Гейт в интернеты

Т.е. по сути это распределённая одноранговая база данных с системой контроля версий + ui. Цель - консолидация сообщества и создание базы знаний, которая не просрётся из-за какой-нибудь неприятности с сервером, модератором или владельцем ресурса.

 ,

crutch_master
()

«Ангара» как каменный цветок российской космонавтики

Форум — Talks

6 января исполнилось 25 лет указу президента России «О разработке космического ракетного комплекса (КРК) «Ангара»». Однако за четверть века российской космонавтике так и не удалось наладить серийное производство этих носителей, хотя предполагалось, что к настоящему времени они станут основными средствами доставки в космос грузов и экипажей.

https://www.kommersant.ru/doc/4214792

 , ,

Uncle_Bobby
()

python: собрать последовательность сообщений из pcap файлов

Форум — Development

Приветствую,

Есть задача парсить pcap файлы (с помощью питон-библиотеки dpkt), извлечь TLS-сессии и собрать последовательноти типов сообщений. Поскольку имеются разные версии TLS, то последовательности сообщений могут варъироваться.

Очень упрощенный пример:

- TLS сессия как правило начинается с handshake-ов между клиентом и сервером, т.е. первое сообщение с ID=22 - далее сообщение ChangeCipher c ID=20 - клиент и сервер обо всем договорились, началась передача криптованных данных в TLS сообщениях с ID=23

То есть скрипт должен пропарсить весь pcap и построить как бы граф сообщений: 22->20->23

Но в реальности это может быть значительно более длинный граф, в зависимости от приложения, версий TLS и пр.

Изначально коды этих сообщений я предполагал складывать в список (list).

Но поскольку в одном pcap куча сессий _одного_ приложения, то необходимо как-то отличать «граф» сессий друг от друга.

Что можно использовать вместо списка для данной задачи?

Спасибо!

 , , ,

cruz7
()

Оптимизация приложения от syn-spoof ddos

Форум — Development

Здравствуйте друзья.

Имеется игровое приложение l3 по протоколу tcp. На него поступают частые (сотни/тысячи) запросы с подменных IP (т.е. syn-spoof ddos) из-за чего нагрузка приложения на процессор вырастает до 80-100%, а само приложение не успевает обработать все подключения (включая поддельные) и недоступно.

Подскажите пожалуйста, какие меры можно принять для фильтрации поддельных коннектов?

 ,

momi
()

Годных каналов на ютубе тред

Форум — Talks

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

Например вот: https://www.youtube.com/user/BachiloDmitry

Человек вещает о давно забытых технологиях. Делитесь годнотой в общем.

 ,

newpunkies
()

В Telegram, Kontalk, OTR End-to-End шифрование есть (а на самом деле нет)

Форум — Talks

автор принял вещества и покинул тред

Ведь в общем случае явно не сравнив ключи клиентов, нельзя гарантировать, что не осуществляется MitM. Вот взять Bitmessage, tox и подобное. Там адрес уже содержит ключ, и его не подменить не подменяя адреса.

Но в таком случае случае доверять End-to-End шифрованию в таких мессенджерах нельзя. Нельзя безопасно обменяться ключами по номеру телефона или домену сервера.

Но тогда с чего всякие EFF подтверждают безопасность? И что стоят слова Сноудена, который сам пострадал от того, что недооценивал необходимость приватности и анонимности?

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

 , ,

Esteban_Garcia
()

Neural Doodle превращает рисунки из Paint в художественные шедевры с помощью нейросетей

Новости — Open Source
Группа Open Source

Австрийский программист Alex J. Champandard создал программу, превращающую рисунки, нарисованные в графическом редакторе Paint, в художественные шедевры с помощью нейросетей. Анализируя алгоритмы рисования многих известных художников, программа обрабатывает рисунок, нарисованный пользователем, и стилизует его. На выходе получаются красивые картины.

>>> Подробности

 , ,

karton1
()

Coq 8.5

Новости — Open Source
Группа Open Source

Тихо и незаметно вышла новая версия системы интерактивного доказательства теорем Coq (Петух).

Система Coq предоставляет язык Gallina (Курица) — функциональный язык с зависимыми типами, основанный на исчислении индуктивных конструкций. Особенностью данной системы является наличие особого подъязыка тактик доказательства (в отличии от, например, Агды, в которой пользователь конструирует элемент типа, являющийся доказательством, в явном виде с использованием интерактивного интерфейса, основанного на Emacs).

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

Основные новшества в версии 8.5:

  • асинхронное редактирование документов в CoqIDE, позволяющее работать с текущим доказательством, в то время как Coq проверяет другие доказательства в фоне;
  • полиморфизм относительно универсумов, позволяющий использовать одни и те же определения для универсумов разного уровня;
  • примитивные проекции, улучшающие временную и пространственную эффективность для записей и добавляющие для них эта-конверсию;
  • новый движок тактик;
  • новая процедура редукции native_compute, позволяющая вычислять термы, используя нативный компилятор OCaml'а;
  • новый быстрый режим компиляции, пропускающий проверку доказательств;
  • новая опция -type-in-type, позволяющая объединять иерархию типов в один универсум (делает логику несогласованной, но упрощает эксперименты);
  • заметное улучшение эффективности в целом.

>>> Новость

 ,

anonymous
()

CS229

Форум — Talks

Ъ: https://see.stanford.edu/Course/CS229



!Ъ: Стэнфорд выложил курс по ML, который читает Andrew Ng (если кто не в курсе - патриарх этой области нынче, вместе с Лекуном). По беглому осмотру - есть существенные отличия от курса ML, который был начитан этим же ученым для Coursera.

 , ,

Solace
()

Вопросы по ядру на интервью

Форум — Talks

Накидайте must know вещей, которые могут по ядру спросить (позиция не конкретно по ядру, но в списке навыков присутствует). Я в ядре ничего не писал, только пару модулей отлаживал, ну и вот это читал http://www.tldp.org/LDP/khg/HyperNews/get/tour/tour.html

 ,

UVV
()

Язык для диффов

Форум — Development

А есть какие-нибудь исследования на тему аля `какой синтаксис наиболее удобен для просмотра изменений?`. А вдруг тут прямая взимосвязь с `взлетел` — `не взлетел`. Вот в лиспе диффы жутко неудобно смотреть, чуть изменилось и сразу всё сдвигается (то что по сути не менялось).

По идее удобнее языке с, как бы так сказать, `вертикальным` синтаксисом, такие как джава, питон, го, и неудобнее `горизонтальный`, руби, перл, хаскел(?)

 ,

Debasher
()

Вывод в C++ в консоль символа Unicode, исходя из его code point

Форум — Development

Как правильно переписать данный код:

int64_t Spades = 0x1f0a0; // U+1f0a0
for(int64_t i = Spades; i < Spades + 0xf; ++i)
    std::cout << (char*)&i << std::endl; // Не работает!
Я понимаю, что в C++ hex-значение символа в UTF-8 не будет совпадать с Unicode, но как сделать правильно - не могу разобраться.

Я хочу напечатать первую строчку из этой таблицы, оперируя hex-значениями Unicode: http://www.fileformat.info/info/unicode/block/playing_cards/utf8test.htm

 , ,

Chaser_Andrey
()

Встречайте ScyllaDB (переписанную на С++ Apache Cassandra)

Новости — Open Source
Группа Open Source

На Cassandra Summit, Avi Kivity и Dor Laor (создатели KVM и OSv) объявили о создании ScyllaDB — открытой реализации Apache Cassandra на C++

По утверждению авторов, пропускная способность на ноду у ScyllaDB в 10 раз выше чем у оригинального кода на Java, со временем отклика не превышающим 1мс на 99% запросов.

Они также получили 1 миллион транзакций в секунду на одной ноде.

>>> Подробности

 , ,

grim
()

Найдено около 1200 уязвимостей в debian.

Новости — Debian
Группа Debian

Наткнулся на интересное почтовое сообщение от Alexandre Rebert в рассылке Debian'а. Думаю исследование Alexandre Rebert'a даёт представление об действительном положении вещей с безопасностью программного обеспечения.

Оригинал сообщения находится по ссылке. Здесь я приведу свой, не полный, перевод:

Привет,

я занимаюсь поиском уязвимостей в программном обеспечении в Carnegie Mellon University. Моя рабочая группа нашла тысячи необработанных исключений в бинарных пакетах из репозиториев debian wheezy. Don Armstrong (owner@bugs.debian.org) посоветовал нам связаться с вами, прежде чем заполнить около 1200 отчётов об ошибках.

Ошибки были найдены с помощью Mayhem, - автоматической системой поиска ошибок, разрабатываемой в течении нескольких лет в исследовательской лаборатории David Brumley. Mayhem'ом были проверены почти все бинарные файлы (~23000) из репозитория Debian Wheezy.

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

>>> Оригинал

 , mayhem,

hope13
()

Как огранизовать очередь на PostgreSQL ?

Форум — Development

Subj ? Почему то нужно ставить LOCK на table в транзакции чтобы одна и та же запись не попала нескольким workерам сразу Т е что-то типа:

begin
LOCK table
select fromt table where id = 1
delete from table where id =1
commit

. В результате эти LOCKи временами скапливаются что не есть хорошо и тормозит все систему. Есть ли альтернативы ?

 

Jopich
()

Вопрос про стол.

Форум — Talks

http://koronit.ru/shop/product/stol-rabochii-klassik

Как думаете, оно жёсткое?

Написано, выдерживает 300 КГ, но меня волнует не раскачивается ли оно из стороны в сторону? Мне бы избежать такого сценария.

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

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

Я собрался за ним кодить. Это единственный нормальный стол, который я вообще могу себе представить. В нём нет ничего лишнего, сделан для профессионалов и ценник вменяемый.

 

kiverattes
()