คุณจะสร้างผู้ใช้ที่ไม่มีรหัสผ่านได้อย่างไร


22

ใน os X เป็นไปได้ที่จะมีผู้ใช้ที่ไม่มีรหัสผ่าน หากคุณตรวจสอบพวกเขาด้วยรหัสผ่านของพวกเขาแสดงเป็นdscl *นี้จะใช้สำหรับผู้ใช้ระบบเช่นผู้ใช้สำหรับฐานข้อมูลเช่นmysql, pgsqlฯลฯ อะไรที่ดีเกี่ยวกับเรื่องนี้ก็คือผู้ใช้เหล่านี้ไม่ปรากฏขึ้นที่หน้าจอเข้าสู่ระบบและคุณไม่สามารถเข้าสู่ระบบเป็นพวกเขาโดยไม่sudoฯลฯ

หลังจากลบผู้ใช้รายนั้นที่พยายามทำบางสิ่งออกไปฉันต้องการสร้างใหม่ แต่ทำไม่ได้ *ฉันจะจัดการเพื่อให้ได้ผู้ใช้ที่มีรหัสผ่านที่ว่างเปล่าและฉันสามารถตั้งรหัสผ่านเพื่อ แต่ไม่มีผลใด ๆ เหมือนข้างต้นเนื่องจากผู้ใช้ปรากฏบนหน้าจอเข้าสู่ระบบของฉัน

คุณจะสร้างผู้ใช้ดังกล่าวได้อย่างไร?


บน Linux คุณส่งผ่าน --disabled-password flag ไปยัง adduser บางที OS X อาจมีบางอย่างที่คล้ายคลึงกันในบรรทัดคำสั่ง?
BR

คุณหมายถึง; ผู้ใช้สามารถเข้าสู่ระบบโดยไม่ต้องใช้รหัสผ่านหรือไม่สามารถเข้าสู่ระบบได้เลยเพราะไม่มีการตั้งรหัสผ่าน?
Chris Huang-Leaver

1
ฉันสังเกตเห็นว่าคุณไม่ยอมรับคำตอบ ... ข้อกำหนดหนึ่งข้อที่จะไม่อยู่ในรายการ xdm ต่างๆคือมีหมายเลขผู้ใช้ที่ต่ำมาก ในหลาย ๆ ระบบuseraddเริ่มเพิ่ม id ที่ 1,000 และตัวจัดการการล็อกอินจะไม่แสดง id ผู้ใช้ด้านล่าง แต่ทุกอย่างด้านบน ดังนั้นแม้ว่าจะไม่ใช่คำตอบสำหรับคำถามนี้ แต่อาจเป็นวิธีการแก้ปัญหา โปรดทราบว่า 1,000 เป็นข้อได้เปรียบและอาจต่ำกว่าหรือสูงกว่าในการกระจายของคุณ เพื่อแก้ไขเพียงแค่แก้ไขรายการผู้ใช้ใน/etc/passwdการมี uid ที่ต่ำกว่า ตอนนี้ให้ฉันไปถามคำถามที่คล้ายกัน
xenoterracide

@xenoterracide: เมื่อฉันสร้างผู้ใช้ใหม่ฉันให้รหัสเดิมมันเป็นผู้ใช้ pgsql ที่ฉันลบซึ่งมีรหัสของหนึ่งสูงกว่า mysql ดังนั้นฉันแน่ใจว่ามันจะไม่มีผลกระทบใด ๆ ในกรณีนี้ แต่ขอบคุณสำหรับข้อมูลอย่างไรก็ตาม
googletorp

คำตอบ:


6

คุณสามารถเรียกใช้หลังจากการสร้างผู้ใช้ที่มีpasswd --delete <username> adduserหลังจากนี้คุณจะสามารถเข้าสู่ระบบโดยไม่ต้องป้อนรหัสผ่าน


4
ฉันคิดว่านั่นเป็นสิ่งที่ตรงกันข้ามกับสิ่งที่ถูกขอที่นี่
Shadur

ในตอนแรกฉันคิดว่านี่เป็นคำตอบที่ถูก (หรือดีที่สุด) จนกระทั่งฉันได้อ่านคำถามของ OP อีกครั้งซึ่งกล่าวถึง "ผู้ใช้ระบบ" และไม่ปรากฏใน "หน้าจอเข้าสู่ระบบ" วิธีนี้จะปรากฏขึ้นบนหน้าจอเข้าสู่ระบบและคุณสามารถ 'sudo' โดยใช้วิธีนี้
HidekiAI

3

ผู้ใช้ใน / etc / passwd พร้อมโฮมไดเร็กทอรีของ / dev / null และเชลล์ของ / sbin / nologin สามารถใช้สำหรับคำสั่ง sudo ing แต่ไม่สามารถล็อกอินได้จริง

จาก / etc / passwd ของฉัน

tcpdump:x:104:441:added by portage for tcpdump:/dev/null:/sbin/nologin

ฉันจำได้ว่าครึ่งนี้จะทำให้มันหายไปจากหน้าจอการเข้าสู่ระบบ XDM ด้วย แต่ฉันไม่ได้ใช้ XDM อีกต่อไปดังนั้นจึงเป็นการเดา :-)


นี่คือคำตอบที่ถูกต้องเนื่องจาก OP ขอบัญชีซึ่งคุณไม่สามารถ 'sudo' หรือแสดงขึ้นบน "หน้าจอเข้าสู่ระบบ" โดยการตั้งค่าเป็น '/ sbin / nologin' สำหรับเชลล์ สิ่งหนึ่งที่จะต้องทราบเป็นเพราะ OP ถาม "ใช้ระบบ" ยังควรระบุว่า 'useradd --system' ควรจะใช้ในการสร้าง UID ในจำนวนน้อย (ในขณะที่การขนส่ง / ebuild ไม่)
HidekiAI

3

คุณสามารถใช้usermodซึ่งจะปิดการใช้งานรหัสผ่านใช้มากกว่า!*

usermod -L <username>

จากหน้าคนบน usermod:

-L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectively disabling the password.

2

การใช้dsclจะให้

dscl . -passwd /Users/myuser ""

สิ่งนี้ต่างจากคำตอบส่วนใหญ่ข้างต้น ... ใช้งานได้จริงสำหรับฉัน
GroovyCakes

1

ฉันไม่แน่ใจเกี่ยวกับ OSX แต่ใน FreeBSD คุณสามารถใช้:

pw add user mymuser -g mygroup -s /nonexistent -h -

ค่าของการ-ส่งผ่านไปยัง-hตัวเลือกบอกpwให้ตั้งค่าฟิลด์รหัสผ่านใน master.passwd เป็น*ดังนั้นจึงสร้างบัญชีที่ไม่มีการเข้าสู่ระบบ การตั้งค่าเชลล์ไม่จำเป็นอย่างเคร่งครัด แต่หลีกเลี่ยงการตรวจสอบเชลล์จาก /etc/pw.conf


1

การปล่อยให้ฟิลด์รหัสผ่านว่างเปล่าสำหรับผู้ใช้ในpasswdไฟล์จะทำงาน



-1

บน Linux ฉันใช้:

sudo useradd -r -p \* -s /sbin/nologin -c "Comment My Daemon,,,"  -d "/var/uuu"  myuser

ทางเลือกถัดไปต้องเป็นแพลตฟอร์มข้าม (ถ้าไม่มี-rตัวเลือก):

sudo useradd -K UID_MIN=100 -K UID_MAX=499 -K GID_MIN=100 -K GID_MAX=499 -p \* -s /sbin/nologin -c "Comment My Daemon,,,"  -d "/var/uuu"  myuser

ที่นี่:

  • รหัสผ่านใน/ etc / shadowจะ setted *ไป ไม่-p \*ว่ามันจะเป็น!

  • เชลล์จะเป็น/sbin/nologin(คุณสามารถใช้/bin/falseเกินไป แต่ฉันคิดว่า/binอาจจะติดตั้งช้าเกินไปในบางระบบ) ดังนั้นผู้ใช้จึงไม่สามารถเข้าสู่ระบบได้

  • -d กำหนด homedir ของผู้ใช้

โน๊ตสำคัญ

ที่นี่-rสร้างผู้ใช้ระบบ:

การตั้งค่าสถานะนี้ใช้เพื่อสร้างบัญชีระบบ นั่นคือผู้ใช้ที่UIDต่ำกว่าค่าที่UID_MINกำหนดไว้ใน/etc/login.defsและรหัสผ่านไม่หมดอายุ โปรดทราบว่า useradd จะไม่สร้างไดเรกทอรีบ้านดังกล่าวใช้โดยไม่คำนึงถึงการตั้งค่าเริ่มต้นใน/etc/login.defs คุณต้องระบุ-mตัวเลือกหากคุณต้องการให้โฮมไดเรกทอรีสำหรับบัญชีระบบที่จะสร้าง นี้เป็นตัวเลือกที่เพิ่มขึ้นโดย Red Hat

ตัวเลือก-rอาจไม่ปรากฏในระบบของคุณ ดังนั้นเพื่อสร้างผู้ใช้ระบบที่ไม่ปรากฏบนหน้าจอเข้าสู่ระบบของคุณฉันคิดว่าคุณสามารถใช้-Kตัวเลือก -K UID_MIN=100 -K UID_MAX=499สิ่งที่ชอบ: คุณสามารถลองตัวเลือกเช่น:

-K UID_MAX=$(cat /etc/login.defs | grep ^UID_MIN | awk '{print $2}')

เพื่อกำหนดคุณโดยอัตโนมัติUID_MAXแต่ฉันไม่ได้ทดสอบกับ OS X คุณจะต้องใช้SYS_UID_MAXเพื่อUID_MINถ้ามันไม่ได้แสดงความคิดเห็นใน/etc/login.defs

เช่นเดียวกับGID_MAXและGID_MINสำหรับรหัสกลุ่มระบบ (ดูGID_MINและหากไม่แสดงข้อคิดเห็นSYS_GID_MAXใน/etc/login.defsเพื่อใช้เป็นGID_MAX)

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