ECryptfs সহ সর্বোচ্চ অনুমোদিত ফাইলের নাম (এবং ফোল্ডার) আকার কত?


44

আমি একটি নতুন eCryptfs ব্যবহারকারী এবং আমার একটি খুব প্রাথমিক প্রশ্ন যা আমি কোথাও খুঁজে পাচ্ছিলাম না able আমি লিনাক্স ব্যবহার করে আমার সিএনোলজি এনএএস এর মাধ্যমে eCryptfs ব্যবহার করতে আগ্রহী।

সিনোলজির এনক্রিপশন অ্যাপ্লিকেশন (eCryptfs) এর মাধ্যমে আমার ফোল্ডারটি (EXT4) এনক্রিপ্ট করার চেষ্টা করার সময় আমার এমন ত্রুটি দেখা দিয়েছে যে আমার ফাইলনামের দৈর্ঘ্য 45 অক্ষরের বেশি হতে পারে না (সুতরাং কোনও এনক্রিপশন নেই)।

সীমাটি যদি সত্যিই 45 টি অক্ষর হয় তবে eCryptfs বেশিরভাগ ক্ষেত্রে ব্যবহারের সরঞ্জাম নাও হতে পারে।

ECryptfs সহ ফাইল এবং ফোল্ডারগুলি এনক্রিপ্ট করার সময় সর্বাধিক অনুমোদিত ফাইলনামের আকারটি কী? লিনাক্স 255 অক্ষর?


6
ইমো যেভাবে এনক্রিপ্ট ফাইলের নামগুলি এনক্রিপ্ট করে তা সাধারণ হাস্যকর। প্রথমে এটি একটি নির্দিষ্ট স্ট্রিং "ECRYPTFS_FNEK_ENCRYPTED" প্রেরন করে 20 টিরও বেশি বাইট দেয়। প্রতিটি ফাইলের নাম। তারপরে এটি অভিন্ন নামগুলি আলাদা দেখানোর জন্য অনেকগুলি এলোমেলো বাইট প্রিপেন্ড করে। এনএসএফএস আরও কার্যকর উপায়ে এটি করে।

উত্তর:


70

সম্পূর্ণ প্রকাশ: আমি লেখকদের একজন এবং eCryptfs ব্যবহারকারী স্থান ইউটিলিটির বর্তমান রক্ষণাবেক্ষণকারী।

দুর্দান্ত প্রশ্ন!

লিনাক্সের বেশিরভাগ ফাইল সিস্টেমে (EXT4 সহ) সর্বাধিক 255 টি অক্ষরের ফাইলের দৈর্ঘ্য এবং 4096 অক্ষরের সর্বাধিক পথ রয়েছে।

eCryptfs একটি স্তরযুক্ত ফাইল সিস্টেম। এটি EXT4 এর মতো অন্য একটি ফাইল সিস্টেমের উপরে স্ট্যাক করে যা আসলে ডিস্কে ডেটা লেখার জন্য ব্যবহৃত হয়। eCryptfs সর্বদা ফাইল সামগ্রীগুলি এনক্রিপ্ট করে, তবে এটি বিকল্পভাবে ফাইল-এর নামগুলি (অস্পষ্ট) এনক্রিপ্ট করতে পারে (বা না)।

যদি ফাইলের নামগুলি এনক্রিপ্ট করা না থাকে তবে আপনি নিরাপদে 255 টি অক্ষরের ফাইলের নাম লিখতে এবং তাদের বিষয়বস্তু এনক্রিপ্ট করতে পারেন, কারণ নিম্ন ফাইল সিস্টেমে লিখিত ফাইলের নামগুলি কেবল মিলবে। যখন কোনও আক্রমণকারী index.htmlবা এর সামগ্রীগুলি পড়তে সক্ষম না হয় তবে budget.xlsতারা জানত যে ফাইলগুলির নাম বিদ্যমান। এটি আপনার ব্যবহারের ক্ষেত্রে নির্ভর করে সংবেদনশীল তথ্য ফাঁস হতে পারে (বা নাও)।

যদি ফাইলের নামগুলি এনক্রিপ্ট করা থাকে তবে জিনিসগুলি কিছুটা জটিল হয়ে যায়। eCryptfs এনক্রিপ্ট করা ফাইলের সামনের অংশে কিছুটা ডেটা প্রিনড করে, যেমন এটি এনক্রিপ্ট করা ফাইলের নামগুলি অবশ্যই সনাক্ত করতে পারে। এছাড়াও, এনক্রিপশন নিজেই ফাইল নাম "প্যাডিং" জড়িত।

উদাহরণস্বরূপ, আমার কাছে একটি এনক্রিপ্ট করা ফাইল রয়েছে ~/.bashrc,। এই ফাইলটির নামটি এখানে আমার কী ব্যবহার করে এনক্রিপ্ট করা হয়েছে:

/home/kirkland/.Private/ECRYPTFS_FNEK_ENCRYPTED.dWek2i3.WxXtwxzQdkM23hiYK757lNI7Ydf0xqZ1LpDovrdnruDb1-5l67.EU--

স্পষ্টতই, 7 অক্ষরের ফাইলনামটির এখন এনক্রিপ্ট করার জন্য 7 টিরও বেশি অক্ষরের প্রয়োজন। আমন্ত্রণমূলকভাবে, আমরা দেখতে পেয়েছি যে অক্ষর ফাইলের নামগুলি 143 টিরও বেশি লম্বা হতে শুরু করে> 255 টি অক্ষর এনক্রিপ্ট করা প্রয়োজন। সুতরাং আমরা (eCryptfs upstream বিকাশকারী হিসাবে) সাধারণত সুপারিশ করি আপনি আপনার ফাইলের নামগুলি characters 140 অক্ষরে সীমাবদ্ধ করুন।

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


আমি সত্যিই দেখতে পছন্দ করব, FUSE ওভারলে ফাইল সিস্টেমটি এটি নিজস্ব "খুব দীর্ঘ ফাইলের নামগুলি" থেকে সমাধান করে এবং আন্ডারলিং ফাইল সিস্টেমের সাথে কেবল প্রক্সি 1: 1 এ বিশ্রাম দেয়। এই জাতীয় FUSE fs বিভিন্ন ফাইল সিস্টেমে (ecryptfs, এনএনএফএস) ব্যবহারযোগ্য হবে যখন বর্তমানে সমর্থিত ফাইলের নামগুলির জন্য কিছুই পরিবর্তন হবে না। এবং আবার, alচ্ছিক হবে। - আমার ইচ্ছা: unix.stackexchange.com/q/283149/9689
Grzegorz Wierzowiecki

17
এই উত্তর সম্পূর্ণ সঠিক নয়। কোনও ফাইলনামের সর্বাধিক আকার 255 বাইট বা সি / সি ++ চর প্রকারের। তবে একটি ফাইলের নামের সর্বাধিক অক্ষর আলাদা হয়। ইউটিএফ -8 ব্যবহার করার সময় যা বেশিরভাগ সিস্টেমে ডিফল্ট, ইউটিএফ -১ using, the৩-১২7 ব্যবহার করে ফাইলের নামটি -2৩-২55৫ অক্ষর (ওরফে কোড পয়েন্ট) এর মধ্যে হতে পারে। এটি লক্ষণীয় গুরুত্বপূর্ণ, যে 1 টি অক্ষর স্টোরেজ স্পেসে এক বা একাধিক বাইট হতে পারে এবং সিস্টেমের ব্যবহারকারীরা যে কোড সেট ব্যবহার করছেন তা নির্ভর করে।
রহলি

বিকাশকারীকে প্রস্তাবনা: সাব-ডাইরেক্টরিগুলিতে এনক্রিপ্ট করা নামগুলি বিভক্ত করুন যা শেষ ব্যবহারকারী থেকে প্রয়োজনীয় দৈর্ঘ্য পেতে গোপন করা হয়, যদি কোনও বাহ্যিক ফাইল সিস্টেমের প্রয়োজন হয় তবে সম্ভবত লিনাক্স সর্বাধিক নামের দৈর্ঘ্যের সীমাও অতিক্রম করে। একটি একক ফাইল বা ডিরেক্টরি হয়ে যায় "ENCRYPTFS-01-OF-04 [.....] / ENCRYPTFS-02-OF-04 [.....] / ENCRYPTFS-03-OF-04 [..... ] / ENCRYPTFS-04-OF-04 [.....] "- লিনাক্স বিটিআরএফএস, এক্সট১-৪, এবং অন্যদের মধ্যে কোনও সর্বাধিক সংজ্ঞায়িত ডিরেক্টরি গভীরতা নেই যাতে ফাইল সিস্টেমটি এই জাতীয় একাধিক অব্যক্ত সাবডিরেক্টরিজগুলিতে প্রসারিত ফাইল এবং দির নামগুলি পরিচালনা করতে পারে can ।
ডেল মহালকো

1
আমার পরামর্শটি হ'ল আপনি ফাইলের নামের পরিবর্তে এক্সটাটারে যা কিছু মেটাডেটা সংরক্ষণ করছেন তা সঞ্চয় করে রাখা উচিত। : |
ট্রেজকাজ

1
আপনি বলেছেন eCryptfs "optionচ্ছিকভাবে (অস্পষ্ট) ফাইলের নাম এনক্রিপ্ট করতে পারে (না)" আমি কীভাবে ফাইলের নাম এনক্রিপশন অক্ষম করব যাতে আমি আমার সম্পূর্ণ 255-চর ফাইলের নাম 143 অক্ষরের মধ্যে সীমাবদ্ধ না রেখে ফিরে পেতে পারি? আমি বিশ্বাস করি যে আমার উবুন্টু ইনস্টল প্রক্রিয়া চলাকালীন, আমি যে পদ্ধতিতে ইক্রিপ্টফগুলি ইনস্টল করেছি, সেভাবে বক্সটি পরীক্ষা করা বা "এনক্রিপ্টড হোম ডিরেক্টরি" র জন্য যা কিছু ছিল তা ছিল।
গ্যাব্রিয়েল স্টেপলস

11

এই থ্রেডটি খুব আকর্ষণীয় কারণ আমি ঠিক একই জিনিসটি নিয়ে ভাবছিলাম। ফাইলের নামগুলি যদি 140 টি অক্ষর বা তার চেয়ে কম হওয়া দরকার তবে আমি 50 000 এর মধ্যে 20 টি ফাইলের নাম পরিবর্তন করে নিয়ে বেঁচে থাকতে পারি, তবে 45 বা তার চেয়ে কম সম্ভব হয় না (আমার অবস্থাতেই) কারণ এতে আমার অনেক বেশি ফাইলের নাম পরিবর্তন করতে হবে।

আমি ঠিক একই প্রশ্নটি সরাসরি সিনোলজিতে (এমনকি তাদের বর্তমান নিবন্ধের দিকে ইঙ্গিত করে) জিজ্ঞাসা করেছি এবং তাদের উত্তর আকর্ষণীয় ছিল: "এনক্রিপ্ট করা ভাগের ফাইলের নামের সীমা 143 বাইট। এটি 140 খাঁটি ল্যাটিন অক্ষর বা 45 সিজেকে (চীনা) পর্যন্ত হতে পারে , জাপানি এবং কোরিয়ান) অক্ষর "

এই উত্তরের অনুসরণে আমি নিজেকে আরও পরীক্ষামূলকভাবে করেছি, 45, 46, 140, 143 এবং 144 টি অক্ষরযুক্ত ফাইলগুলির সাথে পরীক্ষা করেছি। আমার পরীক্ষাগুলি দেখায় যে ১৪৩ টি অক্ষর পর্যন্ত ফাইলগুলি (বাইটস নয়, সিনোলজি আমাকে যা বলেছিল তার বিপরীতে) এনক্রিপ্ট করা হবে তবে ১৪৪ টি অক্ষরের ফাইলগুলি একটি ফোল্ডার এনক্রিপ্ট করার জন্য বাঁচিয়ে রাখবে। যাইহোক, আমি আমার এনএএস এর কাছ থেকে প্রাপ্ত ত্রুটি বার্তাটি হ'ল ফাইলের নামটি 45 টির চেয়ে কম বর্ণের হওয়া দরকার (যেখানে বাস্তবতাটি এটি 144 টির চেয়ে কম বর্ণের হওয়া উচিত)।

আমি সিজেকে চরিত্রগুলির সাথে পরীক্ষা করিনি ... তবে, এটি পড়ার যে কারও কাছে মনে হয় আপনি 143 টি অক্ষর না হওয়া পর্যন্ত আপনার সিস্টেম ঠিক আছে তবুও আপনি ভাল আছেন।


7

আমি স্পষ্ট করে বলতে চাই যে লিনাক্সের 255 বাইটস ফাইলের নাম অনুযায়ী 255 বাইট সীমা রয়েছে। এটি একটি তাত্পর্যপূর্ণ পার্থক্য এবং যদি আপনি উদাহরণস্বরূপ ইউটিএফ -8 এনকোডিং ব্যবহার করেন তবে আপনি সর্বোচ্চ 100 অক্ষরের ফাইল নাম দিয়ে শেষ করতে পারেন।


1
প্রতিটি অক্ষর কোড পয়েন্টে 4 বাইটের সর্বাধিক এনকোডিং ব্যবহার করে তবে 63টি সর্বোচ্চ। এটি যে কোনও ইউটিএফ স্কিমা (ইউটিএফ -16 এবং ইউটিএফ -32) এর জন্য একই
রাহলি

@ রাহলি যদিও শেষ পর্যন্ত এটি পরিবর্তন হতে পারে। সর্বাধিক বৈধ ইউনিকোড কোড পয়েন্টটি U+10FFFFইউসিএস -২ এর সীমাবদ্ধতাগুলি পূরণ করার জন্য হ্রাস করার আগে (মূলত ইউটিএফ-১ 16 সরোগেট পেয়ার ব্যতীত), এটি কীভাবে এনকোড হয় তার কারণে ইউটিএফ -8-এ 32-বিট কোড পয়েন্ট উপস্থাপন করতে 6 বাইট পর্যন্ত প্রয়োজন হতে পারে "চরিত্রের শুরু" এবং "চরিত্রের ধারাবাহিকতা" নিশ্চিত করার জন্য যে আপনি যেখানে কোনও বাইট স্ট্রিমের মধ্যে পার্সিং শুরু করবেন তা বিবেচনা করেই পার্সার সিঙ্ক্রোনাইজেশন পুনরায় অর্জিত হতে পারে। সবসময় এমন সম্ভাবনা থাকে যে তারা শেষ পর্যন্ত সেই সিদ্ধান্তটিকে উল্টে নেওয়ার সিদ্ধান্ত নেবে কারণ তারা আনইন্সাইড কোড পয়েন্টের বাইরে চলেছে।
ssckolow

1
তবে অত্যন্ত সম্ভাবনা নেই, যদি না তারা পাগলের মতো চরিত্রগুলি যুক্ত করা শুরু করে। U8.0 হিসাবে, কেবল 120 ​​কে বরাদ্দ করা হয়েছে। তারা এই পুনরাবৃত্তিতে 8 ডলার অক্ষর যুক্ত করেছে। যদি তারা এটি ধরে রাখে তবে এটির সংস্করণ 106 ডলারে প্রসারিত হওয়া দরকার।
রাহলি

এবং আমি মনে করি তারা প্রথমে উইন্ডোজকে একটি জাভাস্ক্রিপ্ট মেরে ফেলতে হবে, কারণ তারা উভয়ই ইউটিএফ -16 এর উপর নির্ভর করে। (এটা পারে সম্ভব জাভাস্ক্রিপ্ট এর ক্ষেত্রে এটা সংশোধনের জন্য, যদিও হতে?)
SamB

1

ইক্রিপ্টের ফাইলনাম দৈর্ঘ্যটি আমার পক্ষে কেবল একটি সমস্যা ছিল যে দীর্ঘ ফাইলের নামগুলি সমর্থন করার জন্য আমার হোম ডিরেক্টরিটির একটি বিশেষ সাবট্রির প্রয়োজন ছিল এবং শেষ পর্যন্ত আমি বুঝতে পেরেছিলাম যে আমি কেবল একটি ফাইলের মধ্যে একটি ফাইল সিস্টেম তৈরি করতে পারি এবং এটি মাউন্ট করতে পারি:

dd if=/dev/zero of=/home/me/.some.img bs=1024 count=1024
mkfs.ext3 /home/me/.some.img
chmod 777 /home/me/longfilenames
sudo mount /home/me/.some.img /home/me/longfilenames

এটির সাথে সম্ভবত সব ধরণের দক্ষতার সমস্যা রয়েছে তবে এটি আমার ক্ষেত্রে যথেষ্ট যেখানে ফাইলগুলি স্থানীয় পরীক্ষার জন্য কেবল স্থানীয় ফলাফলের জন্য পর্যায়ক্রমিকভাবে তৈরি হয়।

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

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