Невозможно войти в новую учетную запись пользователя

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

После входа в мою ранее существующую учетную запись я получаю:

"System Program Problem Detected"

Details:

Executable path /usr/bin/Xorg

Package: xserver-xorg-core 2:1.11.4-0ubuntu10.1

Details: Crash
... (tons more, but no way to copy paste or save)

Когда я пытаюсь су

su -l penner

Я получил:

No directory, logging in with HOME=/

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

3 ответа

Решение

Если вы создали учетную запись пользователя с useradd, вы должны настроить все для этого вручную. Вот почему при создании учетных записей пользователей из командной строки рекомендуется использовать adduser вместо этого в Ubuntu (и Debian, и других системах на основе Debian). Вы можете просто удалить пользователя с userdel или же deluser и воссоздать его с adduser, Иначе...

Исправление местоположения домашнего каталога

Если вы хотите сохранить учетную запись пользователя и устранить проблему, то вам нужно взглянуть на:

  • имя домашнего каталога, для которого фактически настроена учетная запись пользователя
  • имя каталога, который вы на самом деле создали

Это должно быть точно так же. Сообщение об ошибке, которое вы получаете с su -l penner говорит вам, что они не одинаковы.

Чтобы проверить домашний каталог, для которого фактически настроена учетная запись пользователя, выполните эту команду (см. man 5 passwd а также man grep для дополнительной информации):

grep penner /etc/passwd

Вы должны увидеть такую ​​строку:

penner:x:1000:1000:Eliah Kagan,,,:/home/penner:/bin/bash

То есть шестой : поле (после пятого :) содержит домашний каталог. Если это не /home/penner, так должно быть. Если каталог, который вы создали для пользователя, не является /home/penner должно быть тоже. Если два каталога одинаковы, но ни один из них не является /home/penner, тогда это может теоретически сработать, но вы должны сделать их обоих /home/penner потому что много программного обеспечения предполагает, что все root домашние каталоги пользователей /home/username,

Ты можешь измениться penner домашний каталог к /home/penner запустив эту команду:

sudo usermod -d /home/penner penner
  • Увидеть man usermod для дополнительной информации.

Обеспечение того, что это каталог, и что у пользователя есть доступ

Если (или один раз) имена оба /home/penner Вы также должны убедиться, что пользователь имеет доступ к своему домашнему каталогу. Бежать:

ls -ld /home/penner

Вы должны увидеть что-то похожее на это (хотя дата и время будут другими):

drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner

Если вместо drwxr-xr-x, у вас есть то, что начинается с - скорее, чем d Затем вы создали файл, а не каталог. Удалите файл и создайте там каталог.

Если вместо первого penner у вас есть что-то еще, тогда пользователь не владеет своим домашним каталогом, поэтому сделайте его своим:

sudo chown penner /home/penner
  • Увидеть man chown для дополнительной информации.

Если вместо drwxr-xr-x в следующих трех символах после d, тогда у пользователя нет полного доступа там. Исправьте это следующим образом:

sudo chmod u+rwx /home/penner
  • Увидеть man chmod для дополнительной информации.

(penner способен выполнить эту команду, если они владеют своим домашним каталогом, поэтому, если вы предпочитаете, вы можете запустить это как: sudo -u penner u+rwx /home/penner)

Обеспечение других пользователей не имеют общего доступа к записи

Если вместо drwxr-xr-x, имеются w с вместо - с последними шестью буквами, то пользователи кроме penner может иметь доступ к записи penner домашний каталог. Это опасно (если вы действительно не знаете, что делаете, не хотите этого и не настраиваетесь так, чтобы это не было проблемой). Починить это:

sudo chmod -R go-w /home/penner

Другие значения по умолчанию

Есть некоторые другие изменения, которые вы можете сделать. По умолчанию в Ubuntu (то есть, если вы создаете учетную запись пользователя с adduser или с помощью графического инструмента, который вы не сделали):

  1. Домашние каталоги имеют права на чтение и запись для всех, а не только для пользователя, которому они принадлежат. Пользователи могут изменить это либо для всего домашнего каталога, либо для любых файлов и подкаталогов в нем. Но если вы хотите этот по умолчанию, и у вас нет второго и третьего r а также x в drwxr-xr-x, бежать:

    sudo chmod 755 /home/penner
    

    (penner способен выполнить эту команду, если они владеют своим домашним каталогом, поэтому, если вы предпочитаете, вы можете запустить это как: sudo -u penner chmod 755 /home/penner)

  2. Каждый пользователь имеет свою собственную группу с тем же именем, что и пользователь, и это основная группа пользователя. Их домашний каталог принадлежит этой группе. В этом смысл второго penner в drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner, Можно порвать с этим значением по умолчанию, если вы знаете, что делаете. Но если вы не собираетесь делать что-то по-другому, вы должны убедиться, penner настроен таким образом, поскольку некоторые возможные первичные идентификационные данные группы для пользователя или владельцев группы в домашнем каталоге пользователя могут привести к проблемам с безопасностью.

    Бежать groups penner, (Увидеть man groups для получения дополнительной информации.) Вы должны увидеть что-то вроде этого:

    penner : penner adm dialout cdrom plugdev lpadmin sambashare
    

    Не волнуйтесь, если это не совсем так. Я скоро доберусь до этого. Вместо этого посмотрите на первое слово после :, Это имя основной группы пользователей. Предполагая, что вы хотите, чтобы это было penner, убедитесь, что это так. Если это не так, измените его:

    sudo usermod -g penner penner
    

    Если вы получаете сообщение о том, что группа penner не существует, тогда вам придется создать его с помощью этой команды (а затем снова запустить приведенную выше команду):

    sudo addgroup penner
    
    • Увидеть man addgroup для дополнительной информации. (Если вы предпочитаете, вы можете использовать groupadd Команда для создания групп.)
  3. Когда ты побежал groups penner Вы, возможно, получили список групп значительно короче, чем мой penner : penner adm dialout cdrom plugdev lpadmin sambashare, Для пользователей настольных компьютеров adm, dialout, cdrom, plugdev, lpadmin, а также sambashare предоставить возможности, которые пользователи обычно должны иметь. Поэтому, если у вас нет причин поступать иначе, penner должен быть в этих группах. Однако это не основные группы, поэтому они установлены по-разному. если бы penner не входит ни в одну из этих групп, и вы хотите penner чтобы быть во всех них, запустите эту команду:

    sudo usermod -a -G adm,dialout,plugdev,lpadmin,sambashare penner
    

    Если вам интересно, вот что означают все эти группы:

    (Источник: Привилегии, в вики документации по Ubuntu.)

Создание пользователя администратором

Если не хочешь penner чтобы быть администратором, вам, вероятно, больше ничего не нужно делать. Вы можете проверить, если penner является администратором с groups penner, Если ни admin ни sudo в списке, то penner не является администратором

Если ты хочешь penner чтобы быть администратором, добавьте penner какой из этих групп существует. (Вы можете также добавить penner к обоим, если они оба существуют.) Вы можете сделать это, выполнив эти две команды отдельно - если одна из них удастся, вы сделали penner администратор:

sudo usermod -a -G admin penner
sudo usermod -a -G sudo penner
  • Причина существования двух групп заключается в том, что до выпуска Ubuntu 12.04 LTS администраторы находились в admin группа. Начиная с Ubuntu 12.04 LTS, администраторы находятся в sudo группа. Но если ваша система 12.04 LTS обновлена ​​по сравнению с предыдущим выпуском (и это должно применяться к более поздним выпускам Ubuntu, таким как 12.10, когда они выйдут, которые обновлены с Ubuntu 11.10 или более ранней), то для обратной совместимости администраторы являются членами обоих sudo а также admin, Как правило, если одна из этих групп не предоставляет административных способностей, ее просто не существует, поэтому выполните обе вышеуказанные команды (отдельно, а не как sudo usermod -a -G admin,sudo penner) как правило, безопасный и эффективный способ penner администратор.

В основном это происходит, когда вы создаете пользователя без создания домашнего каталога для пользователя. Это может быть решено с помощью этой команды при создании пользователя

useradd -m the_username

Флаг -m - это то, что создает домашний каталог для пользователя. После создания пользователя проверьте, существует ли домашний каталог для этого пользователя, выполнив

ls /home

Если вы видите там имя пользователя, то последнее, что нужно сделать, это назначить пароль этому пользователю.

passwd the_username

Теперь вы можете войти с этим именем пользователя и паролем

Ctrl+ Alt+ F1 и войти там и запустить

sudo chown -R $USER:$USER $HOME

затем нажмите Ctrl+ Alt+ F7 и попробуйте войти

Это будет работать

Другие вопросы по тегам