রুট / সুপারউজার আমার পড়া-সুরক্ষিত ফাইলগুলি পড়তে পারে?


35

ভাগ করা ইউনিক্স হোস্টিংয়ে, আমার কাছে যদি ফাইল সংবেদনশীল-ডেটা.টিএসটি থাকে এবং আমি ইস্যু করি:

chmod 600 sensitive-data.txt

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

হালনাগাদ

সেটআপ করা অত্যন্ত সহজ বলে মেকুরিয়াল কিরিং এক্সটেনশনটি ব্যবহার করার সিদ্ধান্ত নিয়েছে:

pip install mercurial_keyring

এবং তারপরে hgrc এ যুক্ত করুন:

[extensions]
mercurial_keyring =

তবে আমি এখনও এই প্রশ্নের উত্তরে আগ্রহী।

উত্তর:


62

হ্যাঁ, রুট ক্যান:

$ echo Hello you\! > file
$ chmod 600 file
$ ls -l file
-rw------- 1 terdon terdon 11 Feb 27 02:14 file
$ sudo -i
# cat file
Hello you!

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

$ whoami
terdon
$ sudo -i
[sudo] password for terdon: 
# whoami 
root
# su - terdon
$ whoami
terdon

সুতরাং, (বা ) rootব্যবহার করে অন্য যে কোনও ব্যবহারকারীর নামতে পরিবর্তন করতে পারেন এবং তারপরে তারা যেমন আপনি ছিলেন তেমন কিছু করতে সক্ষম হবেন।susudo -iu username


23

সর্বদা ধরে নিন যে root(এবং অন্য কোনও ব্যবহারকারী / প্রসেস CAP_DAC_OVERRIDEএবং এর সাথে CAP_DAC_READ_SEARCH) সমস্ত কিছু করতে পারে যদি না কোনও এলএসএম (সেলইনাক্স, অ্যাপমর্ম বা অনুরূপ) তাকে তা করতে বাধা দেয়।

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


দক্ষতার সাথে এটি বর্তমানে বাস্তবায়িত হওয়ায় এটি আমার সমস্যা। যেহেতু তারা লক্ষ্যগুলি নির্দিষ্ট করে না, আপনার এ জাতীয় প্রবণতা থাকা দরকার যা ক্ষমতাকে ছাড়িয়ে দেয় (যেমন সেলইনাক্স) কেবল এটি ঘটতে না পারে। একজন ব্যবহারকারীকে CAP_DAC_OVERRIDEপ্রদান করা তাদের সিস্টেমে অন্য যে কোনও সুরক্ষা ব্যবস্থাকে ওভাররাইড করার জন্য প্রয়োজনীয় সমস্ত সুযোগসুবিধা ভোগ করে। CAP_DAC_OVERRIDEমূলত CAP_DO_WHATEVER_YOU_WANT
ব্র্যাচলে

10

হ্যাঁ রুটকে কিছু করার সমস্ত সুযোগ রয়েছে

এখানে আপনি দেখতে পাচ্ছেন যে আমি একটি ডিরেক্টরি নাম পরীক্ষা তৈরি করেছি এবং একটি ফাইল লোনস্টন. টেক্সট স্পর্শ করেছি এবং ফাইলগুলি তালিকাভুক্ত করেছি

root@system99:/tmp# mkdir test && touch lonston.txt && ls -l
total 4
-rw-r--r-- 1 root root    0 Feb 27 16:35 lonston.txt
drwxr-xr-x 2 root root 4096 Feb 27 16:35 test

তারপরে আমি ফাইল এবং ডিরেক্টরিের অনুমতিটি পরিবর্তন করে 000 ব্যবহার করে বাতিল করে দিয়েছি এবং অনুমতিটি দেখতে তালিকাবদ্ধ করেছি

root@system99:/tmp# chmod 000 lonston.txt && chmod 000 test && ls -l
total 4
---------- 1 root root    0 Feb 27 16:35 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test

তারপরেও আমি ফাইলটিতে লিখতে পারি এবং বিড়ালটি ব্যবহার করে ফাইলটি পড়তে পারি

root@system99:/tmp# echo "Yes root have all Privileges than other user's, let we see the permission of user's too" > lonston.txt 

root@system99:/tmp# cat lonston.txt 
Yes root have all Privilages than other user's, let we see the permission of user's too

এমনকি আমি যে ডিরেক্টরিতে ডি --------- (নাল) 000 অনুমতি রয়েছে তাতেও প্রবেশ করতে পারি, এমনকি মূলের কোনও পড়ার বা লেখার অনুমতিও নেই।

root@system99:/tmp# cd test/
root@system99:/tmp/test# pwd
/tmp/test

এমনকি আমি ফাইলগুলি এবং ফোল্ডারগুলির কোনওরও অনুমতি পরিবর্তনের পরে তৈরি করতে পারি

root@system99:/tmp/test# touch /tmp/test/lonston/testdir/babin.txt

root@system99:/tmp/test# ls -l /tmp/test/lonston/testdir/
total 0
-rw-r--r-- 1 root root 0 Feb 27 16:39 babin.txt

এখন এখানে আমরা 400 এর সাথে পার্মিশন দেখতে পাচ্ছি

root@system99:/tmp/test# chmod 400 babin.txt

ফাইল অনুমতি দেখতে তালিকা

root@system99:/tmp/test# ls -l
total 8
-r-------- 1 root root   34 Feb 27 16:42 babin.txt
drwxr-xr-x 3 root root 4096 Feb 27 16:38 lonston

ভিএম im ব্যবহার করে আমি babin.txt ফাইলটিতে 1 লাইন যুক্ত করেছি

root@system99:/tmp/test# vim babin.txt

তবে ভিএম মোডে থাকাকালীন এটি আমাদের লক্ষ্য করবে ডাব্লু 10: সতর্কতা: কেবলমাত্র পঠনযোগ্য ফাইল পরিবর্তন করা তবে এটি এখনও লেখার যোগ্য

এখন আমরা আউটপুট জন্য ফাইল বিড়াল করতে পারেন

root@system99:/tmp/test# cat babin.txt 
hi this is the write persmission 
this is added while the file have 400 permission

তারপরে আমি রুট ব্যবহারকারীর থেকে সাধারণ ব্যবহারকারীর কাছে লগআউট করেছি এবং ফাইলটিকে নাল পারমিসনযুক্ত করে তালিকাভুক্ত করেছি যা রুটেও রয়েছে

root@system99:/tmp# exit
exit

/ টেম্প ডিরেক্টরিতে নেভিগেট করুন

sysadmin@system99:~$ cd /tmp/
sysadmin@system99:/tmp$ ls -l
total 8
---------- 1 root root   88 Feb 27 16:36 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test

তবে সাধারণ ব্যবহারকারীর কাছ থেকে ফাইলটি পড়ার সময় আমরা পারি না

sysadmin@system99:/tmp$ cat lonston.txt 
cat: lonston.txt: Permission denied

sysadmin@system99:/tmp$ cd test/
cat: test/: Permission denied

এটি হ'ল আশা করি আপনি মূল ব্যবহারকারীর শক্তি পেয়েছেন

আপনি যদি সাধারণ ব্যবহারকারীর হন তবে আপনার যদি সুডো ব্যবহারের দরকার হয় তবে এটি সুডো পাসওয়ার্ড জিজ্ঞাসা করবে

উদাহরণ:

sysadmin@system99:/tmp$ sudo cat lonston.txt 
[sudo] password for sysadmin: 
Yes root have all Privilages than other user's, let we see the permission of user's too

সুডো ব্যবহারকারীর রুট ব্যবহারকারীর গ্রুপের সাথে সহযোগিতা রয়েছে তাই সুডোর মূল বৈশিষ্ট্যটি কী।

সুডো সম্পর্কে আরও জানতে

# man sudoers

এখানে আমরা দেখতে পাচ্ছি যে তারা সাধারণ ব্যবহারকারী হিসাবে সংজ্ঞায়িত হয়েছে সুডোর অধিকার থাকতে পারে আমি এখানে কম উল্লেখ করেছি Only

sysadmin@system99:/tmp$ sudo cat /etc/sudoers

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

সম্পূর্ণরূপে আমরা ফাইলগুলি পড়তে বা সম্পাদনা করতে বা মুছতে পারি এমনকি মূলগুলিও পড়ার অনুমতি নেই।


2
কেন এই উত্তরটির এত কম সংখ্যক অগ্রগতি রয়েছে? এটি উদাহরণস্বরূপ ঘটতে পারে এমন প্রায় সমস্ত ক্ষেত্রে কভার করে।
ফু বার

8

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

(পারানোইয়া দুর্দান্ত, এটি পর্যাপ্ত পরিমাণে কখনও নেই ;-)

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


3

এটাও ধরে নেওয়া উচিত যে যার যারাই হার্ডওয়্যার হিসাবে একই ঘরে থাকার সুযোগ পাবে তারা যে কোনও কিছু পড়তে বা লিখতে পারে। যদি তারা খুব ধৈর্যশীল হয় তবে তারা শেষ পর্যন্ত এনক্রিপ্ট হওয়া ডেটা বুঝতে পারে। যদি তারা এনক্রিপশন সফ্টওয়্যার প্রতিস্থাপন করতে পারে তবে তাদের সাইড-চ্যানেল পদ্ধতিগুলির দরকার নেই।


2

হ্যাঁ, রুট সুরক্ষিত ফাইলটি পড়তে পারে এমনকি যখন মালিক না পারে (যখন মালিক অবশ্যই সুরক্ষা অপসারণ করতে পারেন এবং তারপরে সামগ্রীটি পড়তে পারেন):

echo "123" > abc.txt
chmod 000 abc.txt
cat abc.txt

বিড়াল: abc.txt: অনুমতি অস্বীকার করা হয়েছে

su
cat abc.txt

123

তবে সাধারণ সেটআপের অধীনে, রুটটি এনএফএসের মতো দূরবর্তী ফাইল সিস্টেমে সুরক্ষিত ফাইলগুলিতে অ্যাক্সেস করতে পারে না ("রুট স্কোয়াশ")।


এনএফএস রুট স্কোয়াশের উল্লেখ করার জন্য +1। তবে, যতক্ষণ না রুট এনএফএস-মাউন্টড ডিরেক্টরি মালিকানাধীন ব্যবহারকারীর পক্ষে মামলা করতে পারে ততক্ষণ রুট স্কোয়াশ সুরক্ষা দেয় না।
জেনি ডি

2

রুট বা অন্য কেউ আপনার ফাইলগুলি পড়তে সক্ষম হতে রোধ করতে আপনার এগুলি এনক্রিপ্ট করতে হবে। আপনি জটিল ফাইল সিস্টেমের ম্যানিপুলেশনগুলি মোকাবেলা করতে এড়াতে চান কিনা তা দেখার জন্য ফাইল এনক্রিপশন একটি খুব সুবিধাজনক বিকল্প।

এনক্রিপশন বিকল্পগুলি:

  1. সাধারণ ফাইলগুলি এনক্রিপ্ট করুন এবং প্রত্যেককে কিন্তু এগুলি দেখতে সক্ষম হওয়া থেকে নিজেকে আটকাবেন
  2. শেল স্ক্রিপ্টগুলি এনক্রিপ্ট করুন এবং এনক্রিপ্ট করা সংস্করণগুলি সম্পাদনযোগ্য করে তুলুন, তবে প্রত্যেককে তাদের সংশোধন করতে বা দেখতে সক্ষম হতে বাধা দিন

বিকল্প 1 টি চয়ন করা হলে, আপনার ফাইলগুলি এনক্রিপ্ট করার জন্য এখানে একটি উপায় রয়েছে:

cat (your-file) | openssl aes-128-cbc -a -salt -k "(specify-a-password)" > (your-file).enc

উপরের ফাইলটি ডিক্রিপ্ট করতে আপনি এইভাবে একটি কমান্ড চালান:

cat (your-file).enc | openssl aes-128-cbc -a -d -salt -k "(specify-the-password)" > (your-file).dec

- আপনি উপরেরটি কোনও স্ক্রিপ্টে রাখতে চাইবেন যাতে এটি আপনার ইতিহাসে প্রদর্শিত না হয়। অথবা, আপনি কেবল " -k " প্যারামিটারটি সরাতে পারেন , যা আপনাকে ওপেনসেলকে একটি পাসওয়ার্ড জিজ্ঞাসা করার অনুরোধ জানাবে।

বিকল্প 2 চয়ন করা হলে, কেবল আপনার স্ক্রিপ্টটি নিম্নলিখিত সাইটটিতে অনুলিপি করুন এবং আটকান:

http://www.kinglazy.com/shell-script-encryption-kinglazy-shieldx.htm

আপনার স্ক্রিপ্টটি সেই সাইটে জমা দেওয়ার পরে, আপনার জন্য তত্ক্ষণাত একটি জিপ ফাইল তৈরি করা হবে। জিপ ফাইলে লিঙ্কটি অনুলিপি করুন, তারপরে আপনার ইউনিক্স বাক্সে যান এবং এই পদক্ষেপগুলি সম্পাদন করুন:

  1. জিপ-ফাইল-এ লগইন করুন
  2. সদ্য-ডাউনলোড হওয়া জিপ-ফাইলটি আনজিপ করুন
  3. সিডি / টিএমপি / কিংলজিশিয়েলড
  4. ./install.sh / var / tmp / KINGLAZY / SHIELDX- (আপনার স্ক্রিপ্ট-নাম) / হোম / (আপনার ব্যবহারকারীর নাম) -ফোর্স

একবার আপনি পূর্ববর্তী পদক্ষেপগুলি সম্পন্ন করার পরে, আপনি কেবলমাত্র আপনার এনক্রিপ্ট করা স্ক্রিপ্টটি যেখানেই এটি ধাপ 4-এ ইনস্টল করার জন্য নির্দিষ্ট করেছেন সেখানে চালাতে পারবেন .... যেমন / হোম / (আপনার ব্যবহারকারীর নাম) / (আপনার এনক্রিপ্টড স্ক্রিপ্ট)। SH

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