मैं अपने डेस्कटॉप वातावरण में स्वचालित रूप से मुझे लॉग इन करने के लिए सिस्टमड को कैसे कॉन्फ़िगर कर सकता हूं, अधिमानतः लॉगिन मैनेजर का उपयोग किए बिना? मैं आर्क का उपयोग कर रहा हूं।
मैं अपने डेस्कटॉप वातावरण में स्वचालित रूप से मुझे लॉग इन करने के लिए सिस्टमड को कैसे कॉन्फ़िगर कर सकता हूं, अधिमानतः लॉगिन मैनेजर का उपयोग किए बिना? मैं आर्क का उपयोग कर रहा हूं।
जवाबों:
यह आर्क विकी में वर्णित है :
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
फाइल को पहले चेक करने के लायक है ।