ব্যবহারকারী স্পর্শ করতে পারবেন না


10

আমার ফেডোরা সার্ভারে এসসিপি করার সময়, কোনও ব্যবহারকারী ফাইল টাইমস্ট্যাম্পগুলি পরিবর্তন করতে না পারার বিষয়ে ত্রুটি পেতে থাকে ("সময় নির্ধারিত: অপারেশন অনুমোদিত নয়")। ব্যবহারকারী ফাইলটির মালিক নন, তবে আমরা chownসুরক্ষার কারণে এই ব্যবহারকারীর কাছে ফাইল করতে পারি না । ব্যবহারকারী পারেন sudo, তবে যেহেতু এটি কোনও এসসিপি / এফটিপি ক্লায়েন্টের মাধ্যমে ঘটছে, তাই এটি করার কোনও উপায় নেই। এবং পরিশেষে, আমরা এই ব্যবহারকারীকে মূল অ্যাক্সেস দিতে চাই না, কেবল তাকে আরএসসিএন বা উইনসিসিপি এর মতো একটি সিঙ্ক্রোনাইজেশন ব্যবহার করার অনুমতি দিতে যাতে টাইমস্ট্যাম্প সেট করা দরকার।

ব্যবহারকারী rwসমস্ত প্রাসঙ্গিক ফাইল এবং ডায়ারের সম্পূর্ণ অনুমতি সহ একটি গোষ্ঠীর অংশ । কীভাবে touch -tএই নির্দিষ্ট ফাইলগুলিতে chownতাকে বিন্যাস ছাড়াই ব্যবহারকারীর অনুমতি দেওয়া যায় সে সম্পর্কে কোনও ধারণা ?

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

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

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

লিনাক্সের কথা বলতে গেলে আমি একটি সম্পূর্ণ বোকা, এবং আমি দেব "সার্ভার অ্যাডমিন" আমি কেবল এটি ধরে নিতে পারি যে এটি করা বোকামি যা আমি করছি বা আমার (ভুল) কনফিগার করা আছে।

সারাংশ সংক্ষেপে, আমি একটি ডিরেক্টরিতে গ্রুপ R / W এক্সেস আছে, SCP- র মাধ্যমে যে ডিরেক্টরির মধ্যে ফাইল টাইমস্ট্যাম্প পরিবর্তন করতে পারবেন কোনো ব্যবহারকারীদের চাই।


1
আপনার ফাইল সিস্টেমটি কি মজার কিছু দিয়ে মাউন্ট করেছে? আপনি এসিএল ব্যবহার করছেন? সাধারণত গ্রুপের সদস্যপদে এটি সম্ভব হবে।
কালেব

5
মূলত আপনার সিস্টেম আপনাকে বলছে, "আপনি [তাঁর] টাচ করতে পারবেন না।"
Boehj

@ কালেব: না, আপনি যদি মালিক না হন তবে আপনি কেবলমাত্র বর্তমান তারিখে সেট করতে পারেন। @ টম: তারিখটি শ্রদ্ধা করা কি গুরুত্বপূর্ণ? আপনি প্রয়োজনীয়তাগুলি সম্পর্কে কিছুটা প্রসারিত করতে পারেন: ব্যবহারকারী যদি ফাইলটিতে লিখতে পারেন তবে সে যদি সেগুলির মালিকানা পায় তবে তা কেন বিবেচনা করে? সাধারণত, এই পরিস্থিতিতে, ফাইলের সর্বশেষে যারা লিখেছেন সে তার মালিকানাধীন।
গিলস 'অশুভ হওয়া বন্ধ করুন'

@ টম: "আমরা এই ব্যবহারকারীর মূল রুট অ্যাক্সেস দিতে চাই না" এবং "ব্যবহারকারী সুডো করতে পারে" এর মধ্যে একটি আপাত দ্বন্দ্ব রয়েছে, আপনি কি এই অংশটি আরও ভালভাবে ব্যাখ্যা করতে পারেন? আপনার rootগ্রুপটি ব্যবহার সম্পর্কে : rootগ্রুপটির কোনও বিশেষ অনুমতি নেই, কেবল rootব্যবহারকারীর রয়েছে।
গিলস

উত্তর:


10

কেন এটি কাজ করে না

আপনি যখন touchঅন্তর্নিহিত সিস্টেম কল দিয়ে বা আরও সাধারণভাবে কোনও ফাইলের সংশোধন সময় পরিবর্তন করার চেষ্টা করেন utime, তখন দুটি ক্ষেত্রে থাকে।

  • আপনি ফাইলটির পরিবর্তনের সময় নির্দিষ্ট সময়কে সেট করার চেষ্টা করছেন। এটির প্রয়োজন আপনারা ফাইলটির মালিক। (প্রযুক্তিগতভাবে বলতে গেলে, প্রক্রিয়াটির কার্যকর ব্যবহারকারী আইডি অবশ্যই ফাইলের মালিক হতে হবে ²)
  • আপনি বর্তমান সময়ের জন্য ফাইলটির পরিবর্তনের সময় সেট করার চেষ্টা করছেন। যদি আপনার কাছে ফাইলটিতে লেখার অনুমতি থাকে তবে এবং যদি এটি কাজ করে। এই ব্যতিক্রমটির কারণ হ'ল আপনি একই মান effect সহ ফাইলের একটি বিদ্যমান বাইট ওভাররাইট করে যে কোনও উপায়ে একই প্রভাব অর্জন করতে পারেন ¹

কেন এটি সাধারণত কিছু যায় আসে না

  • আপনি যখন ftp, scp, rsync ইত্যাদি দিয়ে ফাইলগুলি অনুলিপি করেন, অনুলিপিটি একটি নতুন ফাইল তৈরি করে যার যার মালিকানা অনুলিপি করেছিল did সুতরাং অনুলিপি ফাইলের সময় সেট করার অনুমতি আছে।
  • আরএসআইএনসি দিয়ে আপনি বিদ্যমান ডিরেক্টরিগুলির সময় নির্ধারণ করতে পারবেন না: কোনও ফাইল যখন তাদের সাথে শেষ বার সিঙ্ক্রোনাইজ করা হয়েছিল তখন সেগুলি সেট করা হবে। বেশিরভাগ ক্ষেত্রে, এটি কোনও বিষয় নয়। আপনি rsync কে --omit-dir-times( -O) পাস করে ডিরেক্টরি সময় নিয়ে বিরক্ত না করতে বলতে পারেন ।
  • সংস্করণ নিয়ন্ত্রণ ব্যবস্থা সহ, পুনর্বিবেচনার তারিখগুলি ফাইলের মধ্যে সংরক্ষণ করা হয়; ফাইলগুলিতে মেটাডেটা বেশিরভাগ অপ্রাসঙ্গিক।

সলিউশন

এই সবগুলি একক-বিকাশকারী দৃশ্যে পিএইচপি বিকাশ সক্ষম করার সাথে সম্পর্কিত (যেমন: এসসিএম ছাড়াই)।

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

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

  • আপনার কি সত্যিই বার সিঙ্ক্রোনাইজ করার দরকার আছে? উপরে উল্লিখিত হিসাবে, rsyncবার সিঙ্ক্রোনাইজ না করার একটি বিকল্প রয়েছে। আপনি এটি না বললে Scp হয় না। আমি উইনসিসিপি জানি না তবে সম্ভবত এটিও করতে পারে।
  • আপনি যা করছেন তা করা চালিয়ে যান, কেবল সময় সম্পর্কে বার্তা উপেক্ষা করুন। ফাইলগুলি এখনও অনুলিপি করা হচ্ছে। এটি একটি ভাল বিকল্প নয়, কারণ ত্রুটিগুলি উপেক্ষা করা সর্বদা ঝুঁকিপূর্ণ। তবে এটি প্রযুক্তিগতভাবে সম্ভব।
  • যদি আপনার apacheব্যবহারকারীর মালিকানাধীন ফাইলগুলি পপুলেশন করার ক্ষেত্রে নমনীয়তা প্রয়োজন হয় , তবে স্বাভাবিক পদ্ধতির মধ্যে ব্যবহারকারীকে এসএসএইচ হিসাবে অ্যাক্সেসের অনুমতি দেওয়া হবে apacheসহজ পদ্ধতির ব্যবহারকারী কোনো SSH ব্যক্তিগত কী তৈরি করুন এবং সংশ্লিষ্ট সর্বজনীন কী যোগ থাকতে হয় ~apache/.ssh/authorized_keys। এর অর্থ ব্যবহারকারী ব্যবহারকারী হিসাবে নির্বিচার কমান্ড চালাতে সক্ষম হবেন apache। যেহেতু আপনি যেভাবেই ব্যবহারকারীকে সুডো অধিকার দেওয়ার ক্ষেত্রে ঠিক আছেন, আপনার ক্ষেত্রে এটি কোনও ব্যাপার নয়। আরও বিধিনিষেধ তৈরি করা সম্ভব, তবে এত সহজ নয় (আপনার আলাদা নাম, একই ব্যবহারকারীর আইডি, একটি সীমাবদ্ধ শেল এবং ক্রোট জেল সহ পৃথক ব্যবহারকারী ডাটাবেস এন্ট্রি প্রয়োজন; পৃথক প্রশ্নে বিশদ বিবরণ, যদিও এটি ইতিমধ্যে আচ্ছাদিত হতে পারে এই সাইটে বা সার্ভার ফল্টে )।

¹ অথবা, একটি খালি ফাইলের জন্য, বাইট লিখুন এবং তারপরে ছেঁটে ফেলুন।
² এর অতিরিক্ত জটিলতা ছাড়া, কিন্তু কোনোটাই যে আমি জানি এখানে প্রযোজ্য।


আকর্ষণীয় ব্যাখ্যার জন্য গিলসকে ধন্যবাদ। তবে আমি ব্যবহারের ক্ষেত্রে আরও কতটা পরিষ্কার হতে পারি তা নিশ্চিত নই। নেটবিনগুলি যখনই আমি সিঙ্ক করি ততক্ষণে "সংযোগ বিচ্ছিন্ন করতে পারে না" ত্রুটিগুলি ছুঁড়তে থাকে (যদিও ফাইলটি সঠিকভাবে স্থানান্তরিত হয়েছে এবং সার্ভারে যাচাই করা হয়েছে); উইনসিসিপি'র নির্ধারিত সময়: ত্রুটির অপারেশন অনুমোদিত নয় '; যখন আমি কোনও ফাইল অনার্ট করি তখন আমি ভবিষ্যতে কোনও সময়ের জন্য টাইমস্ট্যাম্প সেট করতে না পারার বিষয়ে সতর্কতা পাই। এর বাইরে আমি জানি না যে বিষয়টি কোথায় রয়েছে। আমি কেবল একটি স্থানীয় দূরবর্তী দিরের সাথে সিঙ্ক করতে সক্ষম হতে চাই। এসসিপি / এফটিপি এর মাধ্যমে এবং সমস্যাটি টাইমস্ট্যাম্প বলে মনে হচ্ছে। এটা কি সাহায্য করে? সম্ভবত না.
টম অাগার

@ টম: আমি এখনও বুঝতে পারি না যে আপনি কেবল ব্যবহারকারীদের ফাইলগুলি কেন রাখতে পারবেন না।
গিলস 'অশুভ হওয়া বন্ধ করুন'

কিছু ফাইলের অ্যাপাচি (উদাহরণস্বরূপ, আপলোড ডিরেক্টরি) এর মালিকানা থাকা দরকার তাই আমি মালিক পরিবর্তন করতে পারি না, কেবল কারণ যে কেউ ডিরেক্টরিতে থাকা কিছু ফাইলের উপর কাজ করছে। আপনি যা বলছেন তা বোঝা যায় না - যখন আমি এফটিপি ব্যবহার করে কোনও ফাইল অতিরিক্ত লিখি তখন মালিক অগত্যা পরিবর্তন করে না। আমি এই আচরণটি পরিবর্তন করার প্রয়োজন দেখছি না।
টম অ্যাগার

@ টম: কেবলমাত্র এগুলি বিদ্যমান ফাইলগুলি হওয়ায় মালিক পরিবর্তন করে না। আপনি কেন ব্যবহারকারীদের মতো ফাইল আপলোড করতে দিচ্ছেন না তা আমি বুঝতে পারি না apache- তবে তারা সময় নির্ধারণ করতে সক্ষম হবে। সঠিক সমাধানের জন্য আমার সংশোধিত উত্তর এবং বেশ কয়েকজন সাব-টিমিকাল উত্তর দেখুন।
গিলস 'অশুভ হওয়া বন্ধ করুন'

গিলস এই প্রশ্নটি ধরে রাখার জন্য ধন্যবাদ। উন্নয়নের দৃষ্টিকোণ থেকে এসভিএন বা কিছু ভেরিয়েন্ট ব্যবহার সাব-ইস্টিমাল। যে কেউ দূর থেকে ওয়েব ডেভলপমেন্ট করেছে আপনাকে বলতে পারে যে প্রক্রিয়াটি সাধারণত মাইক্রো-ইনক্রিমেন্টাল হয় - বিশেষত যখন দৃষ্টি স্টাইলিং - তখন আপনি প্রতি 30-60 সেকেন্ডের মধ্যে কমিট করেন। যদি আপনাকে নিয়মিত আপনার আইডিই থেকে প্রস্থান করতে হয়, একটি প্রতিশ্রুতি চালান, এবং তারপরে আপনার ব্রাউজারের প্রাকদর্শন করুন, আপনি একটি সহজ প্রক্রিয়া হওয়া উচিত তাতে একটি টন ওভারহেড যুক্ত করছেন। এসভিএন কেবল তখনই প্রসঙ্গে উপলব্ধি করতে পারে যখন একাধিক ডেভস কোনও সাইটের একই অংশে কাজ করে। এটি প্রোগ্রামিং থেকে আলাদা।
টম অ্যাগার

2

রিমোট এন্ডে সুডো ব্যবহার করতে আপনি এইভাবে আরএসসিএন সেটআপ করতে পারেন:

rsync -ave ssh --rsync-path="sudo rsync" /source/ user@host:/dest/

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

আপনি ঠিক বলেছেন, অনুমতি sudo rsyncদেওয়া সীমাবদ্ধ করা খুব কঠিন। আমি কেবল এটির পরামর্শ দিয়েছিলাম কারণ ওপি বলেছে যে ব্যবহারকারীর ইতিমধ্যে সুডো অ্যাক্সেস রয়েছে।
কালেব

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

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