Скрипт для проверки HOME DIR

это не работало в ubuntu (15.04 и 14.04). он работал на Fedora. и на Fedora. нужен ли вам --make-private или нет, вы также можете проверить

cat / proc / self / mountinfo | grep shared

если общий, это означает, что какое-то другое пространство имен все еще может видеть, что монтируется. Тогда это проблема, связанная с systemd. Вы можете использовать --make-private, чтобы заставить его работать

0
05.07.2018, 20:42
3 ответа
read -p "Enter a username: " username
if getent passwd "$username" > /dev/null
then
  printf "Their home directory is: %s\n" "$(getent passwd "$username" | cut -d: -f6)"
else
  printf "User not found!\n" >&2
fi
2
28.01.2020, 02:18

getent passwd <USERNAME>— хороший способ чтения пользовательской базы данных. Он печатает запись из пользовательской базы данных для данного пользователя, если пользователь существует, или завершает работу не -нулем, если пользователь не существует.

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

Домашний каталог — это 6-е поле записи пароля. Его можно извлечь с помощью стандартных инструментов обработки текста, например. awkили cut.

if passwd="$(getent passwd "$user")"; then
    awk -F: '{print $6}' <<<"$passwd"
else
    echo "No such user $user" >&2
fi
0
28.01.2020, 02:18
#!/bin/sh

username=$1

if ! getent passwd "$username" >/dev/null 2>&1; then
    printf 'User %s does not exist\n' "$username"
    exit 1
fi

homedir=$( getent passwd "$username" | cut -d: -f6 )

if [ -n "$homedir" ]; then
    if [ -d "$homedir" ]; then
        printf 'User %s has a valid (existing) home directory: %s\n' "$username" "$homedir"
    else
        printf 'User %s lacks a valid (existing) home directory: %s\n' "$username" "$homedir"
    fi
else
    printf 'User %s has no home directory\n' "$username"
fi

Скрипт берет имя пользователя из командной строки:

$./script.sh kk
User kk has a valid (existing) home directory: /home/kk

$./script.sh nobody
User nobody lacks a valid (existing) home directory: /nonexistent

$./script.sh aoae
User aoae does not exist
2
28.01.2020, 02:18

Теги

Похожие вопросы