เรียกใช้ adduser แบบไม่โต้ตอบ


198

ฉันต้องการใช้adduserคำสั่งเพื่อเพิ่มผู้ใช้ (ด้วยรหัสผ่านที่ปิดใช้งาน) ผ่านเชลล์สคริปต์

ตามค่าเริ่มต้นadduserจะให้คุณใส่ค่าต่าง ๆ (เช่นชื่อเต็ม) มีวิธีการส่งค่าเหล่านี้ผ่านทางบรรทัดคำสั่งหรือไม่ หรือฉันจะต้องuseraddแทน

คำตอบ:


262

ใช้--gecosตัวเลือกเพื่อข้ามchfnส่วนโต้ตอบ

adduser --disabled-password --gecos "" username

มันคือทั้งหมดที่อยู่ในหน้าคน ไม่ใช่สูตรที่ชัดเจนที่สุด

--gecos GECOS
          Set  the  gecos field for the new entry generated.  adduser will
          not ask for finger information if this option is given.

ฟิลด์ GECOS เป็นรายการคั่นด้วยเครื่องหมายจุลภาคเช่น: Full name,Room number,Work phone,Home phoneแม้จะมีหน้าคนกล่าวถึงfinger information รายละเอียด - วิกิพีเดีย

หวังว่านี่จะช่วยคุณได้


41

useradd ยังสามารถเพิ่มผู้ใช้และไม่ปรากฏว่ามีรูปแบบการแจ้งเตือนในตัว

useradd -m -p <encryptedPassword> -s /bin/bash <user>
  • -m, --create-home: สร้างโฮมไดเรกทอรีของผู้ใช้
  • -p, --password: ระบุรหัสผ่านผู้ใช้; ข้ามเพื่อปิดการใช้งาน
  • -s, --shell: เชลล์เริ่มต้นสำหรับผู้ใช้ที่เข้าสู่ระบบ

    ช่องว่างจะใช้เปลือกเข้าสู่ระบบเริ่มต้นที่ระบุโดยSHELLตัวแปรใน/etc/default/useradd

  • ทดแทน<user>ด้วยชื่อเข้าสู่ระบบ
  • ทดแทน<encryptedPassword>ด้วยรหัสผ่านที่เข้ารหัส

สร้างรหัสผ่านที่แฮช:

มีการใช้งาน crypt3 จำนวนมากที่สามารถสร้างรหัสผ่านที่แฮชได้ สิ่งทั้งหมดคือรหัสผ่านที่แฮชของคุณ

Sha-512

รูปแบบผลลัพธ์ที่ได้: กลไกแฮช ( $6สำหรับ sha-512), เกลือแบบสุ่ม (แปดไบต์หลังจากเครื่องหมายดอลลาร์ที่สอง$ASDF1234) ส่วนที่เหลือคือเพย์โหลด

  • mkpasswd mkpasswd -m sha-512

    ( mkpasswdให้บริการโดยwhoisแพคเกจ)

DES ตาม:

รูปแบบผลลัพธ์ที่ได้: 2 ไบต์แรกคือเกลือของคุณส่วนที่เหลือคือน้ำหนักบรรทุก สิ่งทั้งหมดคือรหัสผ่านที่แฮชของคุณ

  • mkpasswd: mkpasswd(ให้บริการโดยwhoisแพคเกจ)
  • OpenSSL: openssl passwd -crypt
  • Perl: perl -e "print crypt('password');"
  • หลาม: python3 -c 'import crypt; print(crypt.crypt("password"))'

1
ตัวเลือกที่คุณพูดถึงไม่มีอยู่adduserใน Ubuntu เวอร์ชันล่าสุดของฉัน
ᴠɪɴᴄᴇɴᴛ

1
@ ᴠɪɴᴄᴇɴᴛ adduserแตกต่างจากuseraddสับสนฉันรู้
ThorSummoner

1
อุ๊ปส์พลาดแน่นอนว่าคุณใช้ชื่อซ้ำซากเกือบ ... ไม่มี BDFL ปกป้องเนมสเปซบรรทัดคำสั่งหรือไม่ ; p
ᴠɪɴᴄᴇɴᴛ

1
@ mum007 นี่เป็นเพียงคำแนะนำทั่วไปลองเพิ่ม-vหรือ-vvหรือ-vvvคำสั่ง ssh ของคุณเพื่อดูว่ามีอะไรผิดปกติและค้นหาข้อความแสดงข้อผิดพลาดที่นี่ใน SO หรือ Google
ThorSummoner

1
@KovacsAkos ลองใช้ดู: sudo sed -i"" -e "s/PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_configและsudo service ssh restart
JSBach
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.