Если вы создали учетную запись пользователя с 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)
Обеспечение других пользователей не имеют общего доступа к записи
Если вместо последних в шести буквах вместо s drwxr-xr-xесть ws -, то пользователи, кроме того, pennerмогут иметь доступ на запись в pennerдомашний каталог. Это опасно (если вы действительно не знаете, что делаете, не хотите этого и не настраиваетесь так, чтобы это не было проблемой). Починить это:
sudo chmod -R go-w /home/penner
Другие значения по умолчанию
Есть некоторые другие изменения, которые вы можете сделать. По умолчанию в Ubuntu (то есть, если вы создаете учетную запись пользователя с помощью adduserили с помощью графического инструмента, который вы не сделали):
Домашние каталоги имеют права на чтение и запись для всех, а не только для пользователя, которому они принадлежат. Пользователи могут изменить это либо для всего домашнего каталога, либо для любых файлов и подкаталогов в нем. Но если вам нужно это значение по умолчанию, а у вас нет второго, третьего rи xдругого drwxr-xr-x, выполните:
sudo chmod 755 /home/penner
( 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 adm dialout cdrom plugdev lpadmin sambashare
Не волнуйтесь, если это не совсем так. Я скоро к этому вернусь. Вместо этого посмотрите на первое слово после :. Это имя основной группы пользователя. Предполагая, что вы хотите, чтобы это было penner, убедитесь, что это так. Если это не так, измените его:
sudo usermod -g penner penner
Если вы получите сообщение об ошибке, в котором говорится, что группа pennerне существует, вам придется создать ее с помощью этой команды (а затем снова выполнить приведенную выше команду):
sudo addgroup penner
- Смотрите
man addgroupдля получения дополнительной информации. (Если вы предпочитаете, вы можете использовать groupaddкоманду для создания групп.)
Когда вы бежали 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администратора.