ওপেনএসএইচ এসএফটিপি সার্ভার কি কমান্ড (ক্রোয়েটেড এনভায়রনমেন্ট) এর পরে উমাস্ক ব্যবহার করে বা ক্লায়েন্টের সাইড অনুমতি সংরক্ষণ করে?


13

আমি জানি এই প্রশ্নটি ইতিমধ্যে আলোচনা করা হয়েছে, তবে পোস্টগুলি পড়ে আমি উত্তরগুলি অনুধাবন করতে পারিনি, কারণ কেউ কেউ বলেছিলেন "হ্যাঁ উমাস্ক কাজ করতে পারে", এবং অন্যরা বলেন "ওপেনএসএইচ কমান্ড সর্বদা অনুমতি সংরক্ষণ করে"

সব কিছু ঠিক করার আগে:

  • আমি RHEL 6.2 এ ওপেনএসএইচ 5.9 ব্যবহার করি
  • আমি একটি chrooted এসএফটিপি সার্ভার কনফিগার করেছেন ব্যবহার করে, internal-sftpসঙ্গে, সাব-সিস্টেম -u 0002umask জন্য
  • আমি সুনির্দিষ্টভাবে আমি বিকল্প -pবা -Pবিকল্পটি ব্যবহার করি না

আমি একদিকে যা পড়েছি তা থেকে : এসএফটিপি স্থানান্তরের জন্য উমাস্ককে সংজ্ঞায়িত করার অনেকগুলি উপায় রয়েছে:

  • বিকল্প -uএর internal-sftp(বা sftp-server), OpenSSH- র 5.4 থেকে
  • এতে একটি মোড়ক তৈরি করুন sftp-server(যাতে আমরা স্পষ্টভাবে উমাস্কটি সেট করি - এটি ক্রোয়েটেড পরিবেশের জন্য উপযুক্ত নয় বিটিডব্লিউ)
  • pam.d/sshdফাইলটিতে একটি নির্দিষ্ট কনফিগারেশন যুক্ত করুন

অন্যদিকে আমি পড়েছি:

ওপেনএসএইচ এসএফটিপি ক্লায়েন্ট এবং সার্ভার অনুমতিগুলি স্থানান্তর করে (এক্সটেনশন হিসাবে) এবং স্থানীয় পাশের অনুমতি নিয়ে দূরবর্তী ফাইলটি তৈরি করে। আফিক্স, এই আচরণটি অক্ষম করার কোনও উপায় নেই।

সুতরাং আমি নিম্নলিখিত পরীক্ষা করেছিলাম:

আমার ক্লায়েন্টে আমি 600 এবং 700 এর অনুমতি নিয়ে ফাইল MYFILEএবং ডিরেক্টরি তৈরি করেছি MYDIR

তারপরে sftpকমান্ড সহ:

mkdir => the new directory has permissions following the umask (OK)
put MYFILE => MYFILE has same permissions as on client (KO)
put -r MYDIR => MYDIR has same permissions as on client (KO)

আমি যদি ক্লায়েন্টের পক্ষে MYFILEএবং এর অনুমতিগুলি পরিবর্তন করি MYDIRএবং আবার আপলোড করি তবে আমি সার্ভারের পাশে নতুন অনুমতি পেয়েছি।

আমি pam.dসমাধানটিও চেষ্টা করে দেখেছি , তবে এটির কোনও পরিবর্তন হয়নি।

তাই এখন আমি বিভ্রান্ত:

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

আমি কিছু অভিজ্ঞ প্রতিক্রিয়া প্রশংসা করব।

ধন্যবাদ.

উত্তর:


12

প্রথমত, উমাস্ক ক্লায়েন্ট নয় সার্ভার সম্পর্কে। সুতরাং putওপেনএসএসএইচ ক্লায়েন্টের কমান্ডটি উমাস্ক ব্যবহার করে কিনা তা জিজ্ঞাসা করা ভুল। আপনার জিজ্ঞাসা করা উচিত যে এসএফটিপি আপলোডের ফলাফল হিসাবে কোনও ফাইল তৈরি করার সময় ওপেনএসএইচ সার্ভারটি উমাস্ক ব্যবহার করে।

যাইহোক, ওপেনএসএইচ এসএফটিপি ক্লায়েন্ট কী করে:

  • put-Pপতাকা ছাড়াই এটি সার্ভারকে স্থানীয় ফাইলের মতো একই অনুমতি নিয়ে একটি ফাইল তৈরি করতে বলে। ওপেনএসএসএইচ সার্ভার তখন (নিখুঁতভাবে * নিক্স বিধি দ্বারা) উমাস্ক প্রয়োগ করে।

  • putসঙ্গে -Pপতাকা, এটি একই শুরু হয়, কিন্তু আপলোড সম্পন্ন হবার পর ক্লায়েন্ট স্পষ্টভাবে (পুনরায়) সার্ভার জিজ্ঞেস একই স্থানীয় ফোল্ডারটি ( "chmod" অনুরোধ) এর অনুমতি সেট। "Chmod" এর জন্য, umask প্রযোজ্য নয়।

  • mkdir, এটি সার্ভারকে 0777 অনুমতি নিয়ে একটি ডিরেক্টরি তৈরি করতে বলে। umask সুস্পষ্টভাবে প্রযোজ্য।

যাইহোক, আমি বিশ্বাস করি যে 0600 পারমিশন সহ ফাইলের উপর উমাস্ক 0002 এর কোনও প্রভাব নেই, কারণ এগুলি পারস্পরিক একচেটিয়া। আপনার উমাস্কটি 0644 এর মতো অনুমতি সহ কোনও ফাইলের বিরুদ্ধে চেষ্টা করা উচিত।

সুতরাং প্রকৃতপক্ষে, এটি আপনার কাজ করা উচিত, যদি আপনার সিস্টেমটি বর্ণনা অনুযায়ী কনফিগার করা থাকে। আমার বাক্স থেকে প্রমাণ দেখুন (ওপেনএসএসএইচ 6.2 পি 2 সহ উবুন্টু)

Match user user2
  ChrootDirectory /home/user2/chroot
  ForceCommand internal-sftp -u 0077
  AllowTcpForwarding no
  PermitTunnel no
  X11Forwarding no

putবনাম পরে অনুমতি অনুমতি মধ্যে পার্থক্য দেখুন put -P:

user1:~$ touch file.txt
user1:~$ ls -l
total 0
-rw-r--r-- 1 user1 ftpuser    0 Oct 23 15:34 file.txt
user1:~$ sftp user2@localhost
user2@localhost's password: 
Connected to localhost.
sftp> cd somefolder 
sftp> put file.txt
Uploading file.txt to /somefolder/file.txt
file.txt                                         100%     0    0.0KB/s    0:00
sftp> ls -l
-rw-------    1 1003 1001    0 Oct 23 15:35 file.txt
sftp> put -P file.txt
Uploading file.txt to /somefolder/file.txt
file.txt                                         100%     0    0.0KB/s    0:00
sftp> ls -l
-rw-r--r--    1 1003 1001    0 Oct 23 15:34 file.txt

বিটিডব্লিউ, সর্বশেষতম এসএফটিপি স্পেসিফিকেশন উমাস্ক সম্পর্কিত ক্লায়েন্ট এবং সার্ভারের আচরণের সংজ্ঞা দেয়। আপনি দেখতে পাচ্ছেন, ওপেনএসএইচ আসলে এটি লঙ্ঘন করে, যদিও ওপেনএসএইচ এসএফটিপি 3 সংস্করণ প্রয়োগ করে যার সাথে এখনও উমাসকের কোনও উল্লেখ নেই।

7.6। অনুমতিসমূহ

...

সার্ভারটি মোড বিটের জন্য 'উমাস্ক' প্রয়োগ করা উচিত নয়; তবে ক্লায়েন্টের দ্বারা নির্দিষ্ট মোড বিট সেট করা উচিত। ক্লায়েন্ট তাদের প্রেরণের আগে মোড বিটের জন্য উপযুক্ত 'উমাস্ক' প্রয়োগ করতে হবে।


আমি ইতিমধ্যে অনেক বিভিন্ন অনুমতি দিয়ে চেষ্টা করেছি, একেবারে শুরুতে আমার ক্লায়েন্টের পক্ষে আমার ডিরেক্টরিতে 755 ছিল এবং পরিবর্তে 775 পেতে চেয়েছিলাম। তবে এটি কার্যকর হয়নি। ডকুমেন্টেশন পড়ে আমি
পি এর

মন্তব্যের জন্য ধন্যবাদ, আমি শিরোনাম উন্নত করতে এবং কিছু শব্দ সংশোধন করার চেষ্টা করেছি
drkzs

এটি আসলে কাজ করা উচিত, আমার আপডেট দেখুন।
মার্টিন প্রিক্রিল

হ্যাঁ, আপনার উদাহরণটি কাজ করে ... তবে আপনি যদি উমাস্কটি 0002 এ পরিবর্তন করেন তবে তা আর হয় না। এই পোস্টে কি একই সমস্যা উত্থাপন করা হয়? আমি openssh5.9 এ ব্যতীত এবং উমাস্ক বিকল্পটি কাজ করা উচিত। আপনার এসএসএইচডি কনফিগারেশন এবং আমার মধ্যে পার্থক্য হ'ল আমি ফোর্সকম্যান্ড ব্যবহার করি না, তাই আমি সাব-সিস্টেম লাইনে উমাস্কটি নির্দিষ্ট করি। (আমি কনফিগার এবং ফলাফল পোস্ট করার চেষ্টা করব, তবে নেটওয়ার্ক পরীক্ষাটি সহজেই পৌঁছানো যায় না)
drkzs

1
কেবলমাত্র এই বিষয়টিতে পরিষ্কার হতে: The server SHOULD NOT apply a 'umask' কেবলমাত্র যখন ক্লায়েন্ট অনুমতি-তথ্য প্রেরণ করে তখনই প্রযোজ্য । যখন ক্লায়েন্ট অনুমতি-তথ্য প্রেরণ করে না তখন এটি একটি উমাস্ক প্রয়োগ করার আচরণের উদ্দেশ্য!
হিগল্যান্ড্রিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.