বর্তমান ব্যবহারকারীদের হোম ডিরেক্টরিতে কি একটি আদর্শ প্রতীকী লিঙ্ক আছে?


9

শেলটি ~আপনার হোম ডিরেক্টরিতে প্রসারিত করতে পারে । $HOMEসাধারণত একই চুক্তি হয় তবে প্রায়শই আপনি বর্তমান ব্যবহারকারীদের হোম ডিরেক্টরিটি এমন একটি প্রসঙ্গ থেকে উল্লেখ করতে চান যা এই জাতীয় সম্প্রসারণকে সমর্থন করে না।

আমার কনফিগার ফাইল রয়েছে যেখানে $HOMEকাজ করে তবে ~বিপরীত হয় না।

আমি অনুমান করব যে ফিউজ এই লাইনগুলি বরাবর কিছু সরবরাহ করতে পারে /var/myself- যেমন ->$HOME

এটির সাহায্যে আমি কনফিগার ফাইলগুলিতে মানগুলি পছন্দ করতে চাই /var/myself/backdrops/pornography/wtf/yarly.jpg

এর আগেও কি এরকম কিছু আছে? যদি তা না হয় তবে এরকম কিছু না থাকার জন্য কি কোনও ভাল কারণ রয়েছে?


2
এটি আসলে একটি সত্যিই ভাল ধারণার মতো বলে মনে হচ্ছে এবং আমি ইন্টারফেসটি সঠিকভাবে মনে রাখলে ফিউজ এটি খুব তুচ্ছভাবে করতে পারে
মাইকেল মরোজেক

উত্তর:


6

আমি আপনার উদ্বেগ বুঝতে পারি তবে উত্তরটি "না" তেমন কিছুই নেই।
সাধারণ পদ্ধতিটি হ'ল ওএসকে ব্যবহারকারীর বাড়ির পথ জিজ্ঞাসা করা বা OME হোম ভেরিয়েবলটি পাওয়া।

এই সমস্ত বিকল্পের জন্য অ্যাপ্লিকেশন থেকে সর্বদা কিছু কোডিং দরকার। বাশের মতো প্রচুর অ্যাপ্লিকেশনগুলি "ওরফে" ~ সরবরাহ করে (খোলা (2) এটি অনুবাদ করে না)।

অবশ্যই এটি করার জন্য কোনও ভিএফএস বা ফিউজ মডিউল প্রয়োগ করা যেতে পারে। সম্ভবত কিছু করার আছে, আমি তা জিজ্ঞাসা করতে যাচ্ছি!

তবে আসলেই কি এটি দরকার? আপনি এই জাতীয় মত ব্যবহার করতে পারেন:

  • প্রোগ্রামটি শুরু করার জন্য একটি স্ক্রিপ্ট তৈরি করুন যা $ হোমকে কোনও আপেক্ষিক পথ বা পরিচিত অবস্থানের সাথে সংযুক্ত করে।

  • Location হোম ডিরকে একটি পরিচিত জায়গার সাথে লিঙ্ক করতে পাম_এক্সেক ব্যবহার করুন


আমি ভিএফএস সরঞ্জামটির জন্য জিজ্ঞাসা করছি: unix.stackexchange.com/questions/1811/…
কীমোন

0

একটি কৌশল (লিনাক্সে অন্তত) $HOMEঅ্যাপ্লিকেশন চালানোর আগে ডিরেক্টরি পরিবর্তন করতে হবে এবং তারপরে /proc/self/cwd/...কনফিগার ফাইলে ব্যবহার করতে হবে।


আমি এর হ্যাকিজি পছন্দ করি তবে সম্ভবত এটি সমস্যাগুলির মধ্যে চলে আসবে এটি প্রক্রিয়াটি বর্তমান ডিরেক্টরি পরিবর্তন করে। প্রারম্ভিক কার্যনির্বাহী ডিরেক্টরিটির জন্য আমি একটি / proc / PID / iwd চাই।
Lerc

... এবং এই বিষয়টির জন্য একটি /
প্রোক

@ লার্ক, যদি এটি কোনও কনফিগার ফাইলে যায় তবে এটি হওয়া দরকার /proc/selfনা /proc/PID, কারণ পিআইডি কী হতে হবে তা আপনি আগেই জানতে পারবেন না।
নীল মেহেহে

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

হ্যাঁ, আমি বোঝাচ্ছি / প্রোক / পিআইডি / বাড়ির অর্থ
হ'ল সমস্ত প্রকোক্ত

0

বেশিরভাগ প্রোগ্রাম আপনাকে কমান্ড লাইনের কনফিগারেশন ফাইলের জন্য একটি পাথ নির্দিষ্ট করতে দেয়। সুতরাং আপনি এমন একটি মোড়ক লিখতে পারেন যা একটি স্ট্যান্ডার্ড কনফিগারেশন ফাইল নেয়, এটি $HOMEবর্তমান ব্যবহারকারীর মতো বিকল্পগুলির জন্য এটি ফিল্টার করে এবং তারপরে পরিবর্তিত, অস্থায়ী কনফিগারেশন ফাইলটি প্রোগ্রামে পাস করে।


যদি আপনি এটি করেন তবে আপনি কার্যকরভাবে ব্যবহারকারীর থেকে দূরে কনফিগারেশন ফাইলের জন্য কোনও পাথ নির্দিষ্ট করার ক্ষমতা নিয়েছেন। আপনি যদি একটি মোড়ক এক্সের সাথে সমাবেশের অভিনবতা পান তবে তা করণীয় হতে পারে।
Lerc

0

আপনি অনুরোধকারীর পিড পেতে এবং তার / তার হোম ডিরেক্টরি সিস্টেমটি জানতে চাইতে পারেন। সুতরাং এটি সম্ভব।

তবে আমি নিশ্চিত নই যে কোনও এসইউডি প্রোগ্রাম নেই যা এফএসকে স্থির হিসাবে গ্রহণ করবে।

সম্পাদনা:

struct fuse_context *ctx = fuse_get_context ();
struct passwd pwd, *ppwd;
char buffer[1024];
int status = getpwuid_r (ctx->ui, &pwd, buffer, sizeof(buffer), &ppwd);
if (status == 0) {
  if (ppwd == NULL) {
    // No record found
  } else {
    // Handle record
  }
} else {
    // Handle error
} 

উপরের কোডটি আদর্শ নয় তবে সাধারণ ক্ষেত্রে এটি করা উচিত।


আপনি কী ব্যবহার করবেন তা জানার পরে আপনি তার হোম ডিরেক্টরিটি কীভাবে খুঁজে পাবেন?
নটহাগো

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