Debian – useradd: не удаётся открыть /etc/passwd

Вопрос или проблема

Я не могу добавить новых пользователей в свою систему debian. Это работало пару дней назад, но не знаю, что произошло, что это больше не работает.

root@debian:~# rm /etc/.pwd.lock

root@debian:~# useradd -G users --create-home -p somepw someuser
useradd: невозможно открыть /etc/passwd

root@debian:~# ls -al /etc/ | grep passwd
-rw-r--r--  1 root  root    1472 Янв 18 01:44 passwd
-rw-r--r--  1 root  root    1470 Янв 18 01:34 passwd-

root@debian:~# ls -al /etc/ | grep group
-rw-r--r--  1 root  root     711 Янв 18 01:34 group
-rw-r--r--  1 root  root     698 Янв 18 01:22 group-

root@:~# ls -al /etc/ | grep shadow
-rw-r-----  1 root  shadow   594 Янв 18 01:34 gshadow
-rw-r-----  1 root  shadow   584 Янв 18 01:22 gshadow-
-rw-r-----  1 root  shadow  1032 Янв 18 01:34 shadow
-rw-r-----  1 root  shadow   969 Янв 18 01:34 shadow-

root@debian:~# lsattr /etc/passwd
-----a--------e------- /etc/passwd

root@debian:~# lsattr /etc/shadow
-----a--------e------- /etc/shadow

root@debian:~# ls -alt /etc/.*lock
-rw------- 1 root root 0 Янв 19 10:23 /etc/.pwd.lock

Единственное, что я могу вспомнить, это то, что я добавил bash в качестве оболочки по умолчанию для пользователя (от этого пользовательского аккаунта):

type -a bash
chsh -s /bin/bash 

Я прочитал другие вопросы и статьи, но ни одно из решений не сработало для меня. Как мне далее отладить это?

Заранее спасибо!

Хорошо, это исправило проблему:

root@debian:~# chattr -a /etc/passwd
root@debian:~# chattr -a /etc/shadow

Мне также нужно было сделать это с файлом shadow.

Ответ или решение

Решение проблемы: “useradd: cannot open /etc/passwd” в Debian

Если вы столкнулись с ошибкой useradd: cannot open /etc/passwd в вашей системе Debian, это может вызвать значительные затруднения при добавлении новых пользователей. Давайте разберемся в деталях проблемы и предложим эффективные шаги для её решения.

Анализ проблемы

Ваша ошибка указывает на то, что команда useradd не может открыть файл /etc/passwd, который необходим для управления учетными записями пользователей в Linux. Вероятная причина этого заключается в том, что файлы /etc/passwd и /etc/shadow находятся в состоянии, которое не позволяет их изменять.

Состояние файлов

В вашем выводе команд видно следующее:

-rw-r--r--  1 root  root    1472 Jan 18 01:44 passwd
-rw-r--r--  1 root  root    1470 Jan 18 01:34 passwd-

Файл passwd имеет разрешение на чтение и запись только для пользователя root. Это стандартное состояние, но если к файлу были добавлены дополнительные атрибуты, это может вызвать проблемы. Вы также можете заметить, что:

lsattr /etc/passwd
-----a--------e------- /etc/passwd

Атрибут a указывает на то, что файл может быть добавлен, но не перезаписан. Это может стать препятствием для таких операций, как добавление новых пользователей.

Решения

Для устранения данной проблемы вам потребуется изменить атрибуты файлов:

  1. Сброс атрибута "append-only":
    Выполните следующую команду, чтобы убрать атрибут a для файлов /etc/passwd и /etc/shadow:

    chattr -a /etc/passwd
    chattr -a /etc/shadow
  2. Проверка блокировочного файла:
    Убедитесь, что блокировочный файл /etc/.pwd.lock не мешает доступу к файлу /etc/passwd. Если блокировка не нужна, вы можете удалить этот файл с помощью:

    rm /etc/.pwd.lock

Дополнительные советы по отладке

Если проблема возникает повторно, предпримите следующие шаги:

  • Проверьте права доступа к файлам:
    Убедитесь, что файлы /etc/passwd и /etc/shadow имеют правильные права доступа, а именно:

    chmod 644 /etc/passwd
    chmod 640 /etc/shadow
  • Логи системы:
    Изучите системные журналы, такие как /var/log/auth.log и /var/log/syslog, на предмет дополнительных ошибок или предупреждений, которые могут быть связаны с изменениями в учетных записях пользователей.

  • Проверка системных обновлений:
    Убедитесь, что ваша система обновлена до последней версии. Иногда проблема может быть связана с изменениями в библиотеках или системных утилитах.

Заключение

Соблюдение упомянутых выше шагов должно помочь вам устранить ошибку useradd: cannot open /etc/passwd и восстановить возможность добавления новых пользователей в вашу систему Debian. Регулярное мониторинг состояния важных файлов и их атрибутов поможет заранее предупреждать возможные проблемы.

Оцените материал
Добавить комментарий

Капча загружается...