सवाल मैं एक गैर-लॉगिन उपयोगकर्ता कैसे बना सकता हूं?


मैं एक उपयोगकर्ता और एक समूह दोनों को बुलावा चाहता हूं subversion एक आरएचईएल 5 प्रणाली पर। मैंने मैन पेज को देखा useradd और मुझे लगता है कि आदेश सिर्फ होगा ...

useradd subversion

हालांकि, सुनिश्चित नहीं है कि घर डीआईआर बनाने से कैसे बचें। साथ ही, मैं नहीं चाहता कि यह ऐसा उपयोगकर्ता हो जो सिस्टम में लॉग इन कर सके।

मुख्य उद्देश्य सिर्फ एक एसवीएन भंडार के लिए मालिक प्रदान करना है।


107
2017-12-02 00:47


मूल


क्या आपने वास्तव में useradd के मैन पेज को देखा है और नहीं मिला -एम (होम निर्देशिका नहीं बनाएं)? - inemanja


जवाब:


आप इसका उपयोग कर सकते हैं -M स्विच करें (सुनिश्चित करें कि यह एक राजधानी है) यह सुनिश्चित करने के लिए कि कोई होम निर्देशिका नहीं बनाई जाएगी:

useradd -M subversion

फिर लॉग इन रोकने के लिए खाता लॉक करें:

usermod -L subversion

59
2017-12-02 00:58



यह एक विशेष रूप से मजबूत उत्तर नहीं है, इस माध्यम से बनाए गए उपयोगकर्ता का अभी भी एक खोल है। और आपने ओपी को चेतावनी भी नहीं दी कि यह मामला था। पीछे की ओर होगा usermod -s /bin/false subversion, या के साथ --shell /bin/false सेवा मेरे useradd - Lee Hambley
@beak खाता लॉक है, एक खोल रखना एक महत्वपूर्ण मुद्दा है। - John T
@beak वास्तव में केवल रूट उपयोगकर्ता लॉक किए गए खाते में मुकदमा करने में सक्षम होगा, लेकिन अगर व्यक्ति ने रूट पहुंच प्राप्त कर ली है तो परेशान क्यों हो? और जब कोई उपयोगकर्ता चला सकता है तो खोल को सेट नहीं करता है su -s /bin/bash username और उस बाईपास। - John T
चर्चा करने के लिए समय निकालने के लिए धन्यवाद, आप निश्चित रूप से सही हैं; लेकिन मुझे गैर-लॉगिन उपयोगकर्ताओं को परिभाषित गोले के साथ देखने के लिए दर्द होता है, यह मुझे आलसी के रूप में मारता है, और किसी को सिस्टम से अपरिचित है, यह अच्छा है कि वे गलती से कुछ अनजान नहीं कर सकते हैं; हैकर एक अलग नस्ल हैं, अगर उन्हें मशीन पर पहले से ही एक खोल मिलती है, तो मुझे लगता है कि यह मूल रूप से गेम खत्म हो गया है - Lee Hambley
इन टिप्पणियों में वास्तव में उन चीज़ों को शामिल किया गया था जिन्हें मैं सीखने की उम्मीद कर रहा था, धन्यवाद @ बेक्स एंड जॉन टी - Rixius


useradd -r subversion

प्रति man useradd:

-r, --system create a system account

-आर ध्वज एक सिस्टम उपयोगकर्ता बनाएगा - जिसमें कोई पासवर्ड नहीं है, एक घर डीआईआर और लॉगिन करने में असमर्थ है।


180
2017-12-06 20:10



यह आदेश उपयोगकर्ता नाम के लिए भी एक समूह बना देगा। तो "उपवर्तन" उपयोगकर्ता "उपवर्तन" समूह में होगा। जब आप बाद में "सूडो चाउन -आर सबवर्जन: उपversण / पथ / से / फ़ोल्डर" करना चाहते हैं तो बढ़िया - s3v1
अकेले के साथ हम अभी भी लॉगिन कर सकते हैं। हमें उपयोगकर्ता खोल को अक्षम करने के लिए -s / bin / false की आवश्यकता है। - c4il
@ c4il लेकिन उनमें से केवल एक ही लॉगिन कर सकता है, है ना? मेरा मतलब है, उनके पास पासवर्ड नहीं है, इसलिए मैं केवल रूट में लॉग इन करने में सक्षम होने की अपेक्षा करता हूं। - Camilo Martin


उपयोग कर एक सिस्टम उपयोगकर्ता बनाने के लिए एक और समाधान adduser:

adduser --system --no-create-home --group yourusername

आप हटा सकते हैं --group अगर आपको अपने उपयोगकर्ता नाम समूह की आवश्यकता नहीं है, और --no-create-home अगर आपको इस उपयोगकर्ता के लिए घर की ज़रूरत है।

टिप्पणियों में py4on द्वारा उल्लेख किया गया है, कुछ प्रणालियों पर किसी को भी इसका उपयोग करने की आवश्यकता हो सकती है --disabled-login इस उपयोगकर्ता के लिए लॉगिन अक्षम करने के लिए विकल्प। हालांकि, डेबियन के तहत यह डिफ़ॉल्ट व्यवहार प्रतीत होता है।

सावधान रहें कि उपयोगकर्ता की संख्यात्मक आईडी सिस्टम खाते का होगा। आप यूआईडी का उपयोग कर ठीक कर सकते हैं --uid विकल्प, यद्यपि।

अंत में, ध्यान दें कि कुछ सिस्टम (उदा। फेडोरा) पर adduser एक सिम्लिंक है useradd, इस मामले में यह उत्तर मान्य नहीं है।


16
2018-03-01 20:04



"मैं नहीं चाहता कि यह ऐसा उपयोगकर्ता बन जाए जो लॉग इन कर सके" ध्वज जोड़ें --disabled-login साथ ही (पहले yourusername) - py4on
@ py4on: हालांकि इस विकल्प को मैनपेज में दस्तावेज किया गया है, लेकिन यह कम से कम डेबियन के तहत डिफ़ॉल्ट प्रतीत होता है। - Skippy le Grand Gourou


मूल प्रश्न का सबसे साफ जवाब आदेश चलाने के लिए है:

adduser subversion --shell=/bin/false

और यदि आप घर निर्देशिका नहीं चाहते हैं तो:

adduser subversion --shell=/bin/false --no-create-home

या, यदि आप एक और अधिक लॉक डाउन सिस्टम उपयोगकर्ता चाहते हैं (होम निर्देशिका भी नहीं बनाएंगे)

adduser subversion --system --group

ये सभी आदेश उपयोगकर्ता के समान नाम वाले समूह बनाएंगे


10
2018-05-17 06:15





ऐसा करने का सबसे सुरक्षित रूप उपयोग करना होगा adduser इस तरह:

$ adduser -r -s /bin/nologin subversion

ध्यान दें: शामिल करना सुनिश्चित करें -s /sbin/nologin किसी भी लॉगिन खोल को खाते में उपलब्ध कराने से अक्षम करने के लिए।

सेटअप की पुष्टि

$ grep subversion /etc/passwd /etc/shadow
/etc/passwd:subversion:x:496:496::/home/subversion:/bin/nologin
/etc/shadow:subversion:!!:17232::::::

हालांकि कोई निर्देशिका नहीं है:

$ ll /home | grep subversion
$

पुष्टि करें कि खाता अन्यथा प्रयोग योग्य है:

$ sudo -u subversion whoami
subversion

$ sudo -u subversion date
Tue Mar  7 08:58:57 EST 2017

निष्कासन

अगर आपको यह खाता निकालना है:

$ userdel subversion -r
userdel: subversion mail spool (/var/spool/mail/subversion) not found
userdel: subversion home directory (/home/subversion) not found
$

और पुष्टि करें:

$ grep rtim-hc-user /etc/passwd /etc/shadow
$

8
2018-03-07 14:04



adduser -r विकल्प को पहचान नहीं है। मुझे लगता है कि आप उपयोगकर्ता का मतलब था। - felwithe
@ फ़ेलविथ नहीं, हर उत्तर मैं लिखता हूं मैं पोस्टिंग से पहले हमेशा परीक्षण करता हूं। मैंने चेक किया और वह स्विच CentOS 6.x सिस्टम पर दिखाता है। - slm
यहां है परिणाम का पेस्टबिन। मैं उबंटू 16 एलटीएस पर हूं। मुझे नहीं पता कि adduser का कौन सा संस्करण स्थापित है लेकिन मैंने कभी कल्पना नहीं की है कि यह सिस्टम या सिस्टम के साथ अधिक समय में बदल जाएगा। इसके बाद मैंने इसे एक - सिस्टम फ्लैग के साथ करने की कोशिश की, जिसने उपयोगकर्ता के लिए एक होमडेर बनाया (मुझे एक नहीं चाहिए)। अंततः मैंने इसे adduser के बजाय उपयोगकर्ता के साथ किया और यह योजनाबद्ध के रूप में काम किया। तो मैंने अभी यह माना है कि जब आप उपयोगकर्ता को माना जाता है तो आप इसे adduser के रूप में गलत टाइप करेंगे। - felwithe
@ फ़ेलविथ हाँ, मैं आपको संदेह नहीं कर रहा था, बस आपको यह बताने के लिए कि मैंने कोशिश की 8-)। मैं यूनिक्स और लिनक्स साइट पर एक मॉड हूं और ये cmds कुख्यात रूप से अलग बी / डब्ल्यू distros हैं। ओपी ने सवाल में आरएचईएल का उल्लेख किया है, इसलिए मैंने इसका उत्तर क्यों दिया, लेकिन उन्होंने इसे लाल टोपी विशिष्ट के रूप में टैग नहीं किया, जो इस क्यू एंड ए आईएमओ पर भ्रम का हिस्सा है। - slm


एक CentOS 7 मशीन पर

  • यदि उपयोगकर्ता मौजूद नहीं है:
    useradd testuser --shell=/sbin/nologin

  • यदि आप किसी मौजूदा उपयोगकर्ता को संशोधित करना चाहते हैं:
    usermod testuser --shell=/sbin/nologin


1
2017-09-06 15:06