local_umask และ file_open_mode ทำงานอย่างไร


11

ฉันมีปัญหาบางอย่างเกี่ยวกับ filepermissions เมื่อผู้ใช้ภายในอัปโหลดไฟล์ผ่าน vsftp ไปยังเซิร์ฟเวอร์

ฉันต้องการไฟล์ที่จะมีสิทธิ์ทั้งหมด 766 หลังจากการทดลองและข้อผิดพลาดมากมายฉันพบว่าฉันต้องตั้งค่าเช่นนี้:

local_umask=011
file_open_mode=0777

แต่ฉันไม่รู้ว่าทำไมผลลัพธ์ถึงได้รับอนุญาต 766 ครั้ง มีใครอธิบายเรื่องนี้ได้บ้าง

คำตอบ:


13

vsftpd daemeon จะสร้างสิทธิ์ของแฟ้มเป็น0777 จากนั้นจะลบlocal_umask( 0011 ) umask จะลบสิทธิ์ที่คุณไม่ต้องการให้กับผู้ใช้เป็นหลัก ผลนี้ในแฟ้มสิทธิ์ของผู้ใช้ที่จะตั้งไว้ที่0766

สำหรับข้อมูลเพิ่มเติมโปรดดูที่บทความนี้เกี่ยวกับสิทธิ์ของแฟ้ม


2
ใช่ฉันเข้าใจแล้วฉันรู้เคล็ดลับ แต่มันทำงานอย่างไร ทำไมฉันถึงตั้งค่าไม่ได้ 766
OrangeTux

1

ค่า umask จะถูกลบออกจากการตั้งค่าโหมดเปิด หากคุณไม่ได้ระบุค่า umask ที่กำหนดเองจะใช้ค่าเริ่มต้น (077) ซึ่งนำไปสู่ผลลัพธ์ที่คุณไม่ต้องการ


-1

คุณได้รับการอนุญาตนี้เนื่องจาก:

1) การตั้งค่า local_umask = 011 คุณบอกกับ vsftp เพื่อตั้งค่า:

0: อ่านเขียนและดำเนินการ 1: อ่านและเขียน 1: อ่านและเขียน

นั่นเท่ากับ chmod 766

2) ค่าของ file_open_mode = 0777 ไม่มีการแยกวิเคราะห์

ที่นี่คุณสามารถพบคำอธิบายที่ดีมากเกี่ยวกับ umask และวิธีใช้: https://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html


นี่ไม่ใช่คำตอบสำหรับคำถาม (1) OP ต้องการป้องกันไฟล์ 766 ไม่ใช่ 666 ดังนั้นคุณจึงจัดการกับสถานการณ์ที่ผิด (2) OP มีการกำหนดค่าที่ใช้งานได้ คำถามคือถามว่าทำไมมันทำงาน คุณยังไม่ได้พูดถึงเรื่องนั้น
สกอตต์

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