একটি কনফিগারেশন ফাইলে কীভাবে sftp -s সাব-সিস্টেম বিকল্প সেট করবেন


11

Sftp কমান্ডটি একটি সাবসিস্টেম অপশন (-s) সমর্থন করে যা দূরবর্তী ব্যবহারকারীকে দূরবর্তী sftp-সার্ভার এক্সিকিউটেবল নির্বাচন করতে এবং likeচ্ছিকভাবে প্রসেসে sudo এ আপগ্রেড করতে দেয়;

sftp -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" xxx.yyy.zzz.aaa

এই কমান্ডটি পাবকি এবং কাস্টম পোর্ট এবং ব্যবহারকারীর সেটিংসের স্বচ্ছ ব্যবহারের অনুমতি দিয়ে ~ / .ssh / কনফিগারেশনে ssh ক্লায়েন্ট বিকল্পগুলিকে পিছনে দেয়।

তবে subsystemএটি sftp নির্দিষ্ট বলে মনে হচ্ছে, এবং এটি কনফিগার ফাইলে সেট করা নেই এবং প্রদর্শিত হয় এটি sftp এর জন্য একটি কমান্ড লাইন বিকল্প হিসাবে সেট করতে হবে।

তবে কিছু সরঞ্জাম এসএফটিপি অনুরোধটি মোড়ায় যাতে সাবসিস্টেম বিকল্পটি সেট করা অসম্ভব এবং তাই ব্যবহারকারীর অ্যাক্সেসের সাথে আটকে থাকে।

ওপেন্যাস এসএফটিপি-র জন্য সাধারণত এটি সেট করতে আমি ব্যবহার করতে পারি এমন কোন কনফিগারেশন বিকল্প ফাইল রয়েছে?

জিনোম নটিলাস তার ফাইল ম্যানেজার ইন্টিগ্রেশনের জন্য যেভাবে এসএফটিপিটি আহ্বান করে সেটিকে কার্যকর করার জন্য কিছু কনফিগারেশন ফাইল রয়েছে?


সম্ভাব্য হ্যাকি-কিন্তু-কার্যক্ষম সমাধানটি আপডেট করুন ...

সুতরাং দেখা যাচ্ছে যে কোনও স্পষ্টরূপে কনফিগার ফাইল নেই যা এসএফটিপি বিকল্পগুলির জন্য ব্যবহার করবে তাই আমি আমার নির্বাচিত হোস্টগুলির জন্য আমার পথটিতে রেখে স্পষ্টভাবে বিকল্পটি যুক্ত করতে জেনেরিক র্যাপার স্ক্রিপ্টটি সংশোধন করে শেষ করেছি;

#!/bin/bash
#  Generic shell wrapper that performs an operation

OPERATION=/usr/bin/sftp
args=("$@")
#the final arg should contain a hostname of the form [user@]host[:path]
case "${args[@]: -1}" in
    myserver.com)
    exec $OPERATION -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" "$args"
    ;;
*)
   exec $OPERATION "$args" 
    ;;
esac

তবে আপনার sudoers ফাইলের উপর নির্ভর করে সাধারণত sudo চালানোর জন্য একটি tty প্রয়োজন হয়, সুতরাং আপনাকে "-t" বিকল্পটি ssh করতে হবে, এবং অনুমান করুন কি? ssh ক্লায়েন্ট কমান্ডের জন্য কোনও কনফিগারেশন বিকল্প নেই যা নথিভুক্ত যা ssh_config বা ~ / .ssh / config ফাইলগুলিতে কাজ করে। হা হা।

তাই আমি সরবরাহ করতে অন্য একটি র‍্যাপার স্ক্রিপ্ট লিখি ....

#!/bin/bash
#  Generic shell wrapper that performs an operation

OPERATION=/usr/bin/ssh
args=("$@")
#locating the hostname is not so simple with ssh
exec $OPERATION -tt "$args"

যদিও, আমার এখন আমার ~ / bin / ssh র‍্যাপার ফাইলটি ব্যবহার করতে এসএফটিপি পেতে সমস্যা হচ্ছে, কারণ এটি প্রদর্শিত হবে যে হার্ড-এ কোড করা হয়েছে এবং কোনও বিকল্প "-S" দ্বারা নিয়ন্ত্রিত হয়েছে


তোমার লক্ষ্য কি? আমি আপনার আদেশের কোন সুবিধা বুঝতে পারি না।
jirib

3
আমি আমাদের বেস বিল্ড অনুসারে কোনও মূল ব্যবহারকারী লগইন ছাড়াই এসএসএস চালাই, সুতরাং এটি সুডো ব্যবহারকারীদের জিনোম জিভিএফএসের সাথে সংহত করার সরঞ্জামগুলির মাধ্যমে রুট অনুমতি নিয়ে ফাইলগুলিতে পরিবর্তন করতে দেয়।
টম এইচ

উত্তর:


2

ssh_config(5)ম্যান পৃষ্ঠা অনুসারে আপনি sshd_configকনফিগারেশন ফাইলে পাথটি কনফিগার করতে পারেন :

 Subsystem
         Configures an external subsystem (e.g. file transfer daemon).
         Arguments should be a subsystem name and a command (with optional
         arguments) to execute upon subsystem request.

সুতরাং দেখে মনে হচ্ছে আপনি সাধারণভাবে এটি করতে পারেন:

Subsystem sftp /usr/libexec/openssh/sftp-server -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server"

এই কনফিগারেশনটি অবশ্যই ক্লায়েন্ট কনফিগারেশনে নয়, সার্ভারে চলে । এটা কি যেটা তুমি খুজছো? ডান দিকটি, স্পষ্টতই, প্রতিটি sftp সংযোগটি রুট সুবিধাগুলি দিয়ে চালানোর চেষ্টা করবে, সুতরাং এটি আপনার ফাইলগুলিতে অ-রুট অ্যাক্সেসকে ভেঙে দেবে।


হ্যাঁ, আমি ক্লায়েন্টের পাশে কিছু খুঁজছিলাম। যদিও আমার একটি ধারণা রয়েছে যা দিয়ে আমি প্রশ্নটি আপডেট করেছি।
টম এইচ

হুম, আমি সত্যিই জিইউআই পাশাপাশি কমান্ড লাইনের উত্তর পেতে চাই। আমি মনে করি যে লারস্কগুলি সঠিক লাইনে রয়েছে তবে আমি মনে করি যে রিমোট সার্ভারে সাবসিস্টেম কমান্ডটি এমন একটি স্ক্রিপ্ট হওয়া দরকার যা ব্যবহারকারী নিজেই লগইনের চেষ্টা করার অধিকারগুলি "জানতে" সক্ষম হয়, বা এটি নিখুঁতভাবে সক্ষম হয় (এবং নিঃশব্দে) কোনও স্ট্যান্ডার্ড এসএফপি লগইনে ব্যর্থ-ব্যাক।
জুলিয়ান নাইট

অথবা, অবশ্যই, আমি উইন্ডোজ বাক্সে কেবল উইনসিসিপি ব্যবহার করতে পারি !! মনে হয় না যদিও এটি না।
জুলিয়ান নাইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.