ฉันจะบอกได้อย่างไรว่าตั้งรหัสผ่านของฉันแล้ว?


19

ฉันใช้เซิร์ฟเวอร์นี้มาสองสามเดือนแล้ว ในตอนแรกฉันส่งผู้ดูแลระบบกุญแจสาธารณะของฉันและเขาตั้งค่าบัญชีให้ฉันและฉันเพิ่งใช้กุญแจ ssh เพื่อเข้าสู่ระบบฉันไม่มีรหัสผ่านในตอนแรก

passwdตั้งแต่นั้นมาผมอาจจะหรืออาจจะไม่ได้ตั้งค่ารหัสผ่านการใช้ ตอนนี้ถ้าฉันใช้passwdฉันเห็นสิ่งนี้

$ passwd
Changing password for user myusername.
Changing password for myusername.
(current) UNIX password:

ในขณะที่ดูเหมือนว่าจะแนะนำว่าฉันมีรหัสผ่านฉันไม่มีหน่วยความจำของการทำเช่นนี้

ฉันจะบอกได้อย่างชัดเจนว่ารหัสผ่านของฉันถูกตั้งค่าไว้อย่างไร

แก้ไข:
ฉันไม่สามารถเข้าสู่ระบบหรือเปลี่ยนรหัสผ่านได้เพราะฉันไม่รู้ว่ารหัสผ่านคืออะไร (รหัสผ่านว่างเปล่าใช้งานไม่ได้) Distro คือ Fedora ที่ปล่อยออกมา 20 (Heisenbug)


ลองเข้าสู่ระบบโดยไม่ต้องใช้รหัสผ่าน (และไม่มีรหัสส่วนตัว ssh แน่นอน)
didierc

ฉันไม่สามารถเข้าสู่ระบบได้เพราะฉันไม่ทราบรหัสผ่านและว่างเปล่าไม่ทำงาน ฉันเพิ่มข้อมูลนี้ในคำถามเดิม
แมวเพดาน

1
บนคอนโซลเข้าสู่ระบบรหัสผ่านเปล่าจะเหมือนกับรหัสผ่าน
didierc

คุณจะได้รับพรอมต์รหัสผ่านนี้แม้ว่าจะไม่มีการกำหนดรหัสผ่านสำหรับบัญชี หากไม่มีการกำหนดค่ารหัสผ่านpasswdจะบ่นรหัสผ่านผิดไม่ว่าคุณจะพิมพ์อะไร
Gilles 'หยุดความชั่วร้าย'

ฉันได้ตรวจสอบแล้วว่าใน vanilla Fedora 20 โดยใช้รหัสผ่านเงาท้องถิ่นpasswdจะไม่ถามรหัสผ่านปัจจุบันของคุณหากคุณไม่มี อีกวิธีในการตรวจสอบคือการพิมพ์su myusername; หากไม่มีรหัสผ่านก็จะไม่ขอรหัสผ่าน แต่สิ่งนี้สามารถถูกแทนที่ได้โดยผู้ดูแลระบบตัวอย่างเช่นโดยการลบnullokตัวเลือกจากpam_unixรายการใน/etc/pam.d/*ซึ่งในกรณีนี้ผู้ที่ไม่ใช่ผู้ดูแลระบบไม่สามารถบอกได้ว่าใครมีรหัสผ่านและใครไม่ยกเว้นยกเว้นอาจทำการทดสอบเวลา
Mark Plotnick

คำตอบ:


31

วิธีที่ดีที่สุดคือด้วยคำสั่งต่อไปนี้:

passwd --status username

จากมนุษย์passwd:

แสดงข้อมูลสถานะบัญชี ข้อมูลสถานะประกอบด้วย 7 ฟิลด์ ฟิลด์แรกคือชื่อล็อกอินของผู้ใช้ ฟิลด์ที่สองระบุว่าบัญชีผู้ใช้มีรหัสผ่านที่ถูกล็อค (L) ไม่มีรหัสผ่าน (NP) หรือมีรหัสผ่านที่ใช้งานได้ (P) ฟิลด์ที่สามแสดงวันที่เปลี่ยนรหัสผ่านครั้งล่าสุด สี่ฟิลด์ถัดไปคืออายุขั้นต่ำอายุสูงสุดระยะเวลาการเตือนและช่วงเวลาที่ไม่มีการใช้งานสำหรับรหัสผ่าน อายุเหล่านี้แสดงเป็นวัน

ดังนั้นหากฟิลด์เอาต์พุตที่สองคือNPดังนั้นผู้ใช้นั้นจะไม่ได้ตั้งรหัสผ่าน


ฉันได้$ passwd --status Only root can do that.
แมวเพดาน

sudo passwd username --statusในกรณีนี้ลอง
jherran

ฉันได้รับ$ sudo passwd myusername --status [sudo] password for myusername:แต่เนื่องจากฉันไม่ทราบรหัสผ่านฉันไม่สามารถดำเนินการต่อได้
แมวเพดาน

ผมทดสอบคำสั่งเดิมของฉันและควรทำงานได้ดีกับผู้ใช้ที่สร้างขึ้นใหม่โดยไม่ต้อง perms พิเศษ: ผลตอบแทน$ passwd --status test test P 02/15/2015 0 99999 7 -1
jherran

แปลก. ฉันสงสัยว่าผู้ดูแลระบบได้ตั้งค่าไว้ในลักษณะที่ไม่ได้มาตรฐานหรือไม่
แมวเพดาน

4

คุณสามารถทดสอบได้ 2 วิธี

  1. ทันทีหลังจากที่คุณเปลี่ยนรหัสผ่านในฐานะประเภทรูloginทที่จะนำคุณเข้าสู่การแจ้งให้เข้าสู่ระบบ / รหัสผ่าน

  2. คุณกำลังใช้รหัสผ่านเงาขึ้นอยู่กับอัตราต่อรองของระบบของคุณ ไฟล์ที่อยู่ใน/etc/shawdowนั้นคุณสามารถดูในไฟล์นั้นเพื่อดูว่าบัญชีของคุณมีการเปลี่ยนแปลงหรือไม่

นี่คือตัวอย่างของบัญชีที่ไม่มีชุดรหัสผ่าน:

postgres: :16462:0:99999:7:::

นี่คือสิ่งที่อาจมีลักษณะสำหรับผู้ใช้ที่มีรหัสผ่าน:

dustin:$6$TQ8e8o92$T9KWfcEVeIpDytW/zSAZzM4512wd/DiiuaYwrYWheH3LYpOsISdRxrCLvPqJZZ66QqdetmaV0ALQohx8nQPFKK0:16425:0:99999:7:::

ขอให้สังเกตระหว่างที่: :เป็นรหัสผ่านที่เข้ารหัสและสำหรับบัญชี postgres มันไม่มีอะไร


สำหรับ # 1 ฉันไม่สามารถเปลี่ยนรหัสผ่านได้เนื่องจากฉันไม่รู้ว่ารหัสผ่านคืออะไร passwd: Authentication token manipulation errorถ้าฉันใส่ในที่ว่างเปล่ามันบอกว่า สำหรับ # 2 /etc/shawdowผมไม่ได้มี มี/etc/shadowแต่ได้รับอนุญาตเป็น 000 (ไม่แน่ใจว่าเรื่องนี้) ฉันลืมที่จะพูดถึงว่าฉันมี Fedora รุ่น 20 (Heisenbug) น่าจะมีข้อมูลเหล่านี้ในคำถามเดิม
แมวเพดาน

ข้อผิดพลาดโทเค็นของคุณมีแนวโน้มว่ามาจากการอนุญาตที่ไม่ถูกต้อง คุณอยู่ในโหมด usermode เดียวหรือไม่? เมื่อคุณบูทเครื่องมันเป็นการบู๊ตปกติ? นอกจากนี้ยังมีประเภทการตรวจสอบเพียงแค่ "ติด" คุณต้องการให้แน่ใจว่าทุกสิ่งที่ติดตั้งเป็น RW (อ่านและเขียน)
ดัสตินซันส์

นอกจากนี้ยังเป็นการอนุญาตที่ผิดนี่คือสิ่งที่ distro?
ดัสตินฮาร์โกรฟ

ฉันไม่คิดว่าเซิร์ฟเวอร์อยู่ในโหมดผู้ใช้คนเดียว ฉันยังคงสามารถเข้าสู่ระบบโดยใช้ข้อมูลประจำตัวของ SSH และฉันสามารถดูผู้ใช้อื่น ๆ whoที่มี ทุกอย่างที่ระบุไว้ในถูกระบุว่าเป็นmount rwDistro คือ Fedora ที่ปล่อย 20 (Heisenbug)
แมวเพดาน

1

ลองใช้สิ่งต่อไปนี้:

passwd -S

จาก passwd (1) man page เราอ่าน:

-S รายงานสถานะรหัสผ่านในบัญชีที่มีชื่อ ส่วนแรกระบุว่าบัญชีผู้ใช้ถูกล็อค (LK) ไม่มีรหัสผ่าน (NP) หรือมีรหัสผ่านที่มีอยู่หรือถูกล็อค (PS) ส่วนที่สองให้วันที่เปลี่ยนรหัสผ่านครั้งสุดท้าย ส่วนถัดไปคืออายุขั้นต่ำอายุสูงสุดระยะเวลาการเตือนและช่วงเวลาที่ไม่มีการใช้งานสำหรับรหัสผ่าน


0

คุณอาจต้องการดูไฟล์ / etc / passwd ฟิลด์ที่สองของผู้ใช้ระบุรหัสผ่าน หากไม่มีสิ่งนี้คุณอาจไม่มีรหัสผ่านสำหรับการเข้าสู่ระบบของคุณ ในทางกลับกันหากคุณมี x ในฟิลด์นี้คุณมีรหัสผ่านที่เกี่ยวข้องและอาจเป็นไฟล์ / etc / shadow


ขอบคุณ! มี x ฉันเดาว่าฉันมีรหัสผ่าน ไม่มี/etc/shadowไฟล์แม้ว่า
แมวเพดาน

1
@ceilingcat หากคุณเห็นxนั่นไม่ได้บอกอะไรคุณเกี่ยวกับการตั้งรหัสผ่าน คุณต้องดู/etc/shadow(ซึ่งต้องเป็นราก)
Gilles 'หยุดความชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.