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 для чего нужен?!

 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, но хочу разобраться и как то же все системные сервисы эту проверку проходят….

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 consolekit

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

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

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

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 подписка на новые темы