2010-07-06 10 views
11

का उपयोग कर linux में एक उपयोगकर्ता बनाने के लिए? मेरा मतलब है, मैं subprocess मॉड्यूल के बारे में जानता हूं और 'adduser' को कॉल करने और सभी पैरामीटर को एक बार में गुजरने के बारे में सोचा, लेकिन 'adduser' कमांड पासवर्ड, पूर्ण नाम, फोन और सामान जैसे कुछ प्रश्न पूछता है। सबप्रोसेस का उपयोग करके मैं इस प्रश्न का उत्तर कैसे दूंगा? मैंने इस प्रश्न में pexpect नामक मॉड्यूल देखा है: Can I use Python as a Bash replacement?। क्या कोई अन्य मानक मॉड्यूल है?मैं कैसे पायथन का उपयोग कर लिनक्स में एक उपयोगकर्ता कैसे बना सकता हूँ अजगर

उत्तर

19

उपयोग useradd, यह किसी भी सवाल पूछने नहीं करता है लेकिन कई कमांड लाइन विकल्प स्वीकार करता है।

3

तुम बस में निर्मित बाइनरी इस्तेमाल कर सकते हैं तो बस useradd फोन या उपप्रक्रिया मॉड्यूल के माध्यम से कुछ, लेकिन मैं क्या कोई अन्य मॉड्यूल कि लिनक्स में हुक ऐसी सुविधा प्रदान करने के है पता नहीं है।

7

उबंटू पर, आप python-libuser पैकेज

+0

यह एक ubuntu-केवल पैकेज है इस्तेमाल कर सकते हैं? अगर मुझे इसे अन्य डिस्ट्रोज़ पर चलाने की ज़रूरत है, तो क्या मुझे मैन्युअल रूप से इस पैकेज को इंस्टॉल करना होगा? – Salsa

+1

क्रॉस-वितरण संगतता के लिए आप शायद 'useradd' के साथ बेहतर हैं, लेकिन ध्यान दें कि सभी distros पर' useradd' भी उपलब्ध होने की गारंटी नहीं है। पिल्ला लिनक्स मुझे विश्वास है कि डिफ़ॉल्ट रूप से उपयोगकर्ता के साथ नहीं आते हैं, उदाहरण के लिए। – unutbu

2
import os 
import crypt 

password ="[email protected]" 
encPass = crypt.crypt(password,"22") 
os.system("useradd -p "+encPass+" johnsmith") 
+1

के लिए नंबर 22 क्या है? क्या यह अभी भी 2017 में एन्क्रिप्ट करने का सही तरीका है? – answerSeeker

+0

22 एक नमक है। आप यादृच्छिक मूल्यों का उपयोग कर सकते हैं। यदि आप अतिरिक्त सुरक्षा चाहते हैं तो आप शा -256 या शा -512 – mcolak

2
def createUser(name,username,password): 
    encPass = crypt.crypt(password,"22") 
    return os.system("useradd -p "+encPass+ " -s "+ "/bin/bash "+ "-d "+ "/home/" + username+ " -m "+ " -c \""+ name+"\" " + username) 
+0

का उपयोग कर सकते हैं 22 के लिए क्या है? इसके अलावा, ossystem से subprocess बेहतर होगा? – answerSeeker

+0

@answerSeeker यह नमक है। नमक 2-वर्ण स्ट्रिंग है जिसका उपयोग डीईएस के 4096 भिन्नताओं में से एक का चयन करने के लिए किया जाएगा। (पाइडोक से) – yanpas

+1

नेक्रोबम्प के लिए खेद है, लेकिन क्रिप्ट आपके लिए नमक उत्पन्न कर सकता है, निर्दिष्ट करने की कोई आवश्यकता नहीं है। नमक = crypt.mksalt (crypt.METHOD_SHA512) salthash = crypt.crypt (पासवर्ड, नमक) देखना [यहां] (https://docs.python.org/3/library/crypt.html#crypt। अधिक जानकारी के लिए) mksalt)। –

संबंधित मुद्दे