Включить ecryptfs для всех новых пользователей, даже тех, кто аутентифицируется через kerberos и ldap

Я поддерживаю IRAF в Debian (и Ubuntu). К вашему третьему вопросу: лучший способ помочь здесь - проверить пакет и сообщить нам о любых проблемах, которые вы испытываете. Используйте страницу ошибки Launchpad или проблемы github для нее или сообщите об этом в систему ошибок Debian. Патчи для улучшений также приветствуются.

Нам также нужен кто-то, кто поддерживает backports для Ubuntu 16.04 и Debian Stretch.

5
задан 10 March 2012 в 21:53

1 ответ

Мне удалось заставить его работать с помощью pam_exec:

Создайте скрипт для установки ecryptfs для всех новых пользователей в /etc/security/ecryptfs:
#!/bin/bash

home=`eval echo ~$PAM_USER`
ecryptfs=/home/.ecryptfs/$PAM_USER/.ecryptfs

read password

if [ -d $ecryptfs ];  then
    # ecryptfs is set
    echo "Ecryptfs is already configured"
    exit 0
elif [ `id -u` == 0 ]; then
    # Setup ecryptfs and make home
    umask 077
    mkdir -p $home
    group=`id -gn $PAM_USER`
    chown $PAM_USER:$group $home

    ecryptfs-setup-private -u $PAM_USER -l "$password" -b --nopwcheck
    exit 0
else
    # NOT ROOT
    echo "Cannot login with 'su' for the first time"
    exit 1
fi
Убедитесь, что скрипт выполним:
sudo chmod a+rx /etc/security/ecryptfs
Добавить запись, чтобы выполнить ее с помощью pam_exec в auth:
sudo vim /etc/pam.d/common_auth
Добавить следующие строки:
auth    required        pam_exec.so     expose_authtok /etc/security/ecryptfs
auth    optional        pam_ecryptfs.so unwrap
pam_exec установлен на требуемый, поскольку он не будет устанавливать ecryptfs, если скрипт не запускается с правами root. Это тот случай, если su используется от пользователя без полномочий root. Поэтому, если ecryptfs не настроен и su используется (то есть, когда пользователь впервые пытается войти в систему с помощью su), тогда его получит отказ. Таким образом, мы гарантируем, что пользователь не может войти в систему без установки ecryptfs. Создайте еще один скрипт, чтобы заполнить домашний каталог вместо pam_mkhomedir
sudo vim /etc/security/mkhome
. Этот скрипт скопирует все в / etc / skel, если файл .donotremove не существует.
#!/bin/bash

cd ~

if [ ! -f .donotremove ] ; then
    echo Copying /etc/skel
    cp -ra /etc/skel/* ~
    touch .donotremove
fi
Также убедитесь, что этот файл является исполняемым:
sudo chmod a+rx /etc/security/mkhome
Добавить еще одну запись для выполнения этого скрипта в сеансе
sudo vim /etc/pam.d/common_session
Добавьте следующие строки:
session optional        pam_ecryptfs.so unwrap
session optional        pam_exec.so     seteuid /etc/security/mkhome

Теперь пользователи LDAP могут войти в систему и иметь ecryptfs зашифрованный домашний каталог.

Обновить

Вместо того, чтобы напрямую редактировать файлы в /etc/pam.d (что обычно не рекомендуется), лучше применить настройки в качестве профиля PAMConfig.

Просто вставьте этот код в новый файл /usr/share/pam-configs/ecryptfs-nonlocal:

Name: Enable EcryptFS for users from remote directories such as LDAP.
Default: no
Priority: 0
Conflicts: ecryptfs-utils
Auth-Type: Additional
Auth-Final:
    required    pam_exec.so expose_authtok /etc/security/ecryptfs
    optional    pam_ecryptfs.so unwrap
Session-Type: Additional
Session-Final:
    optional    pam_ecryptfs.so unwrap
    optional    pam_exec.so seteuid /etc/security/mkhome
Password-Type: Additional
Password-Final:
    optional    pam_ecryptfs.so

И затем запустите pam-auth-update:

Проверьте Enable EcryptFS for users from remote directories such as LDAP. и убедитесь, что eCryptfs Key/Mount Management не установлен. Оставьте все другие варианты в соответствии с вашими предпочтениями.

Это позволит убедиться, что соответствующие конфиги в /etc/pam.d применены и что они остаются там.

6
ответ дан 25 May 2018 в 13:36

Другие вопросы по тегам:

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