ฉันจะตั้งค่าการอนุญาตเริ่มต้นสำหรับ SFTP สำหรับเซิร์ฟเวอร์ Ubuntu ได้อย่างไร


16

เรามีเซิร์ฟเวอร์ Ubuntu 10.04 ฉันจะตั้งค่าอย่างไรเพื่อให้ไฟล์ใหม่ที่สร้าง (หรือคัดลอก) ผ่าน SFTP หรือ SSH มีสิทธิ์ g + rw และ g + rwx (ตามความเหมาะสม)

ฉันยังใช้ setgid (chmod g + s) เพื่อให้พวกเขาสืบทอดเจ้าของกลุ่มที่เหมาะสม

คำตอบ:


12

ใน / etc / ssh / sshd_config คุณสามารถผ่านการตั้งค่าสถานะและค่าใน (-u 0002) เช่นต่อไปนี้เพื่อตั้งค่า umask:

Subsystem sftp /usr/lib/openssh/sftp-server -u 0002

ผนวก -u 0002 เข้ากับบรรทัด sftp ของระบบย่อยที่มีอยู่ของไฟล์คอนฟิกูเรชัน

หลังจากนั้นคุณจะต้องรีสตาร์ท ssh เพื่อให้การเปลี่ยนแปลงมีผล:

service ssh restart

สิ่งนี้ใช้ได้กับ OpenSSH เวอร์ชันที่ใหม่กว่าเท่านั้น แต่ควรเป็นทางออกที่ต้องการหากเป็นไปได้
Andrew B

2
ใช้งานได้เฉพาะในกรณีที่คุณต้องการการอนุญาตที่เข้มงวดกว่าสิ่งที่ลูกค้ากำหนดไว้เท่านั้น
Joost

อย่างที่ Joost กล่าวสิ่งนี้ไม่ได้ช่วยในการบังคับใช้สิทธิ์ในการเขียนแบบกลุ่ม ฉันจะช่วยห้ามการเขียนเป็นกลุ่ม
เที่ยวบิน

Subsystem sftp internal-sftpตามเอกสารที่ผ่านมาตัวเลือกเดียวที่สามารถนำมาใช้กับ
underscore_d

10

ใน / etc / ssh / sshd_config เปลี่ยนสิ่งต่อไปนี้:

Subsystem sftp /usr/lib/openssh/sftp-server

ถึง:

Subsystem sftp /bin/sh -c 'umask 0002; exec /usr/libexec/openssh/sftp-server'

Soure: http://jeff.robbins.ws/articles/setting-the-umask-for-sftp-transactions


1
มันเป็นการดีกว่าที่จะวางexecก่อนขั้นสุดท้าย/usr/.../sftp-serverเพื่อที่คุณจะได้ไม่มีshกระบวนการที่ไร้ประโยชน์อยู่
user1686

นอกจากนี้ umask เป็นเพียงตัวเลข; สามารถเขียนได้สั้นลง0002 02
user1686

ฉันคิดว่า umask เป็นเลขฐานแปด แต่ขอบคุณสำหรับส่วน exec
wag2639

2
ใช่ umasks เป็นฐานแปด นั่นไม่ได้หมายความว่าคุณต้องการเลขศูนย์นำหน้าสามอัน - อันเดียวก็เพียงพอแล้ว (ในความเป็นจริงumaskคำสั่งไม่จำเป็นใด ๆ zeroes ชั้นนำก็มักจะอ่านอาร์กิวเมนต์เป็นตัวเลขฐานแปด.) ... แต่ในความคิดที่สองอาจจะ0002เป็นที่ชัดเจนที่จะเข้าใจ
user1686

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