मैं अपने डेस्कटॉप वातावरण में स्वचालित रूप से मुझे लॉग इन करने के लिए सिस्टमड को कैसे कॉन्फ़िगर कर सकता हूं, अधिमानतः लॉगिन मैनेजर का उपयोग किए बिना? मैं आर्क का उपयोग कर रहा हूं।
मैं अपने डेस्कटॉप वातावरण में स्वचालित रूप से मुझे लॉग इन करने के लिए सिस्टमड को कैसे कॉन्फ़िगर कर सकता हूं, अधिमानतः लॉगिन मैनेजर का उपयोग किए बिना? मैं आर्क का उपयोग कर रहा हूं।
जवाबों:
यह आर्क विकी में वर्णित है :
getty@.serviceइसे कॉपी करके एक नई सेवा फ़ाइल बनाएं/etc/systemd/system/cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
यह मूल रूप से पहले से मौजूद getty@.serviceएक नई फ़ाइल की प्रतिलिपि बनाता है autologin@.serviceजिसे स्वतंत्र रूप से संशोधित किया जा सकता है। इसे /etc/systemd/systemइसलिए कॉपी किया जाता है क्योंकि यह साइट-विशिष्ट इकाई फ़ाइलों को संग्रहीत किया जाता है। /usr/lib/systemd/systemइसमें पैकेज द्वारा प्रदान की गई इकाई फाइलें शामिल हैं ताकि आपको वहां कुछ भी बदलना न पड़े।
फिर आपको autologin@.serviceउस tty के लिए getty सेवा से जुड़ना होगा, जिस पर आप autologin चाहते हैं, tty1 के लिए जाँच के लिए:
ln -s /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
अब तक, यह अभी भी सामान्य getty@.serviceफ़ाइल के समान है , लेकिन सबसे महत्वपूर्ण हिस्सा autologin@.serviceवास्तव में आपको स्वचालित रूप से लॉग इन करने के लिए संशोधित करना है। ऐसा करने के लिए, आपको केवल ExecStartपढ़ने के लिए लाइन बदलने की आवश्यकता है
ExecStart=-/sbin/agetty -a USERNAME %I 38400
ExecStartलाइन में getty@.serviceऔर उसके बीच का अंतर autologin@.serviceकेवल वह है -a USERNAMEजो उपयोगकर्ता को उपयोगकर्ता नाम USERNAME के साथ स्वचालित रूप से लॉग इन करने के लिए agetty बताता है।
अब आपको केवल अपनी डेमॉन फ़ाइलों को फिर से लोड करने और सेवा शुरू करने के लिए सिस्टमड को बताना होगा:
systemctl daemon-reload
systemctl start getty@tty1.service
(मुझे यकीन नहीं है कि यदि आप पहले से ही tty1 पर लॉग इन हैं तो सेवा ठीक से शुरू हो जाएगी, सबसे सुरक्षित तरीका यह है कि सेवा शुरू करने के बजाय बस रिबूट करें)।
यदि आप X को स्वचालित रूप से प्रारंभ करना चाहते हैं, तो निम्न स्निपेट को अपने में डालें ~/.bash_profile( फिर से विकी से लिया गया):
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
exec startx
fi
आपको ~/.xinitrcअपने डेस्कटॉप वातावरण को शुरू करने के लिए संशोधित करना होगा , यह कैसे करना है कि डे पर निर्भर करता है और शायद आर्क विकी में भी वर्णित है।
File existsसिम्लिंक करने पर मुझे त्रुटि मिलती है
ln -sf /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.serviceइसे अधिलेखित करने के लिए उपयोग करें।
फ़ाइल को सीधे संशोधित करें /etc/systemd/system/getty.target.wants/getty@tty1.service(जो एक सिमिलिंक है /lib/systemd/system/getty@service):
-a/--autologin USERNAMEलाइन में संलग्न करें :
ExecStart=-/sbin/agetty --noclear %I $TERM
इसलिये:
ExecStart=-/sbin/agetty -a USERNAME %I $TERM
आप इसे हटा भी सकते हैं -o '-p -- \\u'(जैसा कि वर्तमान आर्क इंस्टॉलेशन पर मौजूद है) क्योंकि यह लॉगिन की शुरुआत करेगा USERNAMEलेकिन फिर भी पासवर्ड मांगता है।
रिबूट करने के बाद, आप अपने आप लॉग इन हो जाएंगे।
Ps उस फ़ाइल नाम getty@tty1.serviceको बदलें जिसमें ttyआप लॉग इन करना चाहते हैं।
IMO, आर्क विकी वर्तमान में बहुत सरल समाधान सुझाता है:
या तो हेल्पर चलाएं ( systemctl edit getty@tty1) या जो मैंने मैन्युअल रूप से किया था उसे करें:
mkdir -p /etc/systemd/system/getty@tty1.service.d/
touch /etc/systemd/system/getty@tty1.service.d/override.conf
वह पाठ जिसे आप दर्ज करना चाहते हैं (या तो विधि से) वह है ( उचित रूप से उपयोगकर्ता नाम बदलना सुनिश्चित करें ):
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
नोट : खाली लाइन महत्वपूर्ण है! (वास्तव में मुझे यकीन नहीं है कि क्यों ...)
अब, पुनरारंभ ( shutdown -r 0) और इसके प्रभाव के लिए कुछ ... login: username (automatic login)होगा जहां यह पहले उपयोगकर्ता नाम / पासवर्ड इनपुट की प्रतीक्षा में अवरुद्ध है
एक बार रिबूट होने के बाद, और ऑटो-लॉग इन होने पर, यदि आप मेरी तरह हैं और अब इस सिस्टम में एसएसएच करना चाहते हैं, तो आपको संभवतः चलाने की आवश्यकता है:
systemctl enable sshd.service
जो सिमलिंक बनाएगा (जैसे ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service')
/sbin/agetty, इसलिए यह मूल /etc/systemd/system/getty.target.wants/getty@tty1.serviceफाइल को पहले चेक करने के लायक है ।