LINUX.ORG.RU

MC дважды отображает пользователей и группы.

 


0

1

Здравствуйте, коллеги! Наблюдаю странную картину: в MC при Ctrl+X, O (окно «команда chown») в столбцах «Имя пользователя» и «Имя группы» эти самые пользователи и группы отображаются дважды. Первый раз такое вижу.

Свежая инсталляция Fedora 27. И KDE, и Cinnamon.

Установленные пакеты
Имя : mc
Эпоха : 1
Версия : 4.8.19
Выпуск : 7.fc27
Архитектура : x86_64
Размер : 6.7 M
Источник : mc-4.8.19-7.fc27.src.rpm
Репозиторий : @System
Из репозитор : anaconda

Пробовал ставить другую версию от сюда: http://download.opensuse.org/repositories/home:/andreasmohr:/mc/Fedora_27/

Группы и пользователи тоже дважды отображаются.

Не подскажет ли кто, где собака порылась?



Последнее исправление: osfar (всего исправлений: 1)

У меня в 4.8.20, собранном в gentoo с slang, то же самое.
Так что проблема не в окружении и не в репозитории.
Пиши им в багтрекер.

ABW ★★★★★
()
Ответ на: комментарий от ABW

А у меня в самособранном из мастера такого нет и никогда не было.
Так что проблема в окружении.

    213     /* get and put user names in the listbox */
    214     setpwent ();
    215     while ((l_pass = getpwent ()) != NULL)
    216         listbox_add_item (l_user, LISTBOX_APPEND_SORTED, 0, l_pass->pw_name, NULL, FALSE);
    217     endpwent ();


    224     /* get and put group names in the listbox */
    225     setgrent ();
    226     while ((l_grp = getgrent ()) != NULL)
    227         listbox_add_item (l_group, LISTBOX_APPEND_SORTED, 0, l_grp->gr_name, NULL, FALSE);
    228     endgrent ();

MC лишь, естественно, вызывает API. В чём он виноват?

akk ★★★★★
()
Ответ на: комментарий от akk

По мотивам кода mc набросал программку, выводящую список пользователей и групп.

#include <stdlib.h>
#include <stdio.h>
#include <pwd.h>
#include <grp.h>

int
main (int argc, char *argv[])
{
    struct passwd *l_usr;
    struct group *l_grp;

    /* print user list */
    fprintf (stdout, "%s\n", "Users:");
    setpwent ();
    while ((l_usr = getpwent ()) != NULL)
        fprintf (stdout, "\t%s\n", l_usr->pw_name);
    endpwent ();

    /* print group list */
    fprintf (stdout, "\n%s\n", "Groups:");
    setgrent ();
    while ((l_grp = getgrent ()) != NULL)
        fprintf (stdout, "\t%s\n", l_grp->gr_name);
    endgrent ();

    return EXIT_SUCCESS;
}

Если в её выводе будет всё двоиться, то к mc претензий быть не может.

akk ★★★★★
()

обычно такое бывает, когда в /etc/nsswitch.conf прописаны несколько источников для passwd, например db и files, и в них одинаковые данные. для проверки можешь посмотреть выхлоп getent passwd и getent group - там тоже двоиться должно

если сильно раздражает - оставь только один источник в конфиге или сделай rm -f /var/cache/nss/*.db (ну или где там в федорке кэш nss хранится)

ananas ★★★★★
()
Ответ на: комментарий от ananas

getent passwd и getent group - двоится.

nsswitch.conf было:

passwd: sss files systemd
shadow: files sss
group: sss files systemd

ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files sss

netgroup: nisplus sss

Стало:

passwd: files systemd
shadow: files
group: files systemd

ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files

netgroup: nisplus

Не двоится. ))

Я не огребу подводных камней с такой конфигой?

osfar
() автор топика
Ответ на: комментарий от ananas

sssd не задействован.

Благодарю за точное направление, ananas!

Всем спасибо за участие!

Вопрос закрыт.

osfar
() автор топика
Ответ на: комментарий от anonymous

Согласен.

dnf remove sssd*
...
Выполнено!

Мой вопрос решается без правки nsswitch.conf.

osfar
() автор топика
Ответ на: комментарий от osfar

Ты уже огреб если у тебя коряво ресолв настроен

mos ★★☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.