सांबा कनेक्शन पर सहेजते समय मैं फ़ाइल की लिनक्स अनुमतियों को बदलने से कैसे बचूँ?


4

मेरे पास उबंटू विकास सर्वर और विंडोज 7 वर्कस्टेशन है। मैं एक सांबा कनेक्शन पर लिनक्स सर्वर पर फ़ाइलों को संपादित करने के लिए विंडोज जीवीएम का उपयोग करता हूं।

विंडोज से फाइल्स को सहेजना विन्डोज़ ऐप के आधार पर लिनक्स अनुमतियों को अजीब तरीके से बदलता है जो मैं उपयोग कर रहा हूं और यह भी निर्भर करता है कि फाइल एक्सटेंशन है या नहीं।

यहाँ कुछ परीक्षण हैं

कोई विस्तार नहीं; नोटपैड 2: 644 से 764

matt@mattserver ~ % ls -l testfile
-rw-r--r-- 1 matt matt 0 2011-05-28 07:09 testfile
--- Save from Windows Notepad2 over network ---
matt@mattserver ~ % ls -l testfile
-rwxrw-r-- 1 matt matt 1 2011-05-28 07:09 testfile

कोई विस्तार नहीं; जीवीएम: 644 से 760

matt@mattserver ~ % ls -l testfile
-rw-r--r-- 1 matt matt 0 2011-05-28 07:10 testfile
--- Save from Windows Gvim over network ---
matt@mattserver ~ % ls -l testfile
-rwxrw---- 1 matt matt 0 2011-05-28 07:11 testfile

विस्तार; नोटपैड 2: 644 से 644 (अच्छा!)

matt@mattserver ~ % ls -l testfile.txt
-rw-r--r-- 1 matt matt 0 2011-05-28 07:13 testfile.txt
--- Save from Windows Notepad2 over network ---
matt@mattserver ~ % ls -l testfile.txt
-rw-r--r-- 1 matt matt 0 2011-05-28 07:13 testfile.txt

विस्तार; जीवीएम: 644 से 760

matt@mattserver ~ % ls -l testfile.txt
-rw-r--r-- 1 matt matt 0 2011-05-28 07:14 testfile.txt
--- Save from Windows Gvim over network ---
matt@mattserver ~ % ls -l testfile.txt
-rwxrw---- 1 matt matt 0 2011-05-28 07:14 testfile.txt

यहाँ मेरे smb.conf के अवशेष भाग है

[matt]
comment = Matt
path = /home/matt
public = yes
writable = yes
valid users = matt
create mask = 0771
directory mask = 0771
force user = matt
force group = matt

मैं चाहता हूँ कि सांबा कनेक्शन पर बचत करते समय अनुमतियाँ बिल्कुल भी प्रभावित न हों। मैं उसको कैसे करू?

जवाबों:


4

आप smb.conf में nt acl सपोर्ट को "नहीं" में सेट करने का प्रयास कर सकते हैं :

यह बूलियन पैरामीटर नियंत्रित करता है कि क्या smbd Windows NT एक्सेस कंट्रोल लिस्ट में UNIX अनुमतियों को मैप करने का प्रयास करेगा।

डिफ़ॉल्ट: nt acl support = yes
उदाहरण:nt acl support = no

एक और मदद हो सकती है:

नक्शा संग्रह = नहीं


1

यह कोशिश करो: (smb.conf) store dos attributes = yesऔर(.vimrc) set backupcopy=yes

मैंने अभी कुछ घंटों के लिए विभिन्न विकल्पों का परीक्षण किया है (VIM 8.1.1 विंडोज़ 32-बिट का उपयोग करके), यहाँ मैंने क्या पाया है:

सांबा 3.6.23 x86_64 CentOS 6, ext4 w / विस्तारित एटरस सक्षम

सब कुछ ज्यादातर डिफ़ॉल्ट विकल्पों के साथ सही ढंग से काम करता है, यह मानते हुए कि आपके पास set backup copy = yesवीआईएम में है। map archiveऔर store dos attributesकोई फर्क नहीं पड़ता। विम की पूर्ववत, स्वैप और बैकअप फाइलें एसएमबी के साथ बनाई गई हैं create mask, लेकिन ओवरराइटिंग करते समय लक्ष्य फ़ाइल की अनुमति सुरक्षित है।

nt acl supportविकल्प फ़ाइलों को पूर्ववत, आप सांबा शेयर के बाहर कुछ जगह पर विम का पूर्ववत dir सेट करते हैं (साम्बा 3 में केवल) को तोड़ने के लिए लगता है। इसलिए मुझे लगता है कि सांबा 3 में इसे "नहीं" पर सेट करना बेहतर है।

सांबा 4.4.9 x86_64 CentOS 7, xfs w / विस्तारित एटरस सक्षम

Samba3 के समान, लेकिन आपको store dos attributesसेट करना होगा। हालाँकि इस कॉन्फ़िगरेशन में VIM द्वारा बनाई गई बैकअप फ़ाइल में हमेशा समूह अनुमतियाँ सेट होती हैं rwx, चाहे मैं कुछ भी करूँ, मुझे नहीं पता कि क्यों। मैं वैसे भी अपने वातावरण में VIM बैकअप अक्षम करता हूं, इसलिए यह मुझे प्रभावित नहीं करता है। nt acl supportसांबा 4 में यूएनआईटी की अनुमति के लिए कोई अंतर नहीं है।

पूर्णता के लिए, मेरी कॉन्फ़िग फ़ाइल इस तरह दिखती हैं (सांबा 4):

smb.conf

    ...
    # Create new files with these permissions. Doesn't affect
    # old files being overwritten by VIM, only the new ones, as well
    # as swap & undo files.
    create mask = 0644

    # Used when creating directories over Samba
    directory mask = 0755

    # Seems to be necessary in Samba 4
    store dos attributes = yes

    # Seems necessary in Samba 3 with some VIM options
    #nt acl support = no
    ...

.vimrc

    ...
    # Don't leave backups behind when overwriting files
    set nobackup

    # Create a backup before overwriting a file, but delete it after
    # (makes overwriting files safer in some cases)
    set writebackup

    # When creating a backup, make a copy of the original file, then update
    # the original (this ensures that permissions on the original file
    # remain unchanged)
    set backupcopy=yes
    ...

0

मैंने पाया कि न तो 'nt acl सपोर्ट = नहीं' और न ही 'मैप आर्काइव = नो' ने इस समस्या को हल किया है। मेरा अनुभव यह रहा है कि सांबा हमेशा 'क्रिएट मास्क' और 'डाइरेक्टरी मास्क' द्वारा परिभाषित फाइल अनुमतियों को लागू करता है, चाहे वह किसी नई या मौजूदा फाइल को बचाने की हो।


तो आप इस समस्या को कैसे ठीक करेंगे?
Fazer87
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.