Я создал несколько пользователей с:
$ useradd john
и я забыл указать параметр -m
для создания домашнего каталога и для копирования файлов скелета каждому пользователю. теперь я хочу сделать это, и я не хочу воссоздавать всех пользователей (должен быть более простой способ). Итак, есть ли способ создать пользовательские каталоги и скопировать файлы скелета?
Я думал о создании каталогов, разбив их на части для соответствующего пользователя, копируя все файлы скелета и разбивая их на соответствующих пользователей. но если есть такая команда useradd -m
, которая не создает пользователя снова, а создает каталоги, было бы лучше.
Ответы:
Это может звучать глупо, но если пользователи на самом деле ничего не делают, вы можете сделать следующее:
cat /etc/passwd | cut -f 1 -d : >/tmp/users.list
Затем отредактируйте /tmp/users.list, чтобы он содержал только тех пользователей, которых вы хотите. Затем сделайте:
Тем не менее, многие дистрибутивы на основе Redhat создадут вам новый домашний каталог при первом входе в систему, при условии, что он указан в / etc / passwd, где каталог должен находиться.
Чтобы проверить это, выполните «su -» и посмотрите, правильно ли он работает. Если этого не произойдет, я думаю, что приведенный выше скрипт будет работать довольно хорошо.
источник
for i in $(awk -F: '{print $1 }' /etc/passwd)
Также вы можете использовать
mkhomedir_helper
источник
sudo /sbin/mkhomedir_helper dka
?/home
каталог принадлежитroot
пользователю, и поэтому я предположил бы , что один должен быть корнем , чтобы создать его подкаталог.Вам нужно будет создать каталог пользователей вручную. Это требует трех шагов:
/etc/passwd
, обычно уже будет запись / home / login.И, наконец, установите правильные разрешения:
mkdir /home/YOU
cd /home/YOU
cp -r /etc/skel/. .
chown -R YOU.YOURGROUP .
chmod -R go=u,go-w .
chmod go= .
Кстати, я всегда пропускаю
-m
опцию для useradd тоже. По крайней мере, в системах на основе Debian должна бытьadduser
команда, которую я рекомендую использовать вместо useradd. Если вы пропустили-m
опцию, возможно, стоит подуматьdeluser
и затем заново создать пользователя с соответствующими опциями.Редактировать: Добавлено
-r
для копирования также каталогов.источник
public_html
необходимоx
установить хотя бы бит, я бы порекомендовалchmod 0711
для каждого домаpublic_html
и аналогичные каталоги по умолчанию.cp -r /etc/skel/.*
вернитесь обратно в / etc / и скопируйте все данные отсюда (/etc/skel/.* соответствует / etc / skel / .. Я ожидаю). Решение от superuser.com/a/61619/22153, кажется, работает: cp -r / etc / skel / home / user (/ home / user не должно существовать до запуска команды)*
с помощью.
(точки). Так..
совпало. Я прав? Многие оболочки отключают это по умолчанию из-за такого поведения. Какую оболочку вы используете?Это должно сделать трюк, я верю
источник
usermod: no changes
. и каталог не создан. это не работает ни с-m
опцией.Вы можете использовать что-то вроде pam_mkhomedir, чтобы в будущем это не стало проблемой для всех пользователей. pam_mkhomedir - это модуль PAM, который автоматически создает домашний каталог пользователя при входе в систему, если он не существует, и заполняет его файлами из / etc / skel (или любым другим указанным вами каталогом skel).
Это также хорошо масштабируемый подход, потому что он продолжит решать эту проблему, если вы когда-нибудь переключите свой репозиторий пользователей на службу каталогов, такую как LDAP, в будущем.
источник
В моем случае домашний том был поврежден, и я решил просто перестроить его с нуля, так как не так много данных, но я хочу сохранить информацию для входа пользователей, поэтому я заново создал домашние каталоги с помощью этого сценария:
источник
Если вы редактируете,
/etc/login.defs
чтобы содержатьтогда домашние каталоги будут автоматически созданы для любых будущих пользователей, если вы не скажете системе не делать этого.
Другой вариант - использовать PAM для входа в систему и использовать модуль pam_mkhomedir для автоматического создания homedir при первом входе в систему.
источник
Мой первый шаг после этого
useradd
-su - <user>
.Создает домашние каталоги, копирует скелеты и т. Д. - по крайней мере на коробке CentOS 4, на которой я делаю это чаще всего.
источник
Авторизуйтесь с пользователем john и напишите из оболочки:
Это оно! Не используйте sudo или su, вам не нужен root-доступ для создания каталогов. Из учетной записи root вы можете использовать:
Таким образом, вы будете выполнять команду как john, что может быть полезно, если вы допустили ошибку с более чем одним пользователем.
источник
Это именно то, что
mkhomedir_helper $USERNAME
делает команда.источник
Вы можете просто отредактировать / etc / passwd. Второе за последним поле - это домашний каталог пользователя.
источник
или же
и читать
;)
источник