LINUX.ORG.RU

Сообщения anonymous2

 

setuid на thread

в linux вроде можно, как? POSIX

 

anonymous2
()

индикатор раскладок клавиатуры

Вдруг захотелось разобраться и написал для себя, как ни странно всё работает, решил поделиться.

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

  • Режим normal - активное окно запоминает последнюю раcкладку
  • Режим first - на активном окне определена строгая очерёдность языковых * раскладок
  • Режим fixed - на активном окне только одна языковая раскладка

Собственно хотелось бы дополнительных еще идей, чего не хватает еще?

https://github.com/AndreyBarmaley/qxkb5

 , ,

anonymous2
()

Какой дистр Linux первым заблокирует обновления для России?

или это невозможно из за децентрализованной системы доставки обновлений. вобщем у кого первым в Linux сорвет крышу из за политики?

 ,

anonymous2
()

/proc/self/loginuid для чего нужен?!

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

на этапе pam_open_session получаю ошибку типа:
pam_loginuid(login:session): Cannot open /proc/self/loginuid: Permission denied

при этом, в этот момент процесс у меня запущен под uid 0, и я проверяю там права на запись есть…

так же смотрел исходники pam_loginuid там обычный open(O_NOFOLLOW|O_RDWR) вот тут они:
https://github.com/linux-pam/linux-pam/blob/master/modules/pam_loginuid/pam_loginuid.c

я конечно могу выкинуть pam_loginuid, но хочу разобраться и как то же все системные сервисы эту проверку проходят….

 loginuid,

anonymous2
()

LVM: device excluded by a filter?!

вообщем хрень какая то, переехал с centos6 на centos7.9.2009.. ставил новую систему + пару разделов своих оставил, и вот lvm не видит pv внутри lv.

тест такой:
lvcreate -L4G -n test_pv1 vg_xennode2
pvcreate /dev/vg_xennode2/test_pv1
тут ошибка: Device /dev/vg_xennode2/test_pv1 excluded by a filter.

могу кинуть дамп от pvcreate -vvv но слишком много мусора.

решения из гугла приводят к кейсу что надо wipefs делать, но мне непомогает это. Да и смотри дальше, у меня дополнительно мигрировало 100гб в виде pv (так его проще через pvmove + iscsi мигрировать в онлайне), вайпать рабочие данные нехотелось бы .
pvdisplay /dev/vg_xennode2/devel_pv1
Failed to find device for physical volume "/dev/vg_xennode2/devel_pv1"

то что оно рабочее 100% через losetup + pvdisplay /dev/loop0 я все там вижу и vg норм активируется.

все дело каких то внутренних фильтрах LVM в релизе centos7, причем конфиги все default, filter и global_filter я не правил, да и не помогает это.

Понятно что все эти данные я вытащу, но осадочек остался… энтерпрайз ахтунг!
Кто юзает centos7 хотелось бы подтверждения баги

 ,

anonymous2
()

немогу запустить Xvfb через fork + execl

сама ошибка от Xvfb

XKB: Failed to compile keymap
Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
(EE) 
Fatal server error:
(EE) Failed to activate virtual core keyboard: 2(EE) 

через консоль просто командой запускается нормально без ошибок

/usr/bin/Xvfb :99 -nolisten tcp -screen 0 1024x768x24

через код с ошибкой, вот код

/* g++ -Wall -otest test.cpp -std=c++14 */

#include <errno.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
#include <syslog.h>
#include <sys/wait.h>

#include <chrono>
#include <thread>
#include <atomic>
#include <cstdlib>
#include <iostream>

std::atomic<bool> running;

void signal_handler(int sig)
{
    syslog(LOG_DEBUG, "signal receive: %d", sig);
    
    if(sig == SIGTERM || sig == SIGINT)
        running = false;
}

int main(int argc, char** argv)
{
    openlog("test_case", LOG_PERROR, LOG_USER);

    signal(SIGTERM, signal_handler);
    signal(SIGINT, signal_handler);
    signal(SIGCHLD, SIG_IGN);
    signal(SIGHUP, SIG_IGN);

    int pid = fork();
    if(0 > pid)
    {
        syslog(LOG_ERR, "fork failed");
        return -1;
    }
    
    if(0 == pid)
    {
        syslog(LOG_DEBUG, "child zone");
        signal(SIGTERM, SIG_DFL);
        signal(SIGINT, SIG_IGN);
        signal(SIGHUP, SIG_IGN);
        signal(SIGCHLD, SIG_IGN);

        int res = execl("/usr/bin/Xvfb", "Xvfb", ":99", "-nolisten", "tcp", "-screen", "0", "1024x768x24", (char*) NULL);

        if(res < 0)
            syslog(LOG_ERR, "execl failed: %s", strerror(errno));

        _exit(0);
    }

    syslog(LOG_DEBUG, "main running");

    running = true;
    using namespace std::chrono_literals;

    while(running)
        std::this_thread::sleep_for(100ms);

    closelog();
    return 0;
}

selinux выключен, любые идеи... и кто и что там еще может какие лимиты срабатывать?

 , ,

anonymous2
()

чем можно заменить min_element/max_element с условием выборки?

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

вот пример, результат 20, мне нужно «not found»

#include <utility>
#include <vector>
#include <iostream>
#include <algorithm>

int main()
{
    std::vector< std::pair<bool, int> > v = { {false, 20}, {false, 3}, {false, 11}, {false, 7}, {false, 12} };
    auto it = std::min_element(v.begin(), v.end(),
                        [](const std::pair<bool, int> & p1, const std::pair<bool, int> & p2)
    {
        if(p1.first && p2.first)
            return p1.second < p2.second;

        return p1.first;
    });

    if(it != v.end())
        std::cout << (*it).second << std::endl;
    else
        std::cout <<  "not found" << std::endl;

    return 0;
}

 ,

anonymous2
()

c++, lambda, template, множественный аргумент и относительно старый gcc, можно ли переделать?!

на удаленном ресурсе, обновили 1С, собственно я тоже под линукс 1С обновил, но там выползла новая зависимость на libwebkitgtk-3.0, раньше не было, вообщем почти все поборол.. заткнулся на этом

template <typename T, typename... Arguments>
class CrossThreadTaskImpl final : public CrossThreadTask {
public:
    CrossThreadTaskImpl(T* callee, void (T::*method)(Arguments...), Arguments&&... arguments)
    {
        m_taskFunction = [callee, method, arguments...] {
            (callee->*method)(arguments...);
        };
    }
};

gcc-4.8, ошибки такие

error: expected ‘,’ before ‘...’ token
         m_taskFunction = [callee, method, arguments...] {
                                                    ^
error: expected identifier before ‘...’ token
error: parameter packs not expanded with ‘...’:
         m_taskFunction = [callee, method, arguments...] {
                                                       ^
error: expansion pattern ‘arguments’ contains no argument packs
             (callee->*method)(arguments...);

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

 , ,

anonymous2
()

Intel Corporation Device 5902 - что за зверь?

X.Org X Server 1.17.4, xorg-x11-drv-intel-2.99.917-0.4.20151111

при использовании драйвера intel - (EE) No devices detected.
при использовании драйвера modesetting - (EE) Device(s) detected, but none match those in the config file. no screens found(EE)
работает только vesa

выхлоп lspci

00:02.0 VGA compatible controller: Intel Corporation Device 5902 (rev 04) (prog-if 00 [VGA controller])
        Subsystem: Lenovo Device 3113
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at de000000 (64-bit, non-prefetchable) [size=16M]
        Region 2: Memory at c0000000 (64-bit, prefetchable) [size=256M]
        Region 4: I/O ports at f000 [size=64]
        Expansion ROM at <unassigned> [disabled]
        Capabilities: [40] Vendor Specific Information: Len=0c <?>
        Capabilities: [70] Express (v2) Root Complex Integrated Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                        ExtTag- RBE+ FLReset+
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [ac] MSI: Enable- Count=1/1 Maskable- 64bit-
                Address: 00000000  Data: 0000
        Capabilities: [d0] Power Management version 2
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] #1b
        Capabilities: [200 v1] Address Translation Service (ATS)
                ATSCap: Invalidate Queue Depth: 00
                ATSCtl: Enable-, Smallest Translation Unit: 00
        Capabilities: [300 v1] #13

вроде intel, но что за чип, как его заставить работать?

 ,

anonymous2
()

ck-launch-session грузит Xorg 100%

для проверки запустил голый Xorg (1.17.4) + xterm,

как только дам команду ck-launch-session нагрузка на проц увеличивается до 100%

кто в курсе, что ему (ConsoleKit 0.4.1) надо?

 xorg consolekit

anonymous2
()

приоритет операторов и gcc,clang

увидел на geekbrains тест:

    int p = 20, n = 12;
    n *= --p << 1 + p++ / 10;

чисто логически по таблице приоритетов я развернул так:

(p - 1) << (1 + (p - 1) / 10)

у меня clang, gcc разных версий выдает разный результат - 912, 960.

кто в курсе, у них какой ответ считается верным результатом?!

 ,

anonymous2
()

Драйвер ККМ для Штрих М,ФР

Сделан в виде сервиса DBus. Реализован протокол Штрих 1.12 (+добавлена команда открыть смену 0xE0 из нового протокола 2.0.24).

Преимущество - работает в любых тулкитах (bash, javascript, c++, perl, python и.т.д), можно расшарить через сеть. Есть пример чтения таблиц на Qt.

https://github.com/ShtrikhFRDBusService/shtrikh-fr-dbus-service

Написан на perl, в торговых условиях используется в больше 2 лет.

 , , ,

anonymous2
()

Civ5 [1.0.3.144] часто крешится, есть под linux что поновее?

subj

 

anonymous2
()

насколько адекватен тест «процессор-память» dd if=/dev/zero of=/dev/null?

в наличии есть различный парк процессоров и серверных и десктопных, так вот разброс значений от 60GB до 1GB независимо от новизны моделей.

 ,

anonymous2
()

чем проверить ECC REG память?

subj

anonymous2
()

Dwarf Fortress

вообщем появилось время, по совету друзей посмотрел, начал осваивать. :D

глупые вопросы пользователя: вообще почему игра заточена под большой монитор? В игре используются тайлы на 16, запустил на старом ноуте с 1024 по ширине, и так что за хрень, нафига их (тайлы) еще уменьшать до 12? на экране из за масштабирование полное УГ. как изменить размер ttf шрифта? вроде простое желание, место на экране есть, а поменять никак.

anonymous2
()

как заблокировать перезагрузку usb дравера?

мне нужно мониторить один девайс, подключается через usb/lp0. так вот при чтении из порта, (например как head -c 10 /dev/usb/lp0 > dump.log)

я постоянно получаю в dmesg:

usb 1-8.1: USB disconnect, address 11
drivers/usb/class/usblp.c: usblp0: removed
usb 1-8.1: new full speed USB device using ehci_hcd and address 12
usb 1-8.1: configuration #1 chosen from 1 choice
drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 12 if 0 alt 0 proto 2 vid 0x0F25 pid 0x0012

лог dbus-monitor:

signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceRemoved
   string "/org/freedesktop/Hal/devices/usb_device_f25_12_1000001_usbraw"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceRemoved
   string "/org/freedesktop/Hal/devices/usb_device_f25_12_1000001_if0_printer_noserial"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceRemoved
   string "/org/freedesktop/Hal/devices/usb_device_f25_12_1000001_if0"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string "/org/freedesktop/Hal/devices/usb_device_f25_12_1000001_if0"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceRemoved
   string "/org/freedesktop/Hal/devices/usb_device_f25_12_1000001"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string "/org/freedesktop/Hal/devices/usb_device_f25_12_1000001"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded

лог udevmonitor:

UEVENT[1338781979.608634] remove@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/1-8.1:1.0/usbdev1.16_ep02
UEVENT[1338781979.608705] remove@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/1-8.1:1.0/usbdev1.16_ep84
UEVENT[1338781979.608732] remove@/class/usb_endpoint
UEVENT[1338781979.608756] remove@/class/usb/lp0
UEVENT[1338781979.608781] remove@/class/usb
UEVENT[1338781979.609313] remove@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/1-8.1:1.0
UEVENT[1338781979.609356] remove@/class/usb_device/usbdev1.16
UEVENT[1338781979.609423] remove@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/usbdev1.16_ep00
UEVENT[1338781979.609450] remove@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1
UDEV  [1338781979.609920] remove@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/1-8.1:1.0/usbdev1.16_ep02
UDEV  [1338781979.611013] remove@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/1-8.1:1.0/usbdev1.16_ep84
UDEV  [1338781979.611699] remove@/class/usb_endpoint
UDEV  [1338781979.613078] remove@/class/usb/lp0
UDEV  [1338781979.614045] remove@/class/usb_device/usbdev1.16
UDEV  [1338781979.615263] remove@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/usbdev1.16_ep00
UDEV  [1338781979.718809] remove@/class/usb
UDEV  [1338781979.815417] remove@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/1-8.1:1.0
UEVENT[1338781979.871570] add@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1
UEVENT[1338781979.871837] add@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/usbdev1.17_ep00
UEVENT[1338781979.871878] add@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/1-8.1:1.0
UDEV  [1338781979.873121] add@/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8.1/usbdev1.17_ep00
UEVENT[1338781979.874227] add@/class/usb/lp0

как бы узнать, это косяк девайса или есть возможность пофиксить перезагрузку драйвера?

anonymous2
()

Баг в samba + ldap, давайте обсудим...

баг: Любой авторизованный пользователь домена может получить доступ к файловой системе.
Причем администратор домена получает полный права к файловой системе сервера.

Для воспроизведения бага необходимо:
1. настроенный ldap сервер
2. nsswitch.conf настроен, getent passwd выдает список пользователей
3. samba как домен контроллер настроен на ldap (большая часть параметров пропущена)

[global]
security = user
passdb backend = ldapsam:ldap://ldap.server

[homes]
read only = no
browseable = no

Проверить очень просто, на клиенте, из под пользователя домена,
открываем например ресурс:
\\server\dbus

на redhat5, centos5, я получаю / сервера.
Других дистрибутивов у меня нет, проверить не могу.

а причина в том что:
# grep dbus /etc/passwd
dbus:x:81:81:System message bus:/:/sbin/nologin

т.е. параметр passdb backend = ldapsam отрабатывается не корректно?
Сразу напишу, параметр invalid users = bin,daemon,dbus,avahi и т.п. не поможет.

Я конечно отправил баг в bugzilla.redhat.com, его закрыли с пометкой:
> If you want to secure access to shares created via the [homes] mechanism,
> please follow the instructions from the Samba Howto Collection:
> «Why Can Users Access Other Users' Home Directories?»
> (https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/securing-
> samba.html#id2619170).
>
> In short: you can restrict access to only the authenticated user by setting
> «valid users = %S» in the [homes] section. You will also find this setting
> in our default smb.conf file that we ship with the samba package.

Т.е. возможно меня они не поняли (google translate :), т.к. зачем мне valid users?
на ресурс [homes] должны подключаться все пользователи домена,
и пользователь домена и так эксплуатирует эту уязвимость,
опять же параметр invalid users не работает (он и не должен работать в данной ситуации).

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

Вопрос какой?!
Действительно так и должно быть?
Моя обеспокоенность здесь не уместна?

anonymous2
()

centos5 samba x86_64 кто испольует?

интересует именно samba-3.0.33-3.38.el5_8 как домен контроллер кто использует?

anonymous2
()

std::vector отрицательный size

не linux но достало.. в какие то моменты вектор возвращает отрицательный size, т.е. для 72 элементов возвращает -72

проект вдоль и поперек причесан через valgrind.

в нормальном linux и windows все нормально, но периодически в wince где gcc версии 4.4.0. ни кто про такое не слышал?

сейчас пофиксил типа (в хидере bits/stl_vector.h):

size_type                                                                                
      size() const                                                                             
      { return size_type(abs(this->_M_impl._M_finish - this->_M_impl._M_start)); }                  

anonymous2
()

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