пару лет назад уходил с virtualbox, поскольку надоели проблемы с kernelpanic-ами. В итоге пользуюсь cbsd с jail и bhyve под свои задачи. полет нормальный)
Спасибо, попробую. Тогда еще вопрос - позволяет ли SS добавлять диски в массив?
Я имею ввиду после того, как создана файловая система и всё работает. Допустим из parity на 3 hdd я хочу получить parity на 4 hdd. Могу я просто добавить диск или нужно сразу проектировать то, что нужно?
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. отказываются работать кнопки отключения и перезагрузки...
но это, в сущности фигня. хотя с таким количеством фигни всё больше склоняюсь психануть и запилить себе фряху нормальную...
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-а. Ничего не дало...
У вас в какой секции указанные выше строки?
CityCat4: День добрый! Есть свежие новости с фронта... ^_^
Залогиниться из kdm всё же получилось, пришлось установить слегка отличные от стандартных настройки для /usr/local/etc/pam.d/kde:
#
# $FreeBSD$
#
# PAM configuration for the "kde" service
#
И теперь проблема сводится к каноничному "как пропатчить kde под фрёй?"...
Логин успешно проходит, после чего я остаюсь наедине с консолью xterm-а(с одной единственной, что странно. когда меня в чистые иксы выкидывало - мне 3 консоли выдавали).
Если ввести в ней startkde - кеды радостно стартуют и работают. Автоматически, куда только ни ковырял - наотрез отказываются... т.е. ~/.xsession и ~/.xinitrc пересмотрены со всех сторон и под всеми возможными соусами...
Идеи?
CityCat4: И снова добрый вечер!
В общем, установил я с горем пополам kdm. Ибо xdm у меня отказался запускаться напрочь - показывал мне терминал в 0-й консоли, а на 8-ю переключаться отказывался напрочь.
Та же ботва. причем, учитывая, что kdm также показывает список локальных юзеров, он, таки, тоже берет его из getent и, сдаётся мне, тоже фильтрует. И что в этой ситуации дальше ковырять?
З.Ы. напоминаю, что с консоли нужным пользователем прекрасно захожу и запускаю иксы... можно, конечно запилить скрипт, который после логина с консоли будет пускать иксы и оболочку, а всяческие DM-ы отключить нафиг, но как то это.......
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?
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, кстати, раскомментирован сейчас и всё равно(((
так что тогда получается - либо переписывать механизм аутентификации данного DM, либо пытаться поставить другой? Не подскажете, с какой стороны на фре к этому подходить?
CityCat4: я вот там выше писал про интересный факт, но не обратил внимание, что в итоге запостилось... вот так правильно:
интересный факт, если ввести просто "getent passwd", то выдаются только локальные юзеры, но если уточнить "getent passwd domain_username", то инфа по пользователю выдаётся актуальная...
ДА! Я нашел её!!! Исходя их строчки "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(); }
}
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;
}
CityCat4: Можно, я это первым делом радостно и сделал, думая, что вот как только я смогу ввести имя пользователя, тут то... Есть подозрение, что он с этим списком сверяется при логине и доколе getent не даст ему доменных пользователей - фиг пропустит((
...
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
}
...
Правильно ли я полагаю, что из этого можно сделать вывод, что мне нужно добиться, чтобы доменные пользователи показывались командой getent? От чего это зависит?
Я подозреваю, что PCDM смотрит в какой то другой файлик, но включение krb5 в других pam, предположительно нужной направленности(other и xdm) ничего не дало...
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 включил, но, учитывая, что пока я это исключительно для себя настраиваю, можно и ручками...
res2001: id username для доменного пользователя работает) Как я и писал, даже в терминале можно залогиниться и пользоваться нужными правами. Хочется изначально заходить под ним.
res2001: ну разумеется! вот только все маны предлагают изменить записи passwd и group на "files winbind". Всё больше подозреваю, что чего то тут не хватает...
pam_krb5. С pam_winbind, например su username с доменным пользователем не работает(( А с pam_krb5 всё ок, раскомментирован в секциях auth, account и password.