สร้างผู้ใช้รีโมตเท่านั้นใน OS X หรือไม่


15

ฉันต้องการสร้างผู้ใช้บน OS X ที่มีสิทธิ์เข้าสู่ระบบ ssh จากระยะไกลซึ่งพวกเขาสามารถเข้าถึงโฟลเดอร์ / พา ธ / ไปยัง / สินค้า / / และเพิ่ม / แก้ไข / ลบไฟล์ด้วยตนเองหรือผ่าน rsync ขณะที่ส่วนที่เหลือของ Mac ถูก จำกัด (นอกไดเรกทอรีหลักของพวกเขา)

เป็นการดีที่ผู้ใช้ไม่ควรมีสิทธิ์เข้าถึงเพื่อเรียกใช้โปรแกรมอื่นใดนอกจาก rsync

ผู้ใช้รายนี้กำลังจะถูกใช้โดยเซิร์ฟเวอร์การสร้างเพื่อเข้าสู่ระบบและปรับใช้ไฟล์ ฉันต้องการใช้คู่คีย์สาธารณะ / ส่วนตัวดังนั้นสคริปต์สร้างไม่จำเป็นต้องป้อนรหัสผ่าน

ฉันจะทำสิ่งนี้ได้อย่างไร

คำตอบ:


9

วิธีที่ดีที่สุดในการทำเช่นนี้คือการสร้างคุก chroot สำหรับผู้ใช้ ฉันจะล้างคำตอบที่นี่เมื่อฉันกลับถึงบ้าน แต่ฉันโพสต์โซลูชันในบล็อกของฉัน

https://thefragens.com/chrootd-sftp-on-mac-os-x-server/

ด้านล่างนี้เป็นคำแนะนำส่วนใหญ่จากโพสต์ด้านบน

ขั้นแรกคุณควรสร้างผู้ใช้ใหม่ใน Admingroup Workgroup และกำหนดสิทธิ์การเข้าถึง SSH ผ่านทาง Server Admin หรือกำหนดให้กับกลุ่มที่มีสิทธิ์การเข้าถึง SSH การอภิปรายเพิ่มเติมอยู่ด้านล่าง

จาก Terminal ให้ปิดเครื่องทันที

sudo cp /etc/sshd_config /etc/sshd_config.bkup

sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot

ผู้ใช้ใหม่ที่เพิ่มเข้ามาทุกรายจะได้รับสิ่งต่อไปนี้

sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2

ทุกโฟลเดอร์มันเส้นทางไปยังคุก chroot rootจะต้องเป็นเจ้าของโดย ฉันไม่คิดว่ามันเป็นสิ่งที่กลุ่มโฟลเดอร์เป็นสิ่งที่ฉันได้ทำไปแล้ว

  1. การสำรองข้อมูล /etc/sshd_config
  2. เปลี่ยนความเป็นเจ้าของของไดเรกทอรีรากเป็น root
  3. เปลี่ยนการอนุญาตของไดเรกทอรีรากเป็น 755
  4. สร้างโฟลเดอร์ chroot
  5. สร้างโฟลเดอร์ผู้ใช้ภายในโฟลเดอร์ chroot
  6. สร้างโฟลเดอร์ภายในโฟลเดอร์ผู้ใช้ที่ผู้ใช้สามารถแก้ไขได้
  7. กำหนดความเป็นเจ้าของและสิทธิ์

ตอนนี้แก้ไข/etc/sshd_configต่อไปนี้

#Subsystem  sftp    /usr/libexec/sftp-server
Subsystem   sftp    internal-sftp

Match User user
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/user

สิ่งนี้สร้างคุก chroot ซึ่งเมื่อผู้ใช้ล็อกอินจะดร็อปมันลงในโฟลเดอร์/chroot/userในโฟลเดอร์นั้นเป็นโฟลเดอร์ที่พวกเขาสามารถเพิ่มสิ่งต่าง ๆ ลงไป/chroot/user/scratchpadได้

หากคุณต้องการสร้างกลุ่มในผู้ดูแลระบบเวิร์กกรุ๊ปสำหรับ 'ผู้ใช้ Chroot' จากนั้นเพิ่มผู้ใช้ใหม่ที่คุณสร้างในผู้ดูแลระบบเวิร์กกรุ๊ปในกลุ่มคุณจะไม่ต้องแก้ไข/etc/sshd_configไฟล์ต่อไป แทนการข้างต้นเพิ่มต่อไปนี้ ตรวจสอบให้แน่ใจว่าคุณเพิ่มกลุ่ม 'ผู้ใช้ Chroot' ลงใน ACH การเข้าถึง ACL ใน Server Admin

Match Group chrootusers
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/%u

หากต้องการทดสอบว่าข้างต้นใช้งานได้หรือไม่ให้ออกดังต่อไปนี้จากเครื่องเทอร์มินัล

$ sftp user@domain.com
Password:
sftp>

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