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


134

मैं एक उपयोगकर्ता और एक समूह बनाना चाहता हूं, जिसे दोनों ने subversionRHEL 5 सिस्टम पर बुलाया है। मैं मैन पेज के लिए देखा useraddऔर मुझे लगता है कि कमांड सिर्फ होगा ...

useradd subversion

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

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


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

जवाबों:


76

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

useradd -M subversion

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

usermod -L subversion

59
यह एक विशेष रूप से मजबूत जवाब नहीं है, इस माध्यम से बनाए गए उपयोगकर्ता के पास अभी भी एक शेल है। और आपने ओपी को चेतावनी भी नहीं दी कि यह मामला था। पूर्वव्यापी कि हो सकता है usermod -s /bin/false subversion, या के साथ --shell /bin/falseकरने के लिएuseradd
ली Hambley

7
@ खाते को बंद कर दिया गया है, शेल होना एक म्यूट पॉइंट है।
जॉन टी।

15
@ बीक वास्तव में केवल रूट उपयोगकर्ता ही लॉक किए गए खाते पर मुकदमा करने में सक्षम होगा, लेकिन अगर व्यक्ति पहले ही रूट एक्सेस प्राप्त कर चुका है तो परेशान क्यों? और जब उपयोगकर्ता चला सकता है su -s /bin/bash usernameऔर उस को बायपास कर सकता है तो शेल को सेट करना ज्यादा मायने नहीं रखता है।
जॉन टी।

11
चर्चा के लिए समय निकालने के लिए धन्यवाद, आप निश्चित रूप से सही हैं; लेकिन यह मुझे गैर-लॉगिन उपयोगकर्ताओं को परिभाषित किए गए गोले के साथ देखने के लिए परेशान करता है, यह मुझे आलसी के रूप में मारता है, और किसी को उकसाता है कि वह सिस्टम से अपरिचित है, यह अच्छा है कि वे गलती से कुछ अनजाने में नहीं कर सकते हैं; हैकर्स एक अलग नस्ल हैं, अगर उन्हें पहले से ही मशीन पर एक शेल मिला है, तो मुझे लगता है कि यह मूल रूप से खत्म हो गया है
ली हैम्बले

11
इन टिप्पणियों ने ठीक वैसे ही चीजों को कवर किया, जिनसे मैं सीखने की उम्मीद कर रहा था, धन्यवाद @Beaks && John T
Rixius

220

useradd -r subversion

प्रति man useradd:

-r, --system create a system account

-R फ्लैग एक सिस्टम यूजर बनाएगा - जिसके पास पासवर्ड नहीं है, होम डायर है और लॉगिन करने में असमर्थ है।


1
यह कमांड उपयोगकर्ता के लिए एक समूह भी बनाएगा जिसे समान कहा जाता है। तो "तोड़फोड़" उपयोगकर्ता "तोड़फोड़" समूह में होगा। जब आप बाद में "
सुडो चाउन

49
अकेले आर के साथ हम अभी भी लॉगिन कर सकते हैं। उपयोगकर्ता शेल को अक्षम करने के लिए हमें -s / bin / false की आवश्यकता है।
c4il

8
@ c4il लेकिन इनमें से केवल एक ही लॉगिन कर सकता है? मेरा मतलब है, उनके पास कोई पासवर्ड नहीं है, इसलिए मैं केवल रूट करने की उम्मीद करूंगा ताकि उन्हें लॉग इन किया जा सके।
कैमिलो मार्टिन

लेकिन हम उन्हें पासवर्ड वैसे भी असाइन कर सकते हैं, मैंने कोशिश की passwd subversion
शयन

@rynop मैं कैसे जांच सकता हूं कि मेरी मशीन पर एक उपयोगकर्ता, एक सिस्टम उपयोगकर्ता है? क्या कोई रास्ता है? मुझे लगता है कि वे शुरुआत के लिए sudo'ers समूह में नहीं हैं।
शयन

22

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

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

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

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

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

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


3
"मैं यह नहीं चाहता कि यह एक उपयोगकर्ता है जो लॉग इन कर सके" फ्लैग के --disabled-loginसाथ ही (पहले yourusername)
टोक्सिफ़ा

@ py4on: हालांकि इस विकल्प को मैनपेज में प्रलेखित किया गया है, लेकिन यह कम से कम डेबियन के तहत डिफ़ॉल्ट प्रतीत होता है।
स्किपी ले ग्रैंड गौरू

15

मूल प्रश्न का सबसे स्वच्छ उत्तर कमांड चलाना है:

adduser subversion --shell=/bin/false

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

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

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

adduser subversion --system --group

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


टकसाल पर अंतिम आदेश निश्चित रूप से एक घर बनाता है:Creating home directory '/home/nodejs' ...
jcollum

11

ऐसा करने का सबसे सुरक्षित तरीका यह होगा 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
$

1
Adduser -r विकल्प को पहचानता नहीं है। मुझे लगता है कि आपका मतलब useradd था।
felwithe

@felwithe नहीं, हर उत्तर जो मैं लिखता हूं, मैं हमेशा पोस्ट करने से पहले परीक्षण करता हूं। मैंने जाँच की और उस स्विच को CentOS 6.x सिस्टम पर दिखाया।
स्लैम

यहाँ परिणाम का एक pastebin है । मैं Ubuntu 16 LTS पर हूं। मुझे नहीं पता कि एड्यूसर का कौन सा संस्करण स्थापित है, लेकिन मैंने कभी नहीं सोचा था कि यह समय के साथ या सिस्टम से सिस्टम में बदल जाएगा। मैंने तब इसके बजाय - सिस्टम झंडे के साथ कोशिश की, जिसने उपयोगकर्ता के लिए एक होमडियर बनाया (मुझे एक नहीं चाहिए)। अंत में मैंने इसे सिर्फ एड्यूसर के बजाय यूजरड के साथ किया और यह योजना के अनुसार काम किया। इसलिए मैंने अभी यह मान लिया है कि जब आप इसे उपयोगकर्ता नाम देने वाले थे तो आपने इसे एड्यूसर के रूप में गलत समझा।
felwithe

@felwithe हाँ, मुझे आप पर शक नहीं हो रहा था, बस आपको बता रहा था कि मैंने इसे 8- आज़मा लिया था। मैं यूनिक्स और लिनक्स साइट पर एक मॉड हूं और ये सेमी कुख्यात अलग-अलग बी / डब्ल्यू डिस्ट्रोस हैं। ओपी प्रश्न में आरएचईएल का उल्लेख करता है इसलिए मैंने इसे ऐसा क्यों कहा, लेकिन उन्होंने इसे लाल टोपी के रूप में विशिष्ट नहीं बताया, जो इस प्रश्नोत्तर आईएमओ पर भ्रम का हिस्सा है।
SLM

1

एक CentOS 7 मशीन पर

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

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


0

अधिकतम 8 वर्णों वाले उपयोगकर्ता के लिए एन्क्रिप्टेड पासवर्ड जनरेट करके प्रारंभ करें:

openssl passwd -crypt new_password_less_than_eight_chars_long

फिर आप करते हैं:

useradd -m -g groupname -G otherGroupsSeperatedByComma -p encryptedPassword username

0

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

useradd --system --shell=/usr/sbin/nologin <username>

यदि आपका nologinकार्यक्रम चालू है /sbin/nologin, तो कृपया तदनुसार परिवर्तन करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.