Если вы создали учетную запись пользователя с 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
есть w
s -
, то пользователи, кроме того, 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
администратора.