Пытаясь переключить учетные записи на мою вновь созданную учетную запись, я получаю черный экран, а затем я возвращаюсь к основному экрану входа в систему после ввода правильного пароля.
После входа в мою ранее существующую учетную запись я получаю:
"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=/
Я вручную создал домашний каталог, и эта ошибка исчезла, но все равно не повезло с логином. Кажется, что-то пошло не так с созданием пользователя? Как я могу это исправить?
useradd
switch-user
Пеннер
источник
источник
Ответы:
Если вы создали учетную запись пользователя с
useradd
, вы должны настроить все для нее вручную. Вот почему при создании учетных записей пользователей из командной строки рекомендуется использоватьadduser
в Ubuntu (и Debian, и других системах на основе Debian). Вы можете просто удалить пользователя с помощьюuserdel
илиdeluser
и заново создать егоadduser
. Иначе...Исправление местоположения домашнего каталога
Если вы хотите сохранить учетную запись пользователя и устранить проблему, то вам нужно взглянуть на:
Это должно быть точно так же. Сообщение об ошибке, которое вы получаете,
su -l penner
говорит вам, что они не совпадают.Чтобы проверить домашний каталог, для которого фактически настроена учетная запись пользователя, выполните эту команду (см.
man 5 passwd
Иman grep
для получения дополнительной информации):Вы должны увидеть такую строку:
То есть шестое
:
поле (после пятого:
) содержит домашний каталог. Если это не так/home/penner
, это должно быть. Если каталог, который вы создали для пользователя, отсутствует/home/penner
, то он тоже должен быть. Если две директории одинаковы, но ни одна из них не совпадает/home/penner
, то это может теоретически сработать, но вы должны сделать их обе/home/penner
, потому что многие программы предполагают, чтоroot
домашние каталоги всех пользователей не являются ./home/username
Вы можете изменить
penner
домашний каталог на с/home/penner
помощью этой команды:man usermod
для получения дополнительной информации.Обеспечение того, что это каталог, и что у пользователя есть доступ
Если (или один раз) имена оба
/home/penner
, вы также должны убедиться, что пользователь имеет доступ к своему домашнему каталогу. Бег:Вы должны увидеть что-то похожее на это (хотя дата и время будут другими):
Если вместо
drwxr-xr-x
, у вас есть то, что начинается с,-
а неd
, то вы создали файл, а не каталог. Удалите файл и создайте там каталог.Если вместо первого у
penner
вас есть что-то еще, то пользователь не владеет своим домашним каталогом, поэтому сделайте так, чтобы он владел им:man chown
для получения дополнительной информации.Если вместо
drwxr-xr-x
следующих трех символов после есть тиреd
, то у пользователя нет полного доступа к нему. Исправьте это следующим образом:man chmod
для получения дополнительной информации.(
penner
Способен работать эту команду , если они имеют свой домашний каталог, так что если вы хотите, вы можете запустить это так:sudo -u penner u+rwx /home/penner
)Обеспечение других пользователей не имеют общего доступа к записи
Если вместо последних в шести буквах вместо s
drwxr-xr-x
естьw
s-
, то пользователи, кроме того,penner
могут иметь доступ на запись вpenner
домашний каталог. Это опасно (если вы действительно не знаете, что делаете, не хотите этого и не настраиваетесь так, чтобы это не было проблемой). Починить это:Другие значения по умолчанию
Есть некоторые другие изменения, которые вы можете сделать. По умолчанию в Ubuntu (то есть, если вы создаете учетную запись пользователя с помощью
adduser
или с помощью графического инструмента, который вы не сделали):Домашние каталоги имеют права на чтение и запись для всех, а не только для пользователя, которому они принадлежат. Пользователи могут изменить это либо для всего домашнего каталога, либо для любых файлов и подкаталогов в нем. Но если вам нужно это значение по умолчанию, а у вас нет второго, третьего
r
иx
другогоdrwxr-xr-x
, выполните:(
penner
Способен работать эту команду , если они имеют свой домашний каталог, так что если вы хотите, вы можете запустить это так:sudo -u penner chmod 755 /home/penner
)Каждый пользователь имеет свою собственную группу с тем же именем, что и пользователь, и это основная группа пользователя. Их домашний каталог принадлежит этой группе. В этом смысл второго
penner
вdrwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner
. Можно порвать с этим значением по умолчанию, если вы знаете, что делаете . Но если вы не намерены делать что-то по-другому, вам следует убедиться, чтоpenner
настроен именно так, поскольку некоторые возможные основные идентификационные данные группы для пользователя или владельцев группы в домашнем каталоге пользователя могут привести к проблемам с безопасностью.Беги
groups penner
. (См.man groups
Для получения дополнительной информации.) Вы должны увидеть что-то вроде этого:Не волнуйтесь, если это не совсем так. Я скоро к этому вернусь. Вместо этого посмотрите на первое слово после
:
. Это имя основной группы пользователя. Предполагая, что вы хотите, чтобы это былоpenner
, убедитесь, что это так. Если это не так, измените его:Если вы получите сообщение об ошибке, в котором говорится, что группа
penner
не существует, вам придется создать ее с помощью этой команды (а затем снова выполнить приведенную выше команду):man addgroup
для получения дополнительной информации. (Если вы предпочитаете, вы можете использоватьgroupadd
команду для создания групп.)Когда вы бежали
groups penner
, вы, возможно, получили список групп, значительно короче моейpenner : penner adm dialout cdrom plugdev lpadmin sambashare
. Для настольных пользователей,adm
,dialout
,cdrom
,plugdev
,lpadmin
, иsambashare
предоставить возможности , которые пользователи настольных обычно должны иметь. Поэтому, если у вас нет причин поступать иначе,penner
следует входить в эти группы. Однако это не основные группы, поэтому они установлены по-разному. Предположим,penner
что нет ни в одной из этих групп, и вы хотитеpenner
быть во всех них, выполните эту команду:Если вам интересно, вот что означают все эти группы:
adm
пользователи могут просматривать большинство файлов системного журнала в/var/log
.dialout
пользователи могут использовать коммутируемые модемы.plugdev
пользователи могут монтировать и использовать внешние устройства хранения.lpadmin
пользователи могут устанавливать и управлять принтерами.sambashare
пользователи могут обмениваться файлами (через Samba ) с другими компьютерами по сети.(Источник: Привилегии , в вики документации по Ubuntu.)
Создание пользователя администратором
Если вы не хотите
penner
быть администратором, вам, вероятно, больше ничего не нужно делать. Вы можете проверить,penner
является ли администратор сgroups penner
. Если ни того,admin
ни другого нетsudo
в списке, тоpenner
не является администратором.Если вы хотите
penner
стать администратором, добавьтеpenner
к любой из этих групп. (Вы можете также добавитьpenner
к обоим, если они оба существуют.) Вы можете сделать это, выполнив эти две команды отдельно - если одна из них удастся, вы сделалиpenner
администратора: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
администратора.источник
sudo chmod u+a /home/penner
выдает ошибку на Ubuntu 16.04 (Xenial). Является лиsudo chmod u+rw /home/penner
правильная замена?useradd
тогда не убрать ? хранение случайного неработающего кодаuseradd
вызывает проблемы в Ubuntu, чего не происходит в других системах. В моей системе 16.04/etc/default/useradd
has (как единственная незакомментированная строка)SHELL=/bin/sh
и useradd (8), кажется, говорят, чтоSHELL
значение там используется, если не указан флаг-s
/--shell
, но в моей системе 16.04 этого не происходит. Я был неправ, поспешно сказать, что Ubuntuuseradd
не сломан. Теперь я не уверен. Возможно, есть хорошая причина для такой разницы между Fedora и Debian (и Ubuntu) ... но я удалил свой комментарий, чтобы не вводить людей в заблуждение.В основном это происходит, когда вы создаете пользователя без создания домашнего каталога для пользователя. Это может быть решено с помощью этой команды при создании пользователя
Флаг -m - это то, что создает домашний каталог для пользователя. После создания пользователя проверьте, существует ли домашний каталог для этого пользователя, выполнив
Если вы видите там имя пользователя, то последнее, что нужно сделать, это назначить пароль этому пользователю.
Теперь вы можете войти с этим именем пользователя и паролем
источник
Ctrl + Alt + F1 и войти там и запустить
sudo chown -R $ USER: $ USER $ HOME
затем нажмите Ctrl + Alt + F7 и попробуйте войти
Это сработает
источник