Score:0

ลบคำสั่งลบออกจาก SFTP/WinSCP

ธง kh

มีวิธีใดบ้างที่เราสามารถจำกัดผู้ใช้รายใดรายหนึ่งให้ลบไฟล์/โฟลเดอร์ที่มีสิทธิ์ทั้งหมดจาก WinSCP

ขอบคุณล่วงหน้า.

Nate T avatar
it flag
สิทธิ์ทั้งหมดโดยอ้างอิงถึงผู้ใช้หรือโฟลเดอร์?
Neha avatar
kh flag
ผู้ใช้ @Nate T มีสิทธิ์เต็มที่ในไดเร็กทอรีนั้น....ข้อกำหนดของเราคือผู้ใช้จะไม่สามารถลบไฟล์จากโฟลเดอร์นั้นจาก winscp.....บนเซิร์ฟเวอร์ linux เราได้ตั้งค่าคำสั่ง acl สำหรับ rm และใช้งานได้ ก็ได้.......แต่ผู้ใช้สามารถลบไฟล์จาก winscp ได้....ดังนั้นเราจึงต้องการจำกัดคำสั่งการลบออกจาก winscp...
Nate T avatar
it flag
คุณต้องเปิดพอร์ต 22 ไว้หรือไม่ ผู้ใช้รายนี้จำเป็นต้องเข้าถึงผ่าน SSH ด้วยเหตุผลอื่นใด หรือผู้ใช้รายอื่นเข้าถึงผ่าน SSH หรือไม่
Nate T avatar
it flag
นอกจากนี้ คุณมีสิทธิ์เข้าถึงไคลเอ็นต์ที่คุณพยายามจำกัด (เป็นแบบโลคัลหรือรีโมต) หรือไม่ ฉันคิดว่าฉันสามารถตอบได้ แต่ถ้าไม่มีรายละเอียดเพิ่มเติมฉันก็ไม่แน่ใจ โปรดระบุรายละเอียดเหล่านี้ และหากฉันต้องอัปเดตคำตอบ ฉันจะดำเนินการให้
muru avatar
us flag
คุณใช้ ACL อะไรกันแน่?
cn flag
คุณหมายถึงอะไรโดย "ลบ"? ลบไฟล์จริงหรือป้องกันการล้างไฟล์ (ซึ่งโดยพื้นฐานแล้วจะเป็นการลบด้วยแม้ว่าจะเป็นเนื้อหาก็ตาม)
cn flag
วิธีการ: สร้างตัวตรวจสอบไดเร็กทอรี (มีเช่นโมดูล python สำหรับสิ่งนี้) ในไดเร็กทอรีที่คุณต้องการ ที่ช่วยให้คุณสามารถปิดใช้งานการลบและยังช่วยให้คุณสามารถจับได้ว่ามีคนลบบรรทัดออกจากไฟล์
hr flag
*"บนเซิร์ฟเวอร์ linux เราได้ตั้งค่า acl สำหรับคำสั่ง rm"* คุณอาจโชคดีกว่าในการตั้งค่า ACL ที่เหมาะสมบนไดเร็กทอรีที่มีไฟล์ที่คุณต้องการปกป้อง - ข้อจำกัดเกี่ยวกับคำสั่งมักจะถูกหลีกเลี่ยงได้ง่าย (เช่น ผู้ใช้ไม่สามารถเรียกใช้ `rm` แต่สามารถรัน `find -delete` ได้)
Neha avatar
kh flag
@เนท ที คุณต้องเปิดพอร์ต 22 ไว้หรือไม่ ผู้ใช้รายนี้จำเป็นต้องเข้าถึงผ่าน SSH ด้วยเหตุผลอื่นใด หรือผู้ใช้รายอื่นเข้าถึงผ่าน SSH หรือไม่ ---------- ใช่ เราจำเป็นต้องเปิดพอร์ต 22 ไว้ ใช่ ผู้ใช้จำเป็นต้องเข้าถึงโดย SSH เพื่อคัดลอกไฟล์ จากเซิร์ฟเวอร์ระยะไกลไปยังเครื่องท้องถิ่นและในทางกลับกัน ....ใช่ ผู้ใช้รายอื่นก็เข้าถึงผ่าน SSH เช่นกัน
Neha avatar
kh flag
@เนท ที นอกจากนี้ คุณมีสิทธิ์เข้าถึงไคลเอ็นต์ที่คุณพยายามจำกัด (เป็นแบบโลคัลหรือรีโมต) หรือไม่ ฉันคิดว่าฉันสามารถตอบได้ แต่ถ้าไม่มีรายละเอียดเพิ่มเติมฉันก็ไม่แน่ใจ โปรดระบุรายละเอียดเหล่านี้ และหากฉันต้องอัปเดตคำตอบ ฉันจะดำเนินการให้-------------- คำตอบนั้นห่างไกล
Nate T avatar
it flag
ผู้ใช้คนเดียวกันนี้ที่ต้องการการจำกัดก็ต้องการการเข้าถึงการอ่าน ssh หรือผู้ใช้รายอื่นต้องการหรือไม่ (หรือทั้งคู่?)
Nate T avatar
it flag
อัปเดตคำตอบของฉัน หวังว่าสิ่งนี้จะดีขึ้นสำหรับคุณ
Neha avatar
kh flag
@เนท ผู้ใช้คนเดียวกันนี้ที่ต้องการการจำกัดก็ต้องการการเข้าถึงการอ่าน ssh หรือผู้ใช้รายอื่นต้องการหรือไม่ (หรือทั้งสองอย่าง?) â ใช่ นี่คือผู้ใช้คนเดียวกับที่เราจำเป็นต้องจำกัดการดำเนินการลบจาก putty และจาก winscp
Neha avatar
kh flag
@เนท ที ข้อกำหนดของเราคือผู้ใช้ไม่ควรดำเนินการลบไฟล์/ไดเร็กทอรีใดๆ จาก winscp หรือจาก putty (สำหรับ putty เราจำกัดจาก acl).....แม้ว่าเขา/เธอจะมีสิทธิ์เต็มที่ในไฟล์/ไดเร็กทอรี ............
Neha avatar
kh flag
@MartinPrikryl ไม่มีอะไรที่เหมือนกับ "ข้อ จำกัด สำหรับผงสำหรับอุดรู" PuTTY เป็นเพียงเทอร์มินัล SSH คงจะดีถ้าคุณบอกเราว่าคุณทำอะไรกันแน่---- เราได้ตั้งค่า acl... จากคำสั่งนี้ "/bin/setfacl -m u:john:--- /bin/rm"
tr flag
แต่ `/bin/rm` ไม่ใช่วิธีเดียวในการลบไฟล์! ตามที่ @steeldriver แสดงความคิดเห็นแล้ว มี `find -delete` คุณยังสามารถใช้ตัวจัดการไฟล์บางตัว เช่น Midnight Commander คุณสามารถใช้ Python, Perl, PHP และอื่น ๆ อีกมากมาย. คุณสามารถ *เขียนทับ* ไฟล์ได้ คุณสามารถ *ย้าย* ไฟล์ไปที่ `/tmp` + และอีกครั้ง แก้ไขคำถามของคุณ
Score:4
ธง tr

ลบสิทธิ์การเขียนออกจากไฟล์และโฟลเดอร์ฝั่งเซิร์ฟเวอร์

หรือคุณสามารถจำกัดการดำเนินการ "ลบ" บนเซิร์ฟเวอร์ SFTP ดู จำกัดผู้ใช้ SFTP ให้เรียกใช้เฉพาะชุดคำสั่ง/การกระทำที่จำกัดใน Linux. และตรวจสอบให้แน่ใจว่าผู้ใช้มีสิทธิ์เข้าถึง SFTP เท่านั้น

Score:2
ธง it

ฉันค่อนข้างมั่นใจว่าจะไม่สามารถทำได้อย่างที่คุณคาดหวัง (ผ่านการตั้งค่าในไคลเอนต์ winSCP) นี้ ฟอรัมแสดงหลักฐานของผู้ดูแลระบบเซิร์ฟเวอร์รายอื่นที่มีปัญหาคล้ายกัน เมื่อถาม ผู้ดูแลไซต์ winSCP แจ้งว่าสิ่งนี้เป็นไปไม่ได้ใน winSCP และบอกให้เขาโฟกัสที่ฝั่งเซิร์ฟเวอร์

ตามที่โพสต์แนะนำ เพื่อปฏิเสธการเข้าถึงของผู้ใช้รายนี้ คุณจะต้องใช้การตั้งค่าฝั่งเซิร์ฟเวอร์

การเปลี่ยนแปลงอย่างหนึ่งที่มีประสิทธิภาพอย่างยิ่งในการหยุดไคลเอ็นต์ระยะไกลไม่ให้เข้าถึงเซิร์ฟเวอร์ของคุณ (สภาพอากาศผ่าน opensh, winscp หรือไคลเอ็นต์ SSH อื่นๆ) คือการปิดพอร์ต 22 ซึ่งเป็นพอร์ตเริ่มต้นสำหรับการรับส่งข้อมูล SSH

แก้ไข: ยังไม่แน่ใจว่าคุณได้ให้ข้อมูลที่เกี่ยวข้องทั้งหมดแล้ว จากข้อมูลที่คุณให้ไว้ หากพอร์ต 22 จำเป็นต้องเปิดอยู่ คุณอาจต้องใช้ความคิดสร้างสรรค์ ที่กล่าวว่า ฉันแน่ใจว่าสามารถให้วิธีแก้ปัญหาที่ตรงไปตรงมากว่านี้ได้หากฉัน / เรามีบริบทมากกว่านี้

ไม่ว่าคุณจะใช้วิธีใดในการจำกัดการเข้าถึงของผู้ใช้ ก่อนอื่นคุณจะต้อง ลบสิทธิ์การใช้งาน sudo ของผู้ใช้ ลบด้วย:

gpasswd -- ลบผู้ใช้ pbwriters

ฉันเชื่อว่าคุณสามารถบรรลุเป้าหมายฝั่งเซิร์ฟเวอร์ได้โดยใช้ เคี้ยว และ chmod คำสั่ง คุณจะต้องการตั้งค่า กรัม= และ o= ตัวเลือกหลังจากเปลี่ยนกลุ่มที่เป็นของไฟล์ บรรทัดนี้ควรทำเคล็ดลับ:

# แทนที่ DIR ด้วยชื่อโฟลเดอร์นอกสุด
sudo groupadd pbwriters && sudo chown -R :pbwriters DIR && sudo chmod -R 774 DIR

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

# เหมือนเดิม แทนที่ USER ด้วยชื่อผู้ใช้
sudo usermod -a -G pbwriters USER
Nate T avatar
it flag
หลังจากนี้ คุณยังสามารถตั้งค่า $SHELL เป็น [rbash](https://www.networkworld.com/article/2875972/clamping-down-on-users-with-rbash.html) นอกจาก chroot แล้ว นี่เป็นเครื่องมือล้ำค่าสำหรับผู้ดูแลระบบเครือข่าย อย่างน้อยสิ่งนี้จะจำกัดไฟล์ที่พวกเขาสามารถเข้าถึงได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา