ลืมรหัสผ่านสำหรับผู้ใช้บนเซิร์ฟเวอร์ Linux: ตั้งค่าใหม่ได้อย่างไร?


17

บนเซิร์ฟเวอร์ผู้ใช้ 16040 ทำรหัสผ่านหาย ฉันมีรหัสผ่านสำหรับรูท แต่ไม่มีรหัสผ่านสำหรับผู้ใช้ 16040 ฉันจะรีเซ็ตรหัสผ่านของเขาได้อย่างไร

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

passwd 16040
Changing password for 16040.
Current password for 16040@friesbie.com:

คำตอบ:


24

หากคุณเรียกใช้passwd 16040ในฐานะรูทคุณจะไม่ได้รับรหัสผ่านปัจจุบัน

chage -d 0 16040หลังจากเปลี่ยนรหัสผ่านที่คุณควรพิจารณาการออก นี่เป็นการกำหนดวันที่เปลี่ยนรหัสผ่านครั้งสุดท้ายในอดีต สมมติว่ารหัสผ่านถูกตั้งค่าให้หมดอายุในระบบของคุณสิ่งนี้จะบังคับให้ผู้ใช้เปลี่ยนรหัสผ่านหลังจากเข้าสู่ระบบซึ่งจะทำให้พวกเขามีโอกาสเลือกรหัสผ่านที่พวกเขารู้จักเท่านั้น


3

คุณควรออกpasswd 16040ในฐานะ root ( sudo passwd 16040หากผู้ใช้ของคุณอยู่ในไฟล์ sudoers) เพื่อเปลี่ยนรหัสผ่านของเขา / เธอ มันจะไม่ถามคุณในปัจจุบัน

หรือถ้าคุณมีการเข้าถึงทางกายภาพไปยังกล่องคุณสามารถผนวกเป็นพารามิเตอร์เคอร์เนลที่จะได้รับการเข้าถึงรากแล้วปัญหาinit=/bin/bashpasswd 16040


3
การมีพรอมต์คำสั่ง inline ค่อนข้างน่างงงวยและตีความผิดได้ง่ายว่าเป็นส่วนหนึ่งของคำสั่ง โปรดใช้ข้อความแจ้งในบล็อกราคาเท่านั้น นอกจาก# >นี้ค่อนข้างแปลกและที่นี่>ก็เชิญให้ตีความผิดเป็นส่วนหนึ่งของคำสั่ง - การปฏิบัติทั่วไปคือการใช้ง่าย#สำหรับroot-shells และ$สำหรับคนที่ไม่ใช่รูต
Andreas Wiese

คุณพูดถูกฉันได้แก้ไขคำตอบเพื่อความชัดเจน ขอบคุณ
peperunas

1

หากคุณไม่สามารถเข้าสู่ระบบโดยตรงในฐานะรูทคุณสามารถลอง

  • sudo /usr/bin/passwd 16040.
  • sudo -i และหลังจากนั้น /usr/bin/passwd 16040

ฉันถือว่าpasswdอยู่ใน / usr / bin (คุณสามารถตรวจสอบด้วยคำสั่งwhich passwd)


sudo bashสำหรับการเริ่มต้นrootเชลล์คือ (แม้ว่าจะเป็นเรื่องธรรมดา) จริง ๆ แล้วsudoการฝึกฝนที่ไม่ดีจริงๆ มันsudo -sหรือsudo -i(ไม่ใช่การเข้าสู่ระบบหรือ login-shell, resp.) สิ่งนี้จะให้เกียรติเชลล์เริ่มต้นที่คุณตั้งไว้/etc/passwdโดยไม่ต้องใส่ใจกับตัวเอง นอกจากนี้bashหากไม่มีเส้นทางที่สมบูรณ์เป็นความคิดที่ไม่ดีด้วยตัวเองเนื่องจากนี่จะเป็นหนึ่งในไบนารีปลอมตัวแรกที่ผู้ใช้ที่ประสงค์ร้ายจะใส่เข้าไปในที่$PATHอื่น
Andreas Wiese

ฉันเห็นด้วยเกี่ยวกับข้อกำหนดเส้นทางแบบเต็มและการใช้งานsudo -iและดังนั้นฉันจึงปรับเปลี่ยนคำตอบ ... แต่ถ้าคุณพูดเกี่ยวกับความปลอดภัยและความเป็นไปได้ของ Troian ที่ซ่อนอยู่ใน$PATHบางทีอาจจะดีกว่าที่จะหลีกเลี่ยงการใช้sudo -sตั้งแต่คุณเพิ่มอย่างน้อย$USER/binไดเรกทอรีและนามแฝงทั้งหมดที่คุณสามารถจินตนาการ ... :-)
Hastur

จุดดีแน่นอน แต่ขึ้นอยู่กับsudoการกำหนดค่า: กำหนดค่าเริ่มต้นมาพร้อมกับsudoไม่ให้$HOMEชุดตัวแปรดังนั้นคุณจะสิ้นสุดมี RC-ไฟล์ของคุณเองมาไม่ใช่$SUDO_USERของคน
Andreas Wiese
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.