บางคนควรสร้างรหัสผ่านที่เข้ารหัสสำหรับ / etc / shadow อย่างไร


9

ฉันกำลังตั้งค่าบัญชีใหม่ในกล่อง Linux สำหรับการเข้าถึงที่เก็บ Subversion และสามารถส่งรหัสผ่านไปยังผู้ใช้ใหม่ อย่างไรก็ตามฉันคิดว่ามียูทิลิตี้บรรทัดคำสั่งสำหรับผู้ใช้รายใหม่นี้เพื่อเข้ารหัสรหัสผ่านที่เขาชอบในรูปแบบที่ฉันสามารถคัดลอก / วางโดยตรงในไฟล์ / etc / shadow

อะไรคือคำสั่งแบบเต็มที่ผู้ใช้รายใหม่นี้ควรทำงานบนคอนโซล (เช่น Bash) เพื่อสร้างรหัสผ่านที่เข้ารหัสเช่นนั้น?

อัปเดต: ผู้ใช้จะไม่ได้รับอนุญาตให้ลงชื่อเข้าใช้บนเครื่องและบัญชีจะถูกใช้เพื่อการเข้าถึง svn + ssh: // เท่านั้น ดังนั้นผู้ใช้ไม่สามารถเปลี่ยนได้เอง


ผู้ใช้ถามเกี่ยวกับการทุบตีสคริปต์เนื่องจากเห็นได้ชัดว่าเขาจะไม่ทำสิ่งนี้ด้วยตนเอง
ทิมโพสต์

คำตอบ:


15

ผู้ใช้สามารถดำเนินการบนคอมพิวเตอร์ของเขาเช่น:

echo "password"|openssl passwd -1 -stdin

แล้วส่งผลลัพธ์ให้คุณ


+1 ทำสิ่งที่คุณต้องการอย่างแน่นอน
แอนทอน Benkemoun

เหตุใดคำสั่งนั้นจึงให้ค่าต่างกันทุกครั้งที่ฉันเรียกมัน
Egon Willighagen

2
รูปแบบของผลลัพธ์คือเข้ารหัส $ id $ salt $ ID ที่แตกต่างกันและเกลือต่างกันจะให้สตริงการเข้ารหัสที่แตกต่างกัน id เป็นอัลกอริทึมที่ใช้: 0-DES, 1-> MD5, 2a-> ปักเป้า, 5-> SHA-256, 6-> SHA512
กอนซาโล่

ตกลงดังนั้นฉันต้องคิดวิธีการเรียกรหัสบางอย่าง (ซึ่งเหมือนกันตลอดเวลา) และเกลือ (ซึ่งเปลี่ยนไปกับการโทรแต่ละครั้ง) ... สมเหตุสมผล
Egon Willighagen

2

รูปแบบของรหัสผ่านในเงาอาจแตกต่างกันไป คุณสามารถตั้งค่าให้เป็น MD5 หรือ DES3 เก่าที่ดีหรือ ... คุณส่งรหัสผ่านของผู้ใช้และบังคับให้เธอเปลี่ยนในการเข้าสู่ระบบครั้งแรก ( # chage -d 0 username)


1

แทนที่จะให้พวกเขาเข้ารหัสรหัสผ่านและส่งให้คุณทำไมไม่เพียงบอกให้พิมพ์:

passwd

มันจะทำทุกสิ่งที่คุณต้องการด้วยความได้เปรียบเพิ่มเติมที่พวกเขาสามารถเปลี่ยนรหัสผ่านของพวกเขาโดยไม่ต้องทำงานพิเศษใด ๆ สำหรับคุณ

แก้ไข: ตามนี้มีคำสั่งที่เรียกว่า makepassword ที่คุณจะได้รับจาก Debian / Ubuntu


เนื่องจากต้องให้ผู้ใช้เข้าสู่ระบบอยู่แล้ว OP ต้องการโซลูชันเพื่อตั้งรหัสผ่านอย่างปลอดภัยก่อนที่ผู้ใช้จะเข้าสู่ระบบเป็นครั้งแรก
Daniel Pryden

1
ดูเหมือนว่าการสร้างรหัสผ่านแบบสุ่มและการเปลี่ยนรหัสผ่านเมื่อเข้าสู่ระบบนั้นมีความปลอดภัยเท่ากับการสร้างรหัสผ่านและเพิ่มรหัสด้วยตนเอง
Brendan Long

ผู้ใช้จริงจะไม่เคยเข้าสู่ระบบ (เปลือก: / bin / เท็จ) และอนุญาตให้ SVN การเข้าถึงแบบอ่าน / เขียน ...
Egon Willighagen

2
คุณสามารถตั้งเปลือก: / usr / bin / passwd: D
เบรนแดนยาว

1
ฉันหมายถึงความคิดเห็นล่าสุดว่าเป็นเรื่องตลก แต่เห็นได้ชัดว่ามันจะใช้งานได้: markmail.org/message/ekuxvnhdagywy4i5
เบรนแดนลอง

0

/ etc / passwd และ / etc / shadowเป็นเรื่องง่ายมากที่จะโทเค็นด้วยเครื่องมือบรรทัดคำสั่งปกติ (เช่น grep, awk, sed, tr, etc)

สิ่งที่น่าสนใจคือฟิลด์แฮชของรหัสผ่านจริงใน / etc / shadow คำนำหน้าของมันจะบอกคุณว่ารหัสผ่านนั้นถูกเข้ารหัสอย่างไร จากมนุษย์ (5) เงา:

The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.

การเข้ารหัสแบบกว้างขึ้นอยู่กับอายุของระบบปฏิบัติการที่ติดตั้ง สิ่งสำคัญคือต้องใส่ใจเป็นพิเศษกับฟิลด์ที่สองใน / etc / shadow

คุณควรพยายามอย่างเต็มที่ที่จะทำตามสิ่งที่ระบบใช้ไม่ว่าจะเป็น DES, MD5, ฯลฯ เนื่องจากมันง่ายต่อการตรวจจับ


0

ทำไมไม่ใช้ SU กับผู้ใช้และเรียกใช้ passwd?


เพราะฉันไม่ต้องการที่จะรู้รหัสผ่าน ... หรือส่งให้ฉันในรูปแบบที่ไม่ได้เข้ารหัส
Egon Willighagen

0

มีวิธีสร้างรหัสผ่านนี้ผ่านทางบรรทัดคำสั่งหรือไม่ ใช่ด้วยแพคเกจ debian makepasswd (แต่สำหรับ MD5 เท่านั้น):

echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.

แต่สิ่งนี้จะไม่ทำงานผ่านการคัดลอกและวางภายใน / etc / shadow หากต้องการเปลี่ยนรหัสผ่านผ่านสคริปต์ในการแจกแจงลินุกซ์บางอย่างคุณสามารถใช้:

echo oracle:mypasswd | chpasswd

หรือ

echo -n mypasswd | passwd --stdin oracle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.