यदि आप सिस्टम पर एकल उपयोगकर्ता हैं, और कोई भी आपके अनुमतियों के बिना आपके कंप्यूटर तक उचित रूप से नहीं पहुंच सकता है, तो आप केवल ज़न्ना के उत्तर के अनुसार, इस कमांड का उपयोग करके ब्लॉक को एक्सेस कर सकते हैं :
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
इस मामले में, फ़ाइल को केवल root
उपयोगकर्ता द्वारा पढ़ा और / या लिखा जा सकता है । यह "पर्याप्त सुरक्षित" माना जाता है यदि कोई भी आपके कंप्यूटर को आपकी अनुमति के बिना बूट नहीं कर सकता है, या आपकी हार्ड ड्राइव को उठा सकता है। हम root
इस मामले में उपयोगकर्ता का उपयोग कर रहे हैं , क्योंकि root
उपयोगकर्ता हमेशा फ़ाइलों को पढ़ सकता है, भले ही उनके पास अनुमति न हो। रूट उपयोगकर्ता का उपयोग करके, हम यह लागू करते हैं कि केवल एक उपयोगकर्ता ही इसे एक्सेस कर सकता है।
यदि आप फ़ाइल को किसी भी तरह से, आकार या रूप में अपरिवर्तनीय के रूप में चिह्नित करना चाहते हैं, तो आप i
फ़ाइल को अपरिवर्तनीय के रूप में चिह्नित करने के लिए विशेषता का उपयोग कर सकते हैं । इस स्थिति में, फ़ाइल की अनुमतियां लॉक हो जाती हैं और किसी भी परिस्थिति में परिवर्तित नहीं की जा सकती हैं। इस प्रकार, आप फ़ाइल को अपरिवर्तनीय बनाने के लिए निम्न आदेश कर सकते हैं, और इसे हटाने और अनुमति परिवर्तन से बचा सकते हैं:
sudo chattr +i /my/secret/file.txt
आप इसे बदलना चाहते हैं, की जगह +i
एक साथ -i
अस्थायी रूप से फ़ाइल अनलॉक करने के लिए। देखें Rinzwind का जवाब एक और अधिक में गहराई से देखने के लिए।
अब, यदि अन्य लोगों के पास आपके कंप्यूटर तक पहुँच है (या तो रिमोट sudo
एक्सेस या किसी भी प्रकार की भौतिक पहुँच), तो यह तुरंत अलग हो जाता है। एक हमलावर root
आपकी फ़ाइल को पढ़ने, लाइव यूएसबी डालने, या बस अपनी हार्ड ड्राइव खींचने के लिए शक्तियों का उपयोग कर सकता है ।
इसलिए, हमें फ़ाइल को एन्क्रिप्ट करने की आवश्यकता है। मैं व्यक्तिगत रूप से "फाइल कंटेनर" का उपयोग करना पसंद करता हूं, ताकि आप वहां अधिक से अधिक चिपक सकें और आवश्यकतानुसार इसे विकसित कर सकें। chattr +i
अभी भी अनुशंसा की जाती है ताकि फ़ाइल गलती से नष्ट न हो (या परिवर्तित)। अंत में, यदि आप एक एन्क्रिप्ट की गई छवि का उपयोग कर रहे हैं, तो आप डिस्क को माउंट किए जाने पर दूसरों को फ़ाइलों के बहुत सीमित उपसमूह तक पहुंचने की अनुमति दे सकते हैं, जिससे यह सर्वर के लिए अच्छा है। यह गाइड मूल रूप से यहां उपलब्ध था , और यहां उपयोग के लिए अनुकूलित किया गया था।
सबसे पहले, आप अपने उपयोग के लिए एक डिस्क छवि बनाना चाहते हैं। इस उदाहरण में, हम इसे 5 जीबी बनाने जा रहे हैं।
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
फिर, हमें आपकी छवि को एन्क्रिप्ट करने की आवश्यकता है:
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
अपने पसंदीदा एन्क्रिप्शन पासवर्ड को दर्ज करने के लिए आपके पास यहाँ एक विकल्प होगा। एक बार यह हो जाने के बाद, हमें कच्चे ब्लॉक डिवाइस को उजागर करने की आवश्यकता है:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
अभी, हमारे पास एक डिक्रिप्टेड फ़ाइल कंटेनर है, लेकिन कोई फाइल सिस्टम नहीं है, और यह बेकार के रूप में अच्छा है। चलो इसे ठीक करें:
sudo mkfs.ext4 /dev/mapper/my-secret-device
अब, हमें अपने नए विभाजन को माउंट करने के लिए एक जगह की आवश्यकता है। इस मामले में, मैं इसे डाल रहा हूँ /crypt
। मैं उपयोगकर्ता 1000 हूं, इसलिए, मैं अपना विभाजन सेट करने जा रहा हूं ताकि केवल मुझे (और रूट) इसे पढ़ने / लिखने की अनुमति मिल सके।
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
अब, मैं नेविगेट करने के लिए अपने फ़ाइल टूल का उपयोग /crypt
कर सकता हूं और मैं अपनी सभी संवेदनशील फ़ाइलों को वहां संग्रहीत कर सकता हूं। एक बार जब मैं कर लेता हूं, तो मुझे अपने विभाजन को अनमाउंट और री-एन्क्रिप्ट करना होगा।
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
अब, मैं अपनी छवि फ़ाइल पर उपयुक्त विभाजन सेट करने जा रहा हूं, जैसे कि केवल I और रूट इसे एक्सेस कर सकते हैं, और यह कि इसे अब और नहीं बदला जा सकता है।
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
जब भी मैं पढ़ने के लिए इस फ़ाइल को खोलना चाहता हूं, मुझे बस इन दो कमांडों को चलाने की आवश्यकता है, जिसे मैं आसानी से उपनाम कर सकता हूं:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
मेरा एन्क्रिप्टेड डेटा पर उपलब्ध होगा /crypt
और यह केवल और केवल मेरे और रूट तक ही पढ़ा जा सकेगा।
यदि मैं फ़ाइल को बदलना चाहता हूं, तो मुझे अनुमतियां बदलनी होंगी और फिर माउंट करना होगा:
sudo chattr -i ~/NSA-Data-Dump-20161012.img
chmod 700 ~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
अब, आपको यहां सावधान रहने की आवश्यकता है क्योंकि यदि किसी उपयोगकर्ता के पास अपने सिस्टम पर रूट है, तो वे आपके एन्क्रिप्टेड विभाजन को संशोधित / नष्ट कर सकते हैं, इसे बेकार कर सकते हैं। वे ड्राइव से डेटा चोरी भी कर सकते हैं, लेकिन केवल जब यह खुला हो। हालाँकि, वे डेटा चोरी नहीं कर सकते हैं या यह भी देख सकते हैं कि डेटा आपके बिना स्पष्ट रूप से मौजूद है। इसलिए, यह सुनिश्चित करना आपका कर्तव्य है कि जब आप अपना एन्क्रिप्टेड वॉल्यूम खोल रहे हों, तो आपके सिस्टम में कोई भी रूट उपयोगकर्ता ऑनलाइन न होने के लिए पर्याप्त सुरक्षित है।
टीएल; डीआर :
तिजोरी बनाएं:
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mkfs.ext4 /dev/mapper/my-secret-device
तिजोरी भरें:
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
तिजोरी लॉक करें:
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
तिजोरी को फ्रीज करें:
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
तिजोरी खोलें:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro