อนุญาตให้ผู้ใช้เชื่อมต่อกับ SSH โดยไม่ต้องเข้าถึง sudo หรือไม่

ฉันกำลังพยายามทำดังนี้: ตั้งค่าเซิร์ฟเวอร์สำรองข้อมูลบน Google Compute Engine ซึ่งพนักงานในบริษัทของฉันสามารถสำรองข้อมูลคอมพิวเตอร์ทุกคืนผ่าน rdiffbackup งาน cron จะทำงานโดยรัน rdiffbackup ซึ่งใช้ SSH เพื่อส่งไฟล์เหมือนกับ SCP

ด้วยเซิร์ฟเวอร์ "ปกติ" ฉันสามารถสร้างผู้ใช้ใหม่ให้กับพนักงานแต่ละคน และตั้งค่าการอนุญาตเพื่อไม่ให้พวกเขาอ่านไฟล์ของพนักงานคนอื่นได้

ดูเหมือนว่าการใช้เครื่องมือ "gcloud compute ssh" หรือการกำหนดค่า ssh ปกติโดยใช้ "gcloud compute config-ssh" อนุญาตให้คุณอนุญาตให้ผู้ใช้เชื่อมต่อผู้ที่เพิ่มเข้ามาในโปรเจ็กต์และเชื่อมต่อคอมพิวเตอร์กับบัญชี Google ของพวกเขาเท่านั้น ปัญหาของฉันเกี่ยวกับสิ่งนี้คือฉันไม่เห็นวิธีที่ผู้ใช้จะมีความสามารถในการอ่านและเขียนบนเซิร์ฟเวอร์โดยไม่ต้องเป็น sudoer ด้วย (ใครก็ตามที่เพิ่มในโปรเจ็กต์ด้วย "สามารถแก้ไข" สามารถรับ sudo ได้เท่าที่ฉันรู้) . แน่นอนว่าหากพวกเขามี sudo พวกเขาสามารถอ่านไฟล์ของผู้อื่นได้

ฉันสามารถให้ความสามารถ SSH จากระยะไกลแก่ใครบางคนโดยไม่ต้องมี sudo ได้หรือไม่? ขอบคุณ


person dtemp-jg    schedule 23.06.2015    source แหล่งที่มา


คำตอบ (2)


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

ฉันขอแนะนำให้คุณตั้งค่าบริการสำรองข้อมูลเหมือนกับที่คุณทำกับเซิร์ฟเวอร์ปกติ:

  • กำหนดที่อยู่แบบคงที่
  • (ไม่บังคับ) กำหนดชื่อ DNS
  • ตั้งค่าผู้ใช้บนกล่องโดยใช้ adduser
person Stephen Weinberg    schedule 23.06.2015
comment
อ่า ฉันคิดว่าฉันอ่านเจอมาว่าเป็นไปไม่ได้ที่จะตั้งค่าเซิร์ฟเวอร์ในลักษณะนั้นบน GCE โดยที่คุณต้องใช้เครื่องมือ SSH เพื่อเชื่อมต่อ และคุณไม่สามารถสร้างผู้ใช้ที่กำหนดเองที่สามารถเข้าสู่ระบบผ่าน SSH ได้ เพิ่งสร้างผู้ใช้ ตั้งค่า allowance_keys และใช้งานได้ ขอบคุณ - person dtemp-jg; 24.06.2015
comment
คุณต้องใช้ gcloud หรือคอนโซลคลาวด์เพื่อตั้งค่าการเข้าสู่ระบบครั้งแรก หลังจากนั้นก็เป็นเพียงเซิร์ฟเวอร์ปกติ มี daemon ทำงานบนเซิร์ฟเวอร์เพื่อดึงข้อมูลคีย์/ผู้ใช้ใหม่จาก Google คุณอาจต้องการปิดการใช้งานสิ่งนั้น - person Stephen Weinberg; 24.06.2015

คุณมีสองทางเลือก

1) คุณสามารถจัดการผู้ใช้ที่ไม่ใช่รูทบนอินสแตนซ์ของคุณได้เหมือนกับที่คุณทำบนเครื่อง Linux ปกติด้วยการเพิ่มผู้ใช้เหล่านั้นด้วยตนเองด้วยคำสั่งมาตรฐาน เช่น 'adduser' และไม่ใช่เส้นทางการอัปเดต gsutil/UI/metadata

2) หรืออีกทางหนึ่ง หากคุณต้องการจัดการคลัสเตอร์เครื่องขนาดใหญ่ คุณสามารถปิดใช้งานการจัดการ ACL ทั้งหมดที่ Google มอบให้ และเรียกใช้เซิร์ฟเวอร์ LDAP ของคุณเองได้ ไฟล์ที่รับผิดชอบในการอัปเดตบัญชีและจำเป็นต้องปิดการใช้งานเพื่อให้ทำงานคือ https://github.com/GoogleCloudPlatform/compute-image-packages/blob/master/google-daemon/etc/init/google-accounts-manager-service.conf

3) ในที่สุดคุณก็สามารถล็อคการเข้าถึงการเขียนสำหรับผู้ใช้รูทได้เช่น ปิดการใช้งานการเขียนที่เผยแพร่จากเซิร์ฟเวอร์ข้อมูลเมตาโดยการตั้งค่าสถานะที่ไม่เปลี่ยนรูปในไฟล์ sudoers 'chattr +i /etc/sudoers' มันไม่ใช่วิธีแก้ปัญหาที่สวยงาม แต่มีประสิทธิภาพ ด้วยวิธีนี้ คุณจะล็อกรูทสำหรับผู้ใช้ที่เพิ่มไว้แล้ว และผู้ใช้ใหม่จะถูกเพิ่มเป็นสิทธิ์ที่ไม่ใช่รูท แต่ผู้ใช้ระดับรูทใหม่จะต้องถูกเพิ่มด้วยตนเองทีละเครื่อง

person Feczo    schedule 24.07.2015