การสร้างผู้ใช้โดยไม่มีรหัสผ่าน


66

ฉันกำลังพยายามสร้างผู้ใช้ที่ไม่มีรหัสผ่านเช่นนี้:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos ‘User for managing of git version control’ \
   --group \
   --disabled-password \
   --home /home/git \
   git

มันสร้างได้ดี แต่เมื่อฉันพยายามเข้าสู่ระบบภายใต้ผู้ใช้คอมไพล์ฉันได้รับรหัสผ่าน:

su git
Password:...

เมื่อฉันปล่อยให้มันว่างเปล่าฉันได้รับข้อผิดพลาด:

su: Authentication failed

เกิดอะไรขึ้น


1
ไม่มีอะไรผิดปกติการตรวจสอบสิทธิ์ล้มเหลวตามที่คาดไว้ คุณจะไม่ได้รับข้อความแสดงข้อผิดพลาด "ไม่มีรหัสผ่านคุณไม่สามารถเข้าสู่ระบบ"
scai

แต่ฉันต้องสร้างโฟลเดอร์. ssh ภายใต้ผู้ใช้ git ฉันควรทำอย่างไร?
Erik

1
สร้างมันเป็นรูทและตั้งค่าการอนุญาตที่ถูกต้องหรือรันsu gitเป็นรูทโดยที่คุณไม่ต้องใส่รหัสผ่าน
scai

4
โดยการใช้และchmod chown
scai

1
ปิดหัวข้อ แต่เป็น "ผู้ใช้" ไม่ใช่ "ผู้ใช้" writerdigest.com/online-editor/ …
David Baucum

คำตอบ:


31

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

ในการดำเนินการคำสั่งเช่นผู้ใช้ "ระบบ" ที่ไม่ได้เข้าสู่ระบบตามปกติคุณต้องกระโดดผ่านบัญชีรูท:

su -c 'su git -c "git init"'

หรือ

sudo -u git git init

หากคุณต้องการให้ผู้ใช้บางคนสามารถเรียกใช้คำสั่งในฐานะgitผู้ใช้โดยไม่ต้องให้ผู้ใช้รันคำสั่งในฐานะ root ให้ตั้งค่า sudo (เรียกใช้visudoเป็นรูทและเพิ่มบรรทัดเหมือน%gitters ALL = (git) ALL)


@JulienRicard Er ใช่และ? มีหลายวิธีที่สามารถเข้าใจ“ ผู้ใช้ที่ไม่มีรหัสผ่าน” และฉันตอบคำถามกรณีการใช้งานที่ให้ไว้ในคำถาม ตัวอย่างเช่นคำถามเกี่ยวกับการสร้างผู้ใช้ของผู้เยี่ยมชมจะเป็นคำถามที่แตกต่าง
Gilles

41

--disabled-passwordตัวเลือกที่จะไม่ตั้งรหัสผ่านที่มีความหมายรหัสผ่านไม่ถูกต้องตามกฎหมาย แต่การเข้าสู่ระบบยังคงเป็นไป (เช่น SSH กับคีย์ RSA)

ในการสร้างผู้ใช้ที่ไม่มีรหัสผ่านให้ใช้passwd -d $usernameหลังจากสร้างผู้ใช้เพื่อให้รหัสผ่านว่างเปล่า หมายเหตุระบบทั้งหมดไม่อนุญาตให้ผู้ใช้ที่มีรหัสผ่านว่างเปล่าเข้าสู่ระบบ


3
ดูเหมือนว่าจะใช้งานไม่ได้ในรุ่น 16 อูบุนตู
Daniel Tate

@DanielTate ได้รับมันทำงานกับ: unix.stackexchange.com/a/472968/32558
Ciro Santilli 新疆改造中心中心法轮功事件事件

9

หากคุณต้องการเข้าถึงระบบภายใต้ผู้ใช้ git คุณควรใช้ sudo:

sudo -s -u git

หรือ

sudo su - git

4

สร้างผู้ใช้ด้วยรหัสผ่านที่ว่างเปล่า

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

พรอมต์รหัสผ่านยังคงแสดงอย่างน่าเสียดาย

test-user-0แต่ถ้าคุณแค่กดโดยไม่ต้องพิมพ์อะไรและมันเข้าสู่ระบบเป็นผู้ใช้

-eธงบอกchpasswdว่ารหัสผ่านจะถูกเข้ารหัสแล้วและU6aMy0wojrahoเป็นกัญชาของสตริงที่ว่างเปล่า

ทดสอบบน Ubuntu 18.04

เทอร์มินัลอัตโนมัติด้วย getty -a

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

ฉันสามารถทำสิ่งนี้ได้ใน BusyBox โดยการแก้ไขinittab: วิธีการลงชื่อเข้าใช้โดยอัตโนมัติโดยไม่ต้องพิมพ์ชื่อผู้ใช้รูทหรือรหัสผ่านใน Buildroot BusyBox init

ดังนั้นฉันเชื่อว่ามันไม่ควรยากที่จะปรับใช้เทคนิคนั้นโดยการแก้ไขสคริปต์ระบบ systemd init ของ Ubuntu 18.04 เพื่อตั้งค่าgetty -a <user>เทอร์มินัลตามที่ระบุไว้ในคำตอบนั้นแม้ว่าฉันจะไม่ได้พยายามทำเอง


2

ฉันคิดว่านี่คือสิ่งที่คุณต้องการ:

adduser --disabled-password --shell /bin/bash --gecos "User" $username

คุณจะสามารถ

su $username

เพื่อรันคำสั่งในฐานะผู้ใช้นั้นใน / bin / bash หรือเชลล์ใด ๆ ที่คุณระบุ --gecos "ผู้ใช้" เพียงแค่ใส่ "ผู้ใช้" ลงในช่องแสดงความคิดเห็นเพื่อที่คุณจะไม่ได้รับพร้อมท์สำหรับข้อมูลนั้น คุณสามารถใส่สิ่งที่คุณต้องการลงในช่องนั้น

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