我有一个在网络上共享的 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