ไฟล์ที่อัพโหลด SFTP เซิร์ฟเวอร์มีสิทธิ์ผิด


4

ฉันพยายามคิดออกว่ามีอะไรผิดปกติกับสิทธิ์ของไฟล์ เมื่อฉันอัพโหลดไฟล์โดยใช้ FileZilla ไฟล์ทั้งหมดจะได้รับสิทธิ์ -rw-r - r-- ฉันต้องการให้พวกเขามี -rwxr-xr-x ฉันได้ลองใช้ umask เพื่อแก้ไขสิทธิ์ แต่มีบางอย่างผิดปกติ ฉันได้อ่านแล้วว่าคุณสามารถเปลี่ยนสิทธิ์ด้วย umask เช่นนี้:

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

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

ด้วยการเปลี่ยนแปลงนี้ฉันได้รับไฟล์ด้วย -rw-rw-r-- เท่าที่ฉันรู้ 0 ควรให้สิทธิ์ทั้งหมดหรือไม่ แต่ฉันได้รับ rw เท่านั้น

มีอะไรผิดปกติ? ฉันใช้ Debian


ลอง 0002 แทน 002
vautee

ที่ยังส่งผลในการ -rw-RW-r--
Firze

แค่จำไว้ว่า ... สองสิทธิ์ไม่ได้ทำผิด
jammypeach

คำตอบ:


10

หากไคลเอนต์ SFTP ไม่ได้ระบุการอนุญาตสำหรับไฟล์ที่อัพโหลดเซิร์ฟเวอร์ OpenSSH SFTP จะกำหนดสิทธิ์ 0666 ให้กับไฟล์ที่สร้างขึ้นใหม่ (ลบด้วย umask 0002 ทำให้เป็น 0664)

นี่เป็นรหัสฮาร์ดโค้ดคุณไม่สามารถเปลี่ยนได้ ดูprocess_open()ฟังก์ชั่นในsftp-server.cของ OpenSSH และแม้ว่าหากไม่ได้ระบุไว้อย่างชัดเจน 0666 ยังคงเป็นค่าเริ่มต้น * nix สำหรับไฟล์คุณจะไม่สามารถเปลี่ยนแปลงสิ่งนี้ด้วย umask (เป็นจริงโดยทั่วไปไม่ใช่แค่สำหรับ OpenSSH)

ดูเพิ่มเติมที่เซิร์ฟเวอร์ OpenSSH SFTP ใช้ umask หรือสงวนสิทธิ์ฝั่งไคลเอ็นต์หลังจากคำสั่ง put (สภาพแวดล้อม chrooted) หรือไม่

โปรดทราบว่า umask ของคุณผิดจริง หากคุณต้องการ 0644 ให้ใช้ umask 0022 ไม่ใช่ 0002

FileZilla ไม่เคยระบุสิทธิ์สำหรับไฟล์ที่อัพโหลด สิ่งที่ส่งผลให้เกิดพฤติกรรมที่คุณกำลังประสบอยู่


เพื่อให้ได้สิทธิ์ที่คุณต้องการ:

  • ด้วย FileZilla คุณสามารถเปลี่ยนการอนุญาตไฟล์ได้ด้วยตนเองเท่านั้นหลังจากการอัพโหลดโดยใช้คำสั่งการอนุญาตไฟล์จากเมนูบริบทไฟล์ระยะไกล

    การเปลี่ยนการอนุญาตใน FileZilla

  • ใช้ไคลเอนต์ SFTP ที่อนุญาตให้ระบุสิทธิ์สำหรับไฟล์ที่อัพโหลด

    ตัวอย่างเช่น WinSCP อนุญาต

    ดูhttps://winscp.net/eng/docs/ui_transfer_custom

    การตั้งค่าการอนุญาตสำหรับไฟล์ที่อัพโหลดใน WinSCP

    (ฉันเป็นผู้เขียน WinSCP)


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