ওএস এক্স-এ, কেন `sudo ls` লুকানো (বিন্দু) ফাইল দেখায়?


162

ওএস এক্স ইয়োসেমাইটের সাথে নিম্নলিখিত কমান্ডগুলি ব্যবহার করে আমি নিম্নলিখিতটি পেয়েছি:

$ touch .a
$ touch b
$ /bin/ls
b
$ /bin/ls -A
.a  b
$ sudo /bin/ls
.a  b

এটি গোপন ফাইলগুলি দেখায় (যেগুলির নাম একটি বিন্দু দিয়ে শুরু হয়) যখন রুট দ্বারা আহ্বান জানানো হয় এবং সাধারণ ব্যবহারকারী হিসাবে চলাকালীন সেগুলি (প্রত্যাশার মতো) প্রদর্শিত হয় না। এটি lsলিনাক্সের (যা থেকে আসে coreutils) কী করে তার থেকে পৃথক ।

কেন এভাবে lsআচরণ করে ?


141
আমি এই ট্যাগগুলিকে "ওএসএক্স খারাপ" হিসাবে ভুলভাবে পড়েছি এবং সত্যিই বিভ্রান্ত হয়ে পড়েছি।
রায়স্টাফেরিয়ান

5
এটি বড় বিভ্রান্তিকর হবে যদি ট্যাগ বড় হাতের মধ্যে দেওয়া হয় BSDএবং OSXএখানে আরো উপযুক্ত হয়।
ryenus

@ রেস্তাফেরিয়ান বেশ মজার, কারণ সাধারণত অন্যভাবে এইভাবে লোকেরা ট্যাগ সহ বাক্য লেখার চেষ্টা করে।
ব্রায়াম

উত্তর:


404

দেখা যাচ্ছে এই বৈশিষ্ট্যটি অ্যাপল-নির্দিষ্ট নয়। এটি সাধারণভাবে বিএসডি সিস্টেমগুলির একটি বৈশিষ্ট্য।

/* Root is -A automatically. */
if (!getuid())
    f_listdot = 1;

প্রাথমিকভাবে, আমি এটি আবার 4.4BSD-লাইটের উত্সগুলিতে সন্ধান করতে সক্ষম হয়েছি । 1994 সাল থেকে এটি এই ফ্রিবিএসডি প্রতিশ্রুতিতে ইতিমধ্যে উপস্থিত ছিল যা এই উত্সগুলি আমদানি করে।

বৈশিষ্ট্য এছাড়াও OpenBSD মধ্যে বর্তমান থাকে এবং খুঁজে পাওয়া যেতে পারে এই কমিট 1995 NetBSD বা থেকে কোড আমদানি করা দাবী করেন যে থেকে, তাই এই ইতিমধ্যে উপস্থিত ছিলেন NetBSD বা

তারপর 1993 থেকে কোড আমদানি করা দাবী করেন যে থেকে NetBSD বা এর কমিট আবিষ্কার 386BSD , এবং ফিচার আগে থেকেই সেখানে । তদুপরি, এই প্রতিশ্রুতিটি দেখায় যে এটি ১৯৯১ সালে ৩৮6 বিএসডি সংস্করণ ০.০ এর বিকাশের সময় ছিল যা বিএসডি থেকে ৪.৩-এর কাছাকাছি দাঁড়িয়েছিল, যতদূর আমি বলতে পারি।

মন্তব্যকারীকে উন্নয়ন সময় প্রথমবারের মত হাজির 4.3BSD-রেনো মধ্যে এই কমিট (27 জুন 1989) এনটাইটেলমেন্টসহ "প্রথম নতুন ম সংস্করণ কাজ"। মূল মন্তব্যটি বলেছে:

/* root sees all files automatically */

যা সেদিন পরে পরিবর্তন করা হয়েছিল (আমি নিশ্চিত না যে এই সংগ্রহস্থলে টাইমস্ট্যাম্পগুলি পুরোপুরি সঠিক কিনা):

/* root is -A automatically */

আর শুধুমাত্র 1992 সালে বড় হাতের অক্ষর এবং সময়ের যোগ করা হয় নি কি আমরা এখন পরিণত মন্তব্য বাঁক:

/* Root is -A automatically. */

তবে এই স্ন্যাপশটে দেখা যায় 9 মে 1979 হিসাবে 2BSD তে আচরণটি উপস্থিত ছিল :

Aflg = getuid() == 0;

আমি সেই সময়গুলির থেকে কোনও আসল ইতিহাস খুঁজে পাচ্ছি না, তবে 1977 সালের 1BSD এর এই স্ন্যাপশটটি lines লাইনগুলি ছাড়াই রয়েছে। এবং -Aপতাকা ছাড়া আসলে।

সুতরাং দেখে মনে হয় যে বৈশিষ্ট্যটি কোথাও কোথাও 1977 সালের নভেম্বরের মধ্যে (1BSD সেই মুহুর্তে বিকাশমান) এবং মে 1979 সালে 2BSD প্রকাশের মধ্যে চালু হয়েছিল।


আমি কি এছাড়াও, এই তদন্ত চলাকালে পাওয়া যায় -Iফ্ল্যাগ থাকে, এটি যোগ করা হয়েছিল 2005 সালে FreeBSD 'র ক্ষেত্রে এই আচরণ ওভাররাইড করতে এবং ছিল reworked একটি সামান্য বিট পরে।


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

23
Luaan এর মন্তব্যের জন্য রেফারেন্স: plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp (যেখানে রব পাইক ব্যাখ্যা করেছেন যে গোপন "ডট ফাইল" একটি বাগ হিসাবে শুরু)।
নিবোট

2
পসিক্স রেশনাল থেকে, "এলএস ইউটিলিটির কিছু historicalতিহাসিক বাস্তবায়ন ডট এবং ডট-ডট ব্যতীত ডিরেক্টরিতে সমস্ত এন্ট্রি দেখায় যখন কোনও সুপার-ব্যবহারকারী -a বিকল্পটি উল্লেখ না করেই এলএসকে আহ্বান করে। <পিরিয়ড> দিয়ে শুরু হওয়া নামের সাথে যে কোনও ফাইলগুলির ফাইল অপারেশন হিসাবে নাম না দেওয়া উচিত নয়। " pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html
আর ..

এটি অনেক বেশি পুরানো। আমি মনে করি এটি SysV-BSD বিভাজনের পূর্বাভাস হিসাবে শেষবারের মতো SysV সিস্টেমে অ্যাক্সেস পেয়েছিলাম ঠিক একই আচরণ উপস্থিত ছিল।
জোশুয়া

3
মহাকাব্য উত্তর। ইতিহাস শিখেছি!
কোরি গোল্ডবার্গ

15

সোর্স কোডের এখানে একটি লিঙ্ক । উল্লেখ্য /* Root is -A automatically. */। এটি অ্যাপলের বিএসডি সংস্করণে একটি বৈশিষ্ট্য ls


আকর্ষণীয় সন্ধান। এলএস করার সময় লুকানো ফাইলগুলি দমন করার কোনও উপায় আছে কি?
মিস্টার লিস্টার

5
এইচএম, দেখে মনে হচ্ছে এটি কোনও অ্যাপল-নির্দিষ্ট বৈশিষ্ট্য নয়, তবে এটি বিএসডি বিশ্ব থেকে এসেছে?
কিরেলেগিন

2
ঠিক আছে, এটি অ্যাপল-নির্দিষ্ট নয়। আপনার উত্তরের জন্য ধন্যবাদ, এটি আমাকে সঠিক পথে রাখে। Root is -A automaticallyক্লুগুলি অনুসন্ধান করার জন্য আমি স্ট্রিংটি ব্যবহার করেছি ।
কিরেলেগিন

মিঃ লিস্টার: আপনি অনেক অপারেটিং সিস্টেমে (I) মূলধন হিসাবে ডট ফাইলগুলির প্রদর্শন দমন করতে পারেন (ফ্রিবিএসডি, সম্ভবত ওএস
অ্যালান জুড

1

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


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