Задать вопрос
  • Какую систему виртуализации можно поставить на FreeBSD?

    LordNicky
    @LordNicky
    пару лет назад уходил с virtualbox, поскольку надоели проблемы с kernelpanic-ами. В итоге пользуюсь cbsd с jail и bhyve под свои задачи. полет нормальный)
  • Как в Storage Spaces настроить Parity с кэшем на ssd и возможно ли это?

    LordNicky
    @LordNicky Автор вопроса
    Спасибо, попробую. Тогда еще вопрос - позволяет ли SS добавлять диски в массив?

    Я имею ввиду после того, как создана файловая система и всё работает. Допустим из parity на 3 hdd я хочу получить parity на 4 hdd. Могу я просто добавить диск или нужно сразу проектировать то, что нужно?
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: итак, запилил наконец таки! помогло следующее:
    1. Добавил в указанную выше секцию конфига kdm (/usr/local/share/config/kdm/kdmrc) строчку:
    Session=/usr/local/share/config/kdm/Xsession
    2. Стырил у своего же xdm файлик Xsession, расположил по правильному пути.
    3. закинул пользователю в home файлик .xsession с содержанием:
    #!/bin/sh
    exec /usr/local/bin/startkde

    Правда есть 2 глюка с кедами:
    1. логин только через некоторое время после старта срабатывает(опять же, в консоли всё с ходу работало... )
    2. отказываются работать кнопки отключения и перезагрузки...
    но это, в сущности фигня. хотя с таким количеством фигни всё больше склоняюсь психануть и запилить себе фряху нормальную...

    Спасибо за помощь!
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: эммм... зря вот тут не оставили смайлика, бьющегося головой ап стену.

    Файл по умолчанию или засунут в неведомые дали или отсутствует напрочь, с гуглом пополам угадал место, в которое нужно положить конфиг, сгенерированный ГУЙем kde-шным. это оказалось /usr/local/share/config/kdm/kdmrc. Так вот, в нём ни слова о каталогах, про которые вы писали. Там про графику, каким юзерам разрешать логиниться и пр.
    Есть еще /usr/local/share/xsessions/_kde4.desktop, тут ближе к теме, даже команды правильные указаны, но есть подозрения, что kdm сюда не смотрит.
    Еще ловлю такую вот ошибку от kdm-а, пока затрудняюсь сказать, насколько связанную с проблемой:
    klauncher(2226) kdemain: No DBUS session-bus found. Check if you have started the DBUS server.
    kdeinit4: Communication error with launcher. Exiting!
    kdmgreet(2221)/kdecore (K*TimeZone*): KSystemTimeZones: ktimezoned initialize() D-Bus call failed: "Not connected to D-Bus server"

    Нашел такой вот хороший ман по kdm. https://wiki.archlinux.org/index.php/KDM
    Попытался скопировать в каталог kdm файл Xsession из xdm-а. Ничего не дало...
    У вас в какой секции указанные выше строки?
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: День добрый! Есть свежие новости с фронта... ^_^
    Залогиниться из kdm всё же получилось, пришлось установить слегка отличные от стандартных настройки для /usr/local/etc/pam.d/kde:
    #
    # $FreeBSD$
    #
    # PAM configuration for the "kde" service
    #

    # auth
    auth sufficient pam_krb5.so no_warn try_first_pass
    #auth sufficient pam_ssh.so no_warn try_first_pass
    auth required pam_unix.so no_warn try_first_pass

    # account
    account sufficient pam_krb5.so
    account required pam_nologin.so
    account required pam_unix.so

    # session
    #session optional pam_ssh.so want_agent
    session required pam_permit.so
    session required /usr/local/lib/pam_mkhomedir.so

    И теперь проблема сводится к каноничному "как пропатчить kde под фрёй?"...
    Логин успешно проходит, после чего я остаюсь наедине с консолью xterm-а(с одной единственной, что странно. когда меня в чистые иксы выкидывало - мне 3 консоли выдавали).
    Если ввести в ней startkde - кеды радостно стартуют и работают. Автоматически, куда только ни ковырял - наотрез отказываются... т.е. ~/.xsession и ~/.xinitrc пересмотрены со всех сторон и под всеми возможными соусами...
    Идеи?
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: И снова добрый вечер!
    В общем, установил я с горем пополам kdm. Ибо xdm у меня отказался запускаться напрочь - показывал мне терминал в 0-й консоли, а на 8-ю переключаться отказывался напрочь.

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

    З.Ы. напоминаю, что с консоли нужным пользователем прекрасно захожу и запускаю иксы... можно, конечно запилить скрипт, который после логина с консоли будет пускать иксы и оболочку, а всяческие DM-ы отключить нафиг, но как то это.......
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: блин... а я без понятия, как тут переключить DM. Они же прикрутили в этой версии OpenRC. И с ним то особых сложностей нет, да вот только через спец-гую видно только PCDM сервис, XDM отсутствует, а через консоль pcdm отсутствует, ну да ладно... чтонибудь придумаем.

    меня сейчас подгрузило следующее:
    Virtual terminals
    ttyv1 "/usr/libexec/getty Pc" xterm on secure
    ttyv2 "/usr/libexec/getty Pc" xterm on secure
    ttyv3 "/usr/libexec/getty Pc" xterm on secure
    ttyv4 "/usr/libexec/getty Pc" xterm on secure
    ttyv5 "/usr/libexec/getty Pc" xterm on secure
    ttyv6 "/usr/libexec/getty Pc" xterm on secure
    ttyv7 "/usr/libexec/getty Pc" xterm on secure
    ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure

    вот это я нашел в /etc/ttys. Отсюда следует, что PCDM - это просто наворот на xdm и, отключив PCDM, я скорее всего получу чистый xdm?
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: #
    # $FreeBSD$
    #
    # PAM configuration for the "login" service
    #

    # auth
    auth sufficient pam_self.so no_warn
    auth include system

    # account
    account requisite pam_securetty.so
    account required pam_nologin.so
    account include system

    # session
    session include system

    # password
    password include system

    У меня то предположение, что оно вылетает раньше, чем до pam вообще доходит дело. можно, конечно, и winbind включить, да вот только с консоли то всё нормально работает... А winbind, кстати, раскомментирован сейчас и всё равно(((
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    так что тогда получается - либо переписывать механизм аутентификации данного DM, либо пытаться поставить другой? Не подскажете, с какой стороны на фре к этому подходить?
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: я вот там выше писал про интересный факт, но не обратил внимание, что в итоге запостилось... вот так правильно:
    интересный факт, если ввести просто "getent passwd", то выдаются только локальные юзеры, но если уточнить "getent passwd domain_username", то инфа по пользователю выдаётся актуальная...
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    ДА! Я нашел её!!! Исходя их строчки "ret = pam_start("login", cUser, &pamc, &pamh);", используется файл "login" в pam.d. В общем то, тот же, что и для логина в консоли, как я понимаю. Стало быть - проблема при сверке со списком, как я и предполагал.

    //Stand-alone function to check a username/password combination for validity
    void XProcess::checkPW(QString user, QString pwd){
    if(USERS->isReady(user)){ xuser = user; }
    else{ xuser = USERS->findUser(user); } //convert display name into username
    //xuser = Backend::getUsernameFromDisplayname(user);
    xpwd = pwd;
    bool ok = pam_checkPW();
    pam_shutdown();
    xuser.clear();
    xpwd.clear();
    if(ok){ emit ValidLogin(); }
    else{ emit InvalidLogin(); }
    }

    /*
    ========== PAM FUNCTIONS ==========
    */
    static struct pam_conv pamc = { openpam_nullconv, NULL };

    bool XProcess::pam_checkPW(){
    //Requires internal "xuser" and "xpwd" variables to be set

    //Convert the inputs to C character arrays for use in PAM
    QByteArray tmp = xuser.toUtf8();
    char* cUser = tmp.data();
    QByteArray tmp2 = xpwd.toUtf8();
    char* cPassword = tmp2.data();
    //initialize variables
    bool result = false;
    int ret;
    //Initialize PAM
    //qDebug() << "Starting PAM:" << xuser << tmp << xpwd << tmp2;
    if(xuser=="root"){ ret = pam_start("system", cUser, &pamc, &pamh); }
    else{ ret = pam_start("login", cUser, &pamc, &pamh); }
    if( ret == PAM_SUCCESS ){
    pam_started = true; //flag that pam is started
    //Place the user-supplied password into the structure
    ret = pam_set_item(pamh, PAM_AUTHTOK, cPassword);
    if(ret != PAM_SUCCESS){ pam_logFailure(ret); return false; }
    //Set the TTY
    //ret = pam_set_item(pamh, PAM_TTY, "pcdm-terminal");
    //Authenticate with PAM
    ret = pam_authenticate(pamh,0);
    if( ret == PAM_SUCCESS ){
    //Check for valid, unexpired account and verify access restrictions
    ret = pam_acct_mgmt(pamh,0);
    if( ret == PAM_SUCCESS ){ result = true; }
    else{ pam_logFailure(ret); }

    }else{
    pam_logFailure(ret);
    }
    }else{ qCritical() << "Could not start PAM"; }
    //return verification result
    return result;
    }
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: Можно, я это первым делом радостно и сделал, думая, что вот как только я смогу ввести имя пользователя, тут то... Есть подозрение, что он с этим списком сверяется при логине и доколе getent не даст ему доменных пользователей - фиг пропустит((
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: Поковырял сырцы PCDM-а... наткнулся на следующие куски:
    ...
    void MainWindow::getUsers()
    {
    QStringList users = runShellCommand("getent passwd");
    mvUsers.clear();
    exUserMenu->clear();
    for(int i=0; i1000)&&(uid<65534)){
    mvUsers.push_back(username);
    }else if(QFile::exists(homedir) && QFile::exists(shell)){
    exUserMenu->addAction(username);
    }
    }
    }
    ...

    ...
    if(USERS==0){
    USERS = new UserList();
    USERS->allowUnder1K(Config::allowUnder1KUsers());
    USERS->allowRootUser(Config::allowRootUser());
    USERS->excludeUsers(Config::excludedUserList());
    USERS->updateList(); //now start the probe so things are ready on demand
    }
    ...

    ...
    QString LoginWidget::currentUsername(){
    QString id;
    if( listUsers->count()>0 ){ id = listUsers->currentText(); }
    return id;
    }
    ...

    Правильно ли я полагаю, что из этого можно сделать вывод, что мне нужно добиться, чтобы доменные пользователи показывались командой getent? От чего это зависит?
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: ну вот, допустим, /etc/pam.d/system:
    #
    # $FreeBSD$
    #
    # System-wide defaults
    #

    # auth
    auth sufficient pam_opie.so no_warn no_fake_prompts
    auth requisite pam_opieaccess.so no_warn allow_local
    auth sufficient pam_krb5.so no_warn try_first_pass
    #auth sufficient pam_ssh.so no_warn try_first_pass
    #auth sufficient /usr/local/lib/pam_winbind.so try_first_pass
    auth required pam_unix.so no_warn try_first_pass nullok

    # account
    #account sufficient /usr/local/lib/pam_winbind.so
    account sufficient pam_krb5.so
    account required pam_login_access.so
    account required pam_unix.so

    # session
    #session optional pam_ssh.so want_agent
    session required pam_lastlog.so no_fail
    session required /usr/local/lib/pam_mkhomedir.so

    # password
    password sufficient pam_krb5.so no_warn try_first_pass
    password required pam_unix.so no_warn try_first_pass

    Я подозреваю, что PCDM смотрит в какой то другой файлик, но включение krb5 в других pam, предположительно нужной направленности(other и xdm) ничего не дало...
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    CityCat4: а у меня вообще очень странная ситуация:
    nsswitch настроен на winbind,
    system в pam.d(разделы auth, account и password) - на krb5.
    Когда в pam пытаюсь прописать winbind по инструкциям, логинится перестаёт.

    А с krb5, после успешного логина доменным пользователем в консоли, в /var/log/messages нахожу "su: pam_winbind(su): user 'domain_username' granted access".

    и вот как оно всё работает....

    З.Ы. unix атрибуты включены и хранятся в AD, если это имеет значение.
    З.З.Ы. mkhomedir включил, но, учитывая, что пока я это исключительно для себя настраиваю, можно и ручками...
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    res2001: id username для доменного пользователя работает) Как я и писал, даже в терминале можно залогиниться и пользоваться нужными правами. Хочется изначально заходить под ним.
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    res2001: ну разумеется! вот только все маны предлагают изменить записи passwd и group на "files winbind". Всё больше подозреваю, что чего то тут не хватает...
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    На это решение натыкался. не нравится использование сторонних утилит, типа sssd. Наверняка, можно решить задачу при помощи кербероса и самбы.
  • Как залогиниться в TrueOS пользователем из AD?

    LordNicky
    @LordNicky Автор вопроса
    pam_krb5. С pam_winbind, например su username с доменным пользователем не работает(( А с pam_krb5 всё ок, раскомментирован в секциях auth, account и password.