Sistem başlangıcında otomatik olarak Privatebir kullanıcının içindeki dizinin şifresini çözmeye çalışıyorum $HOME. Sistem, Xorg'u başlatmak için NoDM kullanan bir Debian GNU/Linux 10'dur (aslında bir Raspbian, ancak bunun bu amaçla farklı olmadığını varsayıyorum) .

DÜZENLEME 1: Şimdi sanal bir makinede Nodm ile temiz bir Debian 11 yüklemeyi denedim ve aşağıda açıklanan sorunla tamamen aynı sorunla karşı karşıyayım.

Nodm, ayrıcalığı olmayan kullanıcının oturumunu otomatik olarak açar ve $HOME/.xsessionbaşlangıç ​​komut dosyasını çalıştırır .

.xsession tarafından çağrılan aşağıdaki komut dosyasına sahibim:

#!/bin/bash -x
# Original by Michael Halcrow, IBM
# Extracted to a stand-alone script by Dustin Kirkland
# Edited on 2021-10-28 by Lucio Crusca

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PD="Private"    
WPF="$HOME/.ecryptfs/wrapped-passphrase"
MPSF="$HOME/.ecryptfs/$PD.sig"

if /sbin/mount.ecryptfs_private ; then
    exit 0
fi

if [ -f "$WPF" -a -f "$MPSF" ]; then
        if [ $(wc -l < "$MPSF") = "1" ]; then
            if printf "%s\0" "$LP" | ecryptfs-unwrap-passphrase "$WPF" - | ecryptfs-add-passphrase -; then
                echo Ok
            else
                echo incorrect LP
                exit 1
            fi
        else
            if printf "%s\0" "$LP" | ecryptfs-insert-wrapped-passphrase-into-keyring "$WPF" - ; then
                echo Ok
            else
                echo incorrect LP
                exit 1
            fi
        fi
    /sbin/mount.ecryptfs_private
else
    echo Setup error
    exit 1
fi
exit 0

'nin soyulmuş bir versiyonudur /usr/bin/ecryptfs-mount-private. Yalnızca aynı komutları yürütür, ancak parolayı etkileşimli olarak istemek yerine LP ortam değişkeninin parolayı içermesini bekler.

Bu komut dosyasını $HOME/el-mount.sh. Sistemim önyüklendiğinde ve NoDM başladığında, komut dosyamı çağıran .xsession'ı yürütür, yeniden yönlendirme stdoutve stderrhata ayıklama için bir günlük dosyasına yönlendirir . Bu şey çalışmıyor, şu sonucu veriyor:

...
+ /sbin/mount.ecryptfs_private
mount: No such file or directory

Ancak sisteme bağlanırsam sshve aynı el-mount.shbetiği çalıştırırsam, NoDM'de yapılandırılan aynı kullanıcı olarak oturum açarsam, betik kusursuz çalışır. Merak ediyorsanız, LP değişkeni her iki durumda da doğru bir şekilde ayarlanmıştır (günlük dosyasında zaten kontrol edilmiştir).

NoDM'den lightdm-autologin-greeter'a geçmeyi zaten denedim, ancak aynı sonucu alıyorum.

mount.ecryptfs_privateOtomatik oturum açma sırasında çağrıldığımda nasıl yapabilirim ?

answer

Sonunda hallettim. Sorun, hala açık olan Debian hatası 870126 . Birisi bunu düzeltene kadar, manuel olarak ekleyerek bu sorunu çözmeniz gerekecek:

 session    optional   pam_keyinit.so force revoke

to /etc/pam.d/nodm(veya pamekran yöneticinize bağlı olarak başka bir yapılandırma dosyası).