DVK*_*DVK 5 unix samba windows-7 text-editors file-permissions
我试图弄清楚为什么当从安装在 SAMBA 的 Unix 分区上的 Windows 编辑器保存的文件的权限更改时,会出现特定行为。
情况:
我们在 Unix 上有一个文件,具有 777 权限:
-rwxrwxrwx 1 testuser users 4859 Jan 23 15:09 fbparser.pl*
文件所在的目录是通过 Samba 从 Windows 7 PC 挂载的。
我们在“Notepad++”或“Sublime”编辑器中打开文件进行编辑。
更改并保存文件后,在 unix 端,权限更改为:
-rw-rwxrwx 1 testuser users 4859 Jan 23 15:09 fbparser.pl*
现在,我怀疑这可能不是由于 Samba 挂载,因为在常规 Windows 记事本中打开和保存文件时不会发生同样的问题!
因此,我最初的想法是,这是因为上面提到的编程编辑器可能会被设置为 - 而不是简单地保存文件 - 将原始文件重命名为$orig_filename.bak
,然后将新内容保存为具有原始文件名的 NEW 文件。这是基于我自己之前使用 UltraEdit 编辑器解决相同问题的经验。
但是,如果这是烫发变化的原因,我无法解释我观察到的两个其他症状:
首先,首先没有创建备份文件。
其次,touch
在 Unix Shell 的同一目录中创建新文件(使用)时,新文件的权限根本不是-rw-rwxrwx
。
第三,如果重要的话,文件的 inode # 在编辑后保持不变。
还有什么可能是问题,我可以采取哪些步骤来调查它?
当我告诉 UE 不要通过重命名备份文件时,我自己的 UltraEdit 问题就消失了;但是 Notepad++ 没有这样的选项。
我在尝试解决一个非常相似的问题时发现了这个问题。我的解决方案是添加map archive = no
到 smb.conf 的全局部分。
根本问题是 Samba 将权限从 Dos 映射到 Linux 的方式。
似乎当记事本 ++ 保存文件时,它正在设置/重置 dos 文件“存档”属性。默认情况下,Samba 使用它来管理文件用户权限的执行属性。
因此,如果您设置 Samba 参数:
map archive = no
Run Code Online (Sandbox Code Playgroud)
该属性没有被映射,并且用户执行权限按照他们之前设置的内容保留。
归档时间: |
|
查看次数: |
5424 次 |
最近记录: |