फ़ाइलों को संरक्षित कैसे करें?


24

कुछ फ़ाइल कैसे बनाएं जिसमें महत्वपूर्ण डेटा संरक्षित है? उदाहरण के लिए, मान लीजिए कि मेरे पास कुछ फाइलें हैं जो महत्वपूर्ण हैं, क्या उबंटू पर इस तरह की फाइल को अधिक सुरक्षित बनाने के लिए कोई विधि या रणनीति है? जब भी कोई इसे खोलने की कोशिश करता है, तो मैं कुछ फाइलें पासवर्ड के लिए पूछना चाहता हूं। क्या यह सुरक्षा नीति के संदर्भ में उबंटू के संस्करण को प्रभावित करता है? क्या मैं किसी भी एन्क्रिप्शन एल्गोरिथ्म का बाहरी रूप से उपयोग कर सकता हूं? सादर।


सुरक्षात्मक से आपका क्या मतलब है? आप फ़ाइल को संशोधित या हटाना अधिक कठिन बनाना चाहते हैं?
ज़न्ना

इस अर्थ में सुरक्षात्मक कोई भी मेरी अनुमति के बिना इसे एक्सेस नहीं कर सकता है या किसी भी संशोधन को हटाना भी आसान नहीं है। या इसे मुश्किल तरीके से खोलने के लिए कुछ पासवर्ड की आवश्यकता होती है।
अवनी बधेका

क्या आपका मतलब बस chown rootऔर है chmod go-rwx?
njzk2

पासवर्ड की आवश्यकता के लिए, एक एन्क्रिप्टेड डिस्क या डिस्क छवि फ़ाइल का उपयोग करें जो स्वचालित नहीं करता है।
यहोशू

जवाबों:


32

आपके पास सबसे अच्छा तरीका है chattr +i {file}। यह अपरिवर्तनीय विशेषता सेट करता है और फिर किसी फ़ाइल को रूट सहित किसी के द्वारा बनाया, संशोधित, हटाया, बदला या हार्डलिंक नहीं किया जा सकता है।

फ़ाइल को संपादित करने वाला एकमात्र व्यक्ति रूट है। (एस) उसे अपरिवर्तनीय बिट को हटाकर इसे पूर्ववत करना होगा: chattr -i {file}और फिर फ़ाइल के साथ जो कुछ भी कर सकते हैं। + I को सेट करना फिर से किसी भी संशोधन से फ़ाइल को लॉक करता है।

यह उस विभाजन को प्रारूपित करने से नहीं रोकेगा जहाँ फ़ाइल संग्रहीत है। यह फ़ाइल की चोरी को रोक देगा।


यदि आप चाहें, तो आप इसे एक पूर्ण पर्वतारोहण पर भी कर सकते हैं:

chattr +i -R /discworld

पूरे "डिस्कवर्ल्ड" और उसमें कुछ भी अपरिवर्तनीय बना देगा ( chattr -i -R /discworldइसे पूर्ववत करने के लिए;))



मैं केवल रूट द्वारा संशोधित, हटाना, नाम बदलना आदि कर सकता हूं। यहां तक ​​कि अगर रूट नहीं बदल सकता है, तो यह केवल सभी के लिए पढ़ेगा, जो मुझे अपने मामले में नहीं चाहिए।
अवनी बधेका

@Avanibadheka रूट संपादन से पहले chattr -i कर सकता है और फिर इसे लॉक करने के लिए फिर से chattr + i कर सकता है।
रिनजविंड

1
आप स्थायी रूप से (रिबूट तक) सिस्टम से किसी अपरिवर्तनीय बिट को संशोधित करने की क्षमता को हटा सकते हैं।
रैडकॉम्बेनमैन

इसे कॉपी भी नहीं किया जा सकता है? तो बिल्ली फ़ाइल> उत्पादन या डी डी काम नहीं करते?
कोनरक

1
एक अपरिवर्तनीय फ़ाइल को कॉपी किया जा सकता है (जब तक कि यह सेट न हो chmod a-r)। उदाहरण के परीक्षण के लिए मेरा टर्मिनल लॉग देखें ।
रुस्लान

18

कुछ विशेष किए बिना, आप दूसरों के लिए अनुमतियों को हटाकर फ़ाइल को पढ़ना, बदलना या हटाना मुश्किल बना सकते हैं। रूट को फ़ाइल का स्वामी बनाएं और इसे एक डायरेक्टरी के अंदर रखें जिसमें केवल रूट की एक्सेस हो ...

sudo mkdir /home/secret     #this directory will be owned by root, no need to chown
sudo chmod 700 /home/secret

चाल ( sudo mv file /home/secret) में अपनी फ़ाइल और वहाँ करते हैं

sudo chown root: /home/secret/file
sudo chmod 600 /home/secret/file

chmodऔर chownकई तर्क लें: chmod 600 file1 file2याchmod 600 file*

इसके अलावा, एन्क्रिप्शन का उपयोग करें ...


3
शायद यह समझना आसान है कि क्या आप ऑक्टल के बजाय चरित्र अनुमतियों का उपयोग करते हैं। इसलिए यह "chmod go-rwx" उदाहरण के लिए, समूह और अन्य से अनुमतियाँ पढ़ने, लिखने और निष्पादित करने के लिए होगा। चामोद मैन पेज देखें।
17:17 बजे jamesqf

12

दस्तावेजों की सुरक्षा के लिए एक काफी सुरक्षित तरीका एन्क्रिप्शन है (बशर्ते आप मूल को नष्ट कर दें और एन्क्रिप्टेड संस्करण को ठीक से स्टोर करें)।

अनुमतियां (के रूप में अन्य उत्तर ने सुझाव दिया) धोखा दिया जा सकता है (देखें इस )।

इसलिए, मैं आपको फ़ाइल को ठीक से एन्क्रिप्ट करने की सलाह देता हूं। यहां कैसे:

(एक ग्राफिकल इंटरफ़ेस विधि के लिए, इस उत्तर का अंत देखें)

सुनिश्चित करें कि आपने gpgस्थापित किया है।

उदाहरण के लिए, नाम की फ़ाइल को एन्क्रिप्ट करने के लिए Important_File.txt, उपयोग करें

$ gpg -c Important_File.txt

अब पासवर्ड डालें (इसे बाद में पढ़ने के लिए इस्तेमाल किया जाएगा)।

अब आपको मूल नाम और .gpgएक्सटेंशन के साथ एक फ़ाइल मिलेगी , उदाहरण के लिए Important_File.txt.gpg

मूल फ़ाइल निकालें, और .gpgसंस्करण रखें । यदि आप सुरक्षित shredउपयोगिता का उपयोग नहीं करते हैं तो डिस्क से मूल फ़ाइल प्राप्त करना आसान हो सकता है (जो अभी भी SSD ड्राइव या अन्य कार्ड पर काम नहीं करेगा):

$ shred Important_File.txt

अब हमारे पास केवल Important_File.txt.gpgहमारे साथ है।

जब भी आपको इसे पढ़ने की आवश्यकता होती है, बस

$ gpg Important_File.txt.gpg

फिर पहले कमांड में आपके द्वारा निर्धारित पासवर्ड डालें। आपको मूल मिलेगा Important_File.txt

नोट : यह केवल एन्क्रिप्टेड फ़ाइल की सामग्री को .gpgकिसी के द्वारा पढ़ा जा रहा है (एन्क्रिप्शन का उपयोग करके) की रक्षा करेगा , लेकिन कोई भी इसे हटा, कॉपी या स्थानांतरित कर सकता है ! से बुनियादी सुरक्षा के लिए है कि , एन्क्रिप्टेड पर अन्य उत्तर की अनुमति के तरीकों का उपयोग .gpgफ़ाइल।

ग्राफिकल इंटरफ़ेस (GUI) विधि

Seahorse एप्लिकेशन इंस्टॉल करें।

तब आप इसे फ़ाइल एप्लिकेशन से कर सकते हैं:

गनोम फ़ाइलों का स्क्रीनशॉट एन्क्रिप्ट करना


1
"दस्तावेजों की रक्षा करने का एकमात्र सुरक्षित तरीका एन्क्रिप्शन है" मैं असहमत हूं। एन्क्रिप्ट करने का कार्य सुरक्षित नहीं है जो इसे सुरक्षित बनाता है। यह उसके बाद का सामाजिक हिस्सा है। यदि आप "यह पासवर्ड है: 11212324234" के साथ एन्क्रिप्टेड फ़ाइल के बगल में एक रीडमी बनाते हैं, तो आप सभी को एन्क्रिप्ट कर सकते हैं जो आप चाहते हैं कि यह सुरक्षित है।
रिनजविंड

1
@ रिनविंड एडिटेड। वैसे भी, मूर्खता के उस स्तर के साथ, कुछ भी सुरक्षित नहीं है।
UniversallyUniqueID

प्रत्याशा में ;-) upvoted
Rinzwind

ध्यान दें कि यदि आप इसे हटाते हैं ( rmया फ़ाइल प्रबंधक से हटाते हैं) तो मूल अनएन्क्रिप्टेड फ़ाइल को पुनः प्राप्त करना आसान हो सकता है । इसका उपयोग करने के लिए आपको इसे अप्राप्य बनाने के लिए इसे अधिलेखित करने की आवश्यकता होगी shred। यही कारण है कि SSDs और फ्लैश ड्राइव हालांकि पर भी बेकार है ...
बाइट कमांडर

@ByteCommander धन्यवाद, मैंने इसे उत्तर में जोड़ दिया है।
यूनिवर्सलीयूनीकिड

9

बस एक बहुत सख्त अनुमति 600 सेट करें, ताकि केवल स्वामी ही पढ़ सके, और उसे लिख सके (यदि आपको निष्पादन अनुमति की आवश्यकता है, तो वह 700 होगी)।

आप भी इसे रेखांकन कर सकते हैं - बस ठीक है, फ़ाइल पर क्लिक करें का चयन करें Properties > Permissions > Set, और सेट सभी लेकिनowner कुछ भी नहीं करने के लिए क्षेत्र।

एक उदाहरण के रूप में चित्र देखें:

चित्र


अरे, मुझे लगता है कि आपके उत्तर को स्क्रीनशॉट के साथ यह दिखाने में फायदा होगा कि यह GUI के साथ कैसे किया जाता है।
ग्रूवप्लेक्स

हो गया, धन्यवाद :) (लेकिन मेरा सिस्टम इतालवी में है ...)
dadexix86

@Zanna अच्छा अवलोकन (मैंने उत्तर संशोधित किया)
dadexix86

8

यदि आप सिस्टम पर एकल उपयोगकर्ता हैं, और कोई भी आपके अनुमतियों के बिना आपके कंप्यूटर तक उचित रूप से नहीं पहुंच सकता है, तो आप केवल ज़न्ना के उत्तर के अनुसार, इस कमांड का उपयोग करके ब्लॉक को एक्सेस कर सकते हैं :

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

अब, आपको यहां सावधान रहने की आवश्यकता है क्योंकि यदि किसी उपयोगकर्ता के पास अपने सिस्टम पर रूट है, तो वे आपके एन्क्रिप्टेड विभाजन को संशोधित / नष्ट कर सकते हैं, इसे बेकार कर सकते हैं। वे ड्राइव से डेटा चोरी भी कर सकते हैं, लेकिन केवल जब यह खुला हो। हालाँकि, वे डेटा चोरी नहीं कर सकते हैं या यह भी देख सकते हैं कि डेटा आपके बिना स्पष्ट रूप से मौजूद है। इसलिए, यह सुनिश्चित करना आपका कर्तव्य है कि जब आप अपना एन्क्रिप्टेड वॉल्यूम खोल रहे हों, तो आपके सिस्टम में कोई भी रूट उपयोगकर्ता ऑनलाइन न होने के लिए पर्याप्त सुरक्षित है।


टीएल; डीआर :

  1. तिजोरी बनाएं:

    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
    
  2. तिजोरी भरें:

    sudo mkdir /crypt
    sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
    
  3. तिजोरी लॉक करें:

    sudo umount /crypt
    sudo cryptsetup luksClose my-secret-device
    
  4. तिजोरी को फ्रीज करें:

    chmod 400 ~/NSA-Data-Dump-20161012.img
    sudo chattr +i ~/NSA-Data-Dump-20161012.img
    
  5. तिजोरी खोलें:

    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
    

निश्चित रूप से रूट एक्सेस वाला एक उपयोगकर्ता cryptsetupकिसी भी ऐसे पासवर्ड को बदल सकता है, जो किसी भी पासवर्ड को दर्ज करता है ...
Hagen von Eitzen

@HagenvonEitzen हाँ, ठीक है, कंप्यूटर पर "वास्तव में सुरक्षित" जैसे कुछ भी नहीं है। एक बिंदु है जहां आप रेखा खींचते हैं।
कज़ वुल्फ

7

निर्देशिका एन्क्रिप्शन के लिए आप एन्काफ़्स का उपयोग कर सकते हैं ।

मूल रूप से आपको 2 निर्देशिकाएं बनाने की जरूरत है, 1 जिसमें एन्क्रिप्टेड डेटा संग्रहीत किया जाएगा और 1 जहां आप उस डेटा तक पहुंचेंगे:

mkdir ~/.encrypted
mkdir ~/private

फिर निष्पादित करें (आपको अपनी निर्देशिका को 'माउंट' करने के लिए हर बार इस लाइन को निष्पादित करने की आवश्यकता है):

encfs ~/.encrypted/ ~/private/

जब तक आप इसके बारे में अधिक नहीं जानते, बस ENTERमानक सेटिंग्स (केवल पहली बार पूछे जाने वाले) के साथ जाने के लिए दबाएं ।

फिर अपना पासवर्ड डालें और यह माउंट हो जाएगा।

आपका डेटा केवल आपके उपयोगकर्ता द्वारा सुरक्षित रूप से एक्सेस किया जाएगा ~/private/(आप बहुत उपेक्षा कर सकते हैं ~/.encrypted)

इसे अनमाउंट करने के लिए:

sudo umount ~/private/

या

fusermount -u ~/private/

इतना ही आसान।


3

आप क्रिप्टकीपर का उपयोग करके डेटा को एन्क्रिप्ट कर सकते हैं जो वास्तव में एक बहुत अच्छा अनुप्रयोग है और आपकी फ़ाइल को सुरक्षा प्रदान कर सकता है। आप इसे स्थापित कर सकते हैं:

sudo apt-get update
sudo apt-get install cryptkeeper

मैं आमतौर पर आपको नाम के साथ शुरू होने वाले फ़ोल्डर को एन्क्रिप्ट करने की सलाह देता हूं . क्योंकि इसे फ़ाइल के नाम से पहले डालने से वह छिप जाएगा। यह थोड़ा मुश्किल है लेकिन यह काम करता है।

फ़ोल्डर को अनहाइड करने के लिए, Ctrl+ hया vise-versa का उपयोग करें ।


1
कीस्ट्रोक Ctrl + h किस अनुप्रयोग के लिए लागू होता है? यह lsनिश्चित रूप से काम नहीं करेगा ।
मेलेबियस

Ctrl-H कम से कम Nautilus (और इसके कांटे, जैसे निमो) के लिए काम करता है। अन्य फ़ाइल प्रबंधकों के लिए, मैं नहीं बता सकता। उपयोग करते समय ls, आप -aसभी (यानी छिपे हुए सहित) फ़ाइलों को दिखाने के लिए स्विच का उपयोग कर सकते हैं ।
s3lph
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.