1

Тема: Bash: как создать домашние папки существующих пользователей, без прогр

Есть система, в ней есть пользователи с присвоенными домашними папками - как создать отсутствующие домашние папки без скриптов и прочей лабуды ?
(создание домашней папки при входе - не интересует)

Я конечно далек от мысли... (с)

2

Re: Bash: как создать домашние папки существующих пользователей, без прогр

smaharbA
Коллега, конкретизируйте задачу. Вы очень поверхностно описали ее.

1. Что значит "присвоенные домашние папки"? Те ли самые каталоги, что можно узнать из поля 6 файла /etc/passwd?
2. Что значит "создание домашней папки"? Вы имеете в виду создать домашний каталог в /home? Например, для пользователя ABC нет домашнего каталога и надо его создать /home/ABC?

usermod --help
man usermod
( 2 * b ) || ! ( 2 * b )

3 (изменено: smaharbA, 2012-09-07 07:04:18)

Re: Bash: как создать домашние папки существующих пользователей, без прогр

именно так - вопрос в том - как создать

усермод сделает только с копированием из предидущего, а ведь нужно создание и скилет - конечно можно его скопировать, но думается должен быть штатный инструмент типа как pam_mkhomedir но для создания без входа

Я конечно далек от мысли... (с)

4

Re: Bash: как создать домашние папки существующих пользователей, без прогр

По типу, но одной командой

getent passwd | awk -F: '/:[1-5][0-9][0-9][0-9]:/ { print $1,$3,$4,$6 '} |\
while read user uid gid home; do install -o $uid -g $gid -m 711 -d $home; install -o $uid -g $gid -m 644 /etc/skel/.* $home; done
Я конечно далек от мысли... (с)

5

Re: Bash: как создать домашние папки существующих пользователей, без прогр

smaharbA пишет:

усермод сделает только с копированием из предидущего

Не уверен. Хотя стоило бы проверить. У Вас машина под рукой - сделайте фейковую учетку без домашнего каталога, а потом примените usermod -d каталог. Еще есть команда useradd -D.

smaharbA пишет:

именно так - вопрос в том - как создать

Попробуйте, например, так (сейчас она выводит сами команды, чтобы сработала команда usermod  - удалите echo):

awk -F: ' ! $6 { print $1 }' /etc/passwd | xargs -I% echo usermod -d /home/% %
smaharbA пишет:

install

Не помню такой команды для управления пользователями.

( 2 * b ) || ! ( 2 * b )

6

Re: Bash: как создать домашние папки существующих пользователей, без прогр

usermod не создаст каталог

Я конечно далек от мысли... (с)

7

Re: Bash: как создать домашние папки существующих пользователей, без прогр

Конечно можно проделать финт типа

getent passwd |\
awk -F: '/:[1-5][0-9][0-9][0-9]:/ { system(sprintf("[ ! -d %s ] && { su %s -s/bin/sh -c \"cp -r /etc/skel /tmp/%s\"; usermod -d /tmp/%s %s; usermod -m -d %s %s; }", $6, $1, $1, $1, $1, $6, $1)) }'

но неужели не найдется какая нибудь штатная утилита ?

Я конечно далек от мысли... (с)