เข้าถึงโฟลเดอร์ที่มีสิทธิ์ sudo ผ่าน Nautilius-Connect ไปยังเซิร์ฟเวอร์ระยะไกล


9

ฉันจำเป็นต้องเข้าถึง/var/logsโฟลเดอร์และโฟลเดอร์ดังกล่าวมากมายบนเซิร์ฟเวอร์ระยะไกลของฉันจากหอยโข่งโดยใช้ "เชื่อมต่อกับเซิร์ฟเวอร์" ผ่าน ssh ฉันหลีกเลี่ยงการลงชื่อเข้าใช้รูทและปิดการใช้งาน ฉันต้องการใช้sudoแทนเช่นเดียวกับที่ฉันทำกับเซสชัน SSH ในเทอร์มินัล ฉันจะใช้หอยโข่งsudoบนเซิร์ฟเวอร์ระยะไกลเพื่อเข้าถึงได้อย่างไร (การล็อกอินรูทถูกปิดใช้งานบนเซิร์ฟเวอร์)

หากไม่ใช่ตัวหอยโข่งมีทางเลือกอื่นที่อาจช่วยให้บรรลุเป้าหมายนี้ได้หรือไม่?


สำหรับทุกคนที่รัก downvoters .. & ผู้ที่ทำเครื่องหมายว่าซ้ำกันนี้เป็นคำถามที่แตกต่าง ฉันต้องการเข้าถึงไฟล์ / โฟลเดอร์บนเครื่องระยะไกลเนื่องจาก sudoer ของเครื่องนั้นไม่ได้อยู่ในเครื่องไคลเอนต์
Rajat Gupta

คุณสามารถเฉพาะเจาะจงมากขึ้นเกี่ยวกับข้อผิดพลาดของคุณ?
เซท

เป็นคำถามที่งี่เง่า คุณกำลังบอกว่าคุณไม่สามารถเข้าถึงรูทได้เนื่องจากคุณ ... ปิดใช้งานการเข้าถึงรูท เปิดใช้งานอีกครั้ง
psusi

@psusi: ไม่ฉันไม่ต้องการเข้าถึง root .. ฉันเป็น sudoer บนเครื่องระยะไกลต้องการเข้าถึงโฟลเดอร์ที่มี sudo privelges ผ่าน nautilus (หรืออะไรก็ได้ที่เป็นทางเลือก) .. IMHO ไม่ได้หมายความว่าฉันต้องการเข้าถึง root หรือไม่
Rajat Gupta

ใช่sudoหมายถึงทำสิ่งนี้ในฐานะผู้ใช้ขั้นสูง (รูท) คุณกำลังบอกว่าคุณสามารถsudoบนเซิร์ฟเวอร์ด้วยตนเองคุณเพียงแค่ต้องรับ nautilus เพื่อใช้เมื่อเชื่อมต่อกับเซิร์ฟเวอร์?
psusi

คำตอบ:


6

เห็นได้ชัดว่าการใช้ Nautilus เป็นบัญชีรูทท้องถิ่นของคุณ (ด้วย sudo, gksu ฯลฯ ) จะไม่ให้สิทธิ์เข้าถึงรูทบนเซิร์ฟเวอร์

ปัญหาคือเซิร์ฟเวอร์ SFTP ภายใน OpenSSH (ซึ่งเป็นสิ่งที่ Nautilus เชื่อมต่ออยู่) ไม่รองรับคำสั่งเช่นsudo- ไม่ใช่สภาพแวดล้อมของเชลล์ สิ่งที่คุณขอให้ง่ายไม่สามารถทำได้ผ่านกลไกมาตรฐาน

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

บนเซิร์ฟเวอร์ให้รัน:

# newer Ubuntu installs:
sudo apt-get install python-pyftpdlib

# older Ubuntu installs
sudo apt-get install python-pip
sudo pip install pyftpdlib

จากคอมพิวเตอร์ของคุณเพียงใช้คำสั่ง SSH สั้น ๆ

# If you installed with pip
ssh -tL localhost:2121:localhost:2121 -L localhost:21212:localhost:21212 user@server "sudo python -m pyftpdlib -i localhost -w -p 2121 -r 21212-21212 -d /"

# If you installed with apt-get (and pyftpdlib is pre-1.3, true in 13.10)
ssh -tL localhost:2121:localhost:2121 -L localhost:21212:localhost:21212 user@server "sudo python -m pyftpdlib.ftpserver -i localhost -w -p 2121 -r 21212-21212 -d /"

และจากนั้นใน Nautilus (บนคอมพิวเตอร์ของคุณ) ftp://localhost:2121เชื่อมต่อกับ ความมหัศจรรย์ของ SSH จะส่งต่อไปยังเซิร์ฟเวอร์ FTP ที่ทำงานในฐานะรูท

มีโพรโทคอลอื่น ๆ (ฉันใช้เวลาในขณะที่มองหาสิ่งที่ดีกว่า) แต่ FTP เป็นวิธีที่ง่ายที่สุดในการเริ่มต้นใช้งานขอบคุณมากpyftpdlibๆ คุณสามารถทำสิ่งที่คล้ายกันกับ webdav และอื่น ๆ ฉันแน่ใจว่า ... มันจะเป็นการแฮ็คมากขึ้น


ขอบคุณ .. พยายาม แต่มันบอกว่า: /usr/bin/python: No module named pyftpdlib.__main__; 'pyftpdlib' is a package and cannot be directly executedในขณะที่ตรวจสอบกับเซิร์ฟเวอร์
Rajat Gupta

น่ารำคาญแค่ไหน ใน pyptpdlib เวอร์ชั่น apt-get ดูเหมือนว่าคุณต้องการคำสั่งที่แตกต่างออกไปเล็กน้อย:sudo python -m pyftpdlib.ftpserver ...
Oli

pyftpdlib.ftpserver module is deprecatedนี่คือสิ่งที่คุณจะได้รับเมื่อคุณใช้ apt-get (อย่างน้อย 14.04) คุณจะต้องเลือกวิธี
ปิเปต

2

หากไม่ใช่ตัวหอยโข่งมีทางเลือกอื่นที่อาจช่วยให้บรรลุเป้าหมายนี้ได้หรือไม่?

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

  • ติดตั้ง WINE โดยใช้ sudo apt-get install wine
  • ดาวน์โหลดและแกะไฟล์พกพาที่ทำงานได้จากhttp://winscp.net/eng/download.php
  • เรียกใช้ WinSCP.exe โดยใช้เมนูบริบทหรือเรียกใช้ wine WinSCP.exe
  • ตั้งค่าโปรโตคอลไฟล์เป็น SCP และป้อนชื่อโฮสต์และชื่อผู้ใช้ของคุณ
  • เปิดหน้าต่าง "ขั้นสูง" และตั้งค่าตัวเลือกเชลล์ในสภาพแวดล้อม -> SCP / เชลล์เป็น sudo su -
  • ลงชื่อเข้าใช้โฮสต์ของคุณ
  • ตอนนี้คุณสามารถเข้าถึงบันทึกโดยใช้เครื่องมือแก้ไขภายในหรือ WINEs Notepad

สามารถลากและวางจาก Nautilus ได้


0

gksudo nautilusเปิดหอยโข่งจากสถานีด้วย

โปรดจำไว้ว่าเครื่องมือ GUI ที่ทำงานด้วยการอนุญาตรูทนั้นไม่ใช่นโยบายที่ดี


0

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

ssh -X usr @ svr: ~ / gksudo nautilus

แต่ @Oli เข้าใจแล้วคุณไม่สามารถใช้เซิร์ฟเวอร์ SFTP ภายใน OpenSSH ได้

นอกจากนี้สิ่งนี้ก็ไม่ได้แย่ไปกว่าความคิด แต่ถ้าคุณอนุญาตให้ sshuser อ่านแบบอ่านไฟล์ที่คุณต้องการเท่านั้นปัญหาของคุณก็จะได้รับการแก้ไข


0

ฉันไม่แน่ใจว่าฉันตอบถูก แต่บางทีฉันอาจช่วยเล็กน้อย

ssh เข้าสู่เซิร์ฟเวอร์ของคุณด้วย ssh -XC user@address

แท็ก -XC จะไพพ์หน้าต่างไปยังคอมพิวเตอร์ของคุณเมื่อมีบางอย่างเปิดอยู่

จากนั้นลองsudo nautilusและหอยโข่งเซิร์ฟเวอร์ของคุณจะเปิดบนหน้าจอท้องถิ่นของคุณ

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