มีวิธีรันสคริปต์ / คำสั่งทุกครั้งที่ผู้ใช้เชื่อมต่อโดยใช้ ssh หรือไม่? มันสามารถกำหนดค่าทั่วโลก (เช่นเรียกใช้สคริปต์เมื่อเข้าสู่ระบบของผู้ใช้ใด ๆ )?
ฉันเจอคำถามเกี่ยวกับ Identica นี้ แต่ยังไม่มีคำตอบและอยากจะรู้ต่อไป
มีวิธีรันสคริปต์ / คำสั่งทุกครั้งที่ผู้ใช้เชื่อมต่อโดยใช้ ssh หรือไม่? มันสามารถกำหนดค่าทั่วโลก (เช่นเรียกใช้สคริปต์เมื่อเข้าสู่ระบบของผู้ใช้ใด ๆ )?
ฉันเจอคำถามเกี่ยวกับ Identica นี้ แต่ยังไม่มีคำตอบและอยากจะรู้ต่อไป
คำตอบ:
สำหรับผู้ใช้ทั้งหมดหรือผู้ใช้เฉพาะ? สำหรับผู้ใช้คนเดียวให้ตั้งค่าใน.bashrc
ไฟล์ สำหรับผู้ใช้ทั้งหมดตรวจสอบpam_exec
หากผู้ใช้เข้ามาจากsshd
คุณจะต้องเพิ่มบรรทัดต่อไปนี้/etc/pam.d/sshd
; ไฟล์อื่น ๆ ขึ้นอยู่กับแหล่งที่มา:
session optional pam_exec.so seteuid /path/to/my/hook.sh
เพื่อวัตถุประสงค์ในการทดสอบโมดูลจะรวมอยู่ในoptional
นั้นเพื่อให้คุณยังสามารถเข้าสู่ระบบหากมันล้มเหลว หลังจากที่คุณทำให้แน่ใจว่าการทำงานคุณสามารถเปลี่ยนไปoptional
required
จากนั้นเข้าสู่ระบบจะไม่สามารถดำเนินการได้หากการดำเนินการของ hook ของคุณไม่สำเร็จ
หมายเหตุ:เช่นเคยเมื่อคุณเปลี่ยนการกำหนดค่าล็อกอินให้เปิดเชลล์สำรองในพื้นหลังและทดสอบการเข้าสู่ระบบจากเทอร์มินัลใหม่
session include pam_exec.so seteuid /path/to/script
/etc/pam.d/system-remote-login
ถูกต้องหรือไม่
system-remote-login
หรือsshd
ขึ้นอยู่กับว่าผู้ใช้จะเข้ามาอย่างไร
auth optional pam_exec.so /path/to/my/hook.sh
ในการ/etc/pam.d/common-auth
ที่จะมีการแจ้งให้คุณทราบ PAM ของเหตุการณ์การตรวจสอบใด ๆ ที่เกิดขึ้น โปรแกรมนี้ยังสามารถส่งการแจ้งเตือนแบบพุชถึงคุณ: github.com/benjojo/PushAlotAuth
มีอีกวิธีหนึ่งที่มีผลกับผู้ใช้ที่ใช้ ssh ไม่ใช่คนในท้องถิ่น (ซึ่งอาจดีกว่าในสถานการณ์ฉุกเฉิน)
ดูตัวอย่างจากหน้าคน ssh ด้านล่าง
ในกรณีนี้ผู้ใช้สามารถแก้ไขไฟล์เองได้ (เช่น. bashrc)
~/.ssh/rc Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started. See the sshd(8) manual page for more information.
และนี่คือทั่วโลกและไม่สามารถแก้ไขได้โดยผู้ใช้ปกติ
/etc/sshrc Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started. See the sshd(8) manual page for more information.
/etc/ssh/sshd_config
(ดูman sshd_config
รายละเอียด)