मैं सिस्टम स्टार्टअप पर स्वचालित रूप से Privateउपयोगकर्ता के अंदर निर्देशिका को डिक्रिप्ट करने का प्रयास कर रहा हूं $HOMEसिस्टम एक डेबियन GNU/Linux 10 (वास्तव में एक रास्पियन है, लेकिन मुझे लगता है कि यह इस अंत से अलग नहीं है) जो Xorg को शुरू करने के लिए NoDM का उपयोग करता है

संपादित करें 1: मैंने अब वर्चुअल मशीन में नोडम के साथ एक स्वच्छ डेबियन 11 स्थापित करने का प्रयास किया है और मुझे नीचे वर्णित उसी समस्या का सामना करना पड़ रहा है।

Nodm स्वचालित रूप से अनपेक्षित उपयोगकर्ता को लॉग इन करता है, और यह $HOME/.xsessionस्टार्टअप स्क्रिप्ट चलाता है

मेरे पास निम्न स्क्रिप्ट है, जिसे .xsession द्वारा बुलाया जा रहा है:

#!/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

यह का एक स्ट्रिप्ड डाउन संस्करण है /usr/bin/ecryptfs-mount-privateयह केवल उन्हीं आदेशों को निष्पादित करता है, लेकिन यह अपेक्षा करता है कि एलपी पर्यावरण चर में पासफ़्रेज़ को अंतःक्रियात्मक रूप से पूछने के बजाय पासफ़्रेज़ शामिल हो।

मैंने इस स्क्रिप्ट को $HOME/el-mount.sh. जब मेरा सिस्टम बूट होता है और एनओडीएम शुरू होता है, तो यह .xsession निष्पादित करता है जो बदले में मेरी स्क्रिप्ट को पुनर्निर्देशित करता है stdoutऔर stderrडीबग के लिए लॉगफाइल पर कॉल करता है बात काम नहीं करती है, इसमें यह इसे आउटपुट करता है:

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

हालांकि अगर मैं sshउसी el-mount.shस्क्रिप्ट के माध्यम से सिस्टम से जुड़ता हूं और चलाता हूं, तो उसी उपयोगकर्ता के रूप में लॉग इन किया जाता है जो एनओडीएम में कॉन्फ़िगर किया गया है, स्क्रिप्ट निर्दोष काम करती है। बस अगर आप आश्चर्य करते हैं, तो एलपी चर दोनों मामलों में सही ढंग से सेट किया गया है (पहले से ही लॉगफाइल में चेक किया गया है)।

मैंने पहले ही NoDM से lightdm-autologin-अभिवादन पर स्विच करने का प्रयास किया है, लेकिन मुझे वही परिणाम मिलता है।

mount.ecryptfs_privateऑटोलॉगिन के दौरान बुलाए जाने पर मैं काम कैसे करूँ ?

answer

मैंने आखिरकार इसे सुलझा लिया है। समस्या डेबियन बग 870126 है जो अभी भी खुली है। जब तक कोई इसे ठीक नहीं करेगा तब तक आपको मैन्युअल रूप से जोड़कर इसके आसपास काम करना होगा:

 session    optional   pam_keyinit.so force revoke

करने के लिए /etc/pam.d/nodm(या अन्य pamविन्यास फाइल, अपने प्रदर्शन प्रबंधक के आधार पर)।