ฉันจะสร้างผู้ใช้ที่เข้าถึงไฟล์ทั้งหมดได้อย่างอ่านอย่างเดียวได้อย่างไร (เช่น root โดยไม่ได้รับอนุญาต)


9

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

ความคิดเห็นใด ๆ เกี่ยวกับวิธีการบรรลุผลนั้น


ที่เกี่ยวข้อง: File System สิทธิ์: ผู้ใช้ที่สามารถสำรองไฟล์ทั้งหมด
G-Man กล่าวว่า 'Reinstate Monica'

คำตอบ:


7

ฉันอาจแนะนำวิธีอื่นในการแก้ปัญหาของคุณซึ่งใช้การบำรุงรักษาน้อยลง

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

ตรวจสอบส่วน 'AUTHORIZED_KEYS FILE FORMAT' ในหน้า man sshd ของคุณ (ฉันสมมติว่าคุณกำลังใช้ OpenSSH)

http://man.openbsd.org/OpenBSD-current/man8/sshd.8


1
ฉันชอบความคิด สำหรับการดึงไฟล์ผ่านrsyncตัวno-*เลือกทั้งหมดตามที่ระบุไว้ในชายคนนั้นควรจะปลอดภัย โดยเฉพาะอย่างยิ่งไม่มี ptyร่วมกับจากเป็นการเริ่มต้นที่ดีเพื่อเพิ่มความปลอดภัย ตัวอย่าง:from="the_pulling_hostname_or_IP",no-pty,...
user569825

1

คุณสามารถบรรลุด้วย ACL คุณยังคงต้องการสคริปต์ที่ทำงานในฐานะรูทที่เปลี่ยนแปลงการอนุญาตของทุกไฟล์ ดู man pages สำหรับ ACL, setfacl และ getfacl หากคุณสนใจ


1

มีวิธีอื่นในการสร้างสิ่งนี้โดยไม่ใช้ ACL แต่คุณต้องฝึกฝนอย่างระมัดระวังที่นี่ ประการแรกสร้างกลุ่มตัวอย่างเช่นเรียกว่า roroot (อ่านอย่างเดียว root) จากนั้นใช้รหัสกลุ่มนั้นกับไดเรกทอรีทั้งหมด ทำให้การอนุญาตสำหรับบิตกลุ่มเป็น r - หรือ 400 octal จากนั้นคุณสามารถสร้างบัญชีผู้ใช้เช่นผู้ใช้ทั่วไปเช่น rorootusr โดยใช้ id ถัดไปที่ตั้งค่าใด ๆ ที่มันอยู่ในระบบของคุณทำให้มันเป็น สมาชิกของกลุ่ม roroot เท่านั้นอย่าทำให้มันเป็นส่วนหนึ่งของล้อถังขยะ ฯลฯ ขึ้นอยู่กับกลุ่มของคุณในการติดตั้งของคุณ บิตต่อไปจะเป็น kludgy เปิดไฟล์ / etc / passwd โดยใช้ vim / nano / emacs / joe / ตัวแก้ไขอะไรก็ตามที่เขย่าเรือของคุณและมองหา id ที่คุณเพิ่งสร้างขึ้นเช่น rorootusr ไฟล์ passwd จะมีลักษณะเช่นนี้

ราก: x: 0: 0 :: / ราก: / bin / ดวลจุดโทษ

การอ่านจากซ้ายไปขวาคั่นด้วยเครื่องหมายโคลอนที่คุณมีชื่อผู้ใช้รหัสผ่าน (เข้ารหัส + เงา), ID ผู้ใช้, id กลุ่ม, ความคิดเห็น, โฮมไดเรกทอรีและเชลล์ จากตัวอย่างข้างต้นที่ได้รับ

rorootusr: x: 512: 450: ผู้ใช้รูท RO: / home / rorootusr: / bin / bash

เป็นฟิลด์ที่ 3 (512) ที่คุณเปลี่ยนเป็น 0. 450 จะเป็นรหัสกลุ่มสำหรับ roroot บันทึกเซสชันแก้ไขแล้วเสร็จ ตอนนี้ rorootusr จะมีการเข้าถึงรูท แต่เป็นสมาชิกของ roroot กลุ่มเท่านั้นและสามารถเข้าถึงระบบได้แบบอ่านอย่างเดียว

หวังว่านี่จะช่วยได้ขอแสดงความนับถือทอม

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