如何使新复制的文件始终具有 777 权限

如何使新复制的文件始终具有 777 权限

我有一个在网络上共享的 Linux ext3 分区。现在当有人从 MAc 复制文件时,由于权限问题,其他人无法更改该文件。

有没有办法让复制的新文件始终具有 777 权限

并且某些特定用户是文件所有者,而不是默认用户

谢谢

答案1

添加create mask = 0777到共享定义或全局配置中,/etc/samba/smb.conf例如:

[someidentifier]
    comment = open directory
    browseable = yes
    read only = no
    create mask = 0777
    directory mask = 0755
    path = /some/path/on/server

ETC。

至于文件所有权,没有任何配置设置,但是,似乎拥有文件创建目录的所有权的人将是所创建文件的所有者:组。

因此,对于有问题的共享,将所有权:组设置为您想要的值,即

chown john.users /some/path/on/server

答案2

查看共享定义访问控制Samba 手册中的部分。create mask和相关的安全选项应该允许您设置文件权限,如您所述。

答案3

我很惊讶,居然没人抱怨权限 777。为什么需要这么高的权限?为什么需要执行位?

假设访问文件的每个人都应具有读写权限。这些用户将属于组rwsamba。导出的文件夹将是 /data

所以:

创建共享文件夹、更改所有权并设置粘滞位

mkdir /data
chown whoever:rwsamba /data
chmod 2770 /data

这将确保 /data 中的每个新文件和子目录都属于组rwsamba

配置 samba 以创建具有 660 权限的文件和具有 2770 权限的目录

[shareme]
    comment = Share me
    browseable = yes
    read only = no
    create mask = 0660
    directory mask = 2770
    path = /data

每个使用 samba 的用户都必须属于一个组rwsamba

就这样就行了。新文件和目录的所有者与创建者相同,组为所有者,rwsamba每个人都可以读取所有内容。当然,作为所有者,我有权更改权限,因此“熟练”用户可以随意修改它们。可以通过告诉 samba 覆盖新文件和目录的所有者来解决此问题:

force user = whoever

相关内容