服务器上的共享定义如下
[share]
path = ...
read only = no
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777
valid users = dobiasd
它通过fstab
客户端安装:
//server/share /home/dobiasd/share/ cifs file_mode=0777,dir_mode=0777,iocharset=utf8,username=dobiasd,password=dummy 0 0
客户端可以创建文件和目录。也可以再次删除新创建的目录,但是无法在该新目录中创建新文件或目录。为此,我首先必须chmod -R 777 .
在服务器上进行操作,因此目录的“ drwxrwxr-x”变为“ drwxrwxrwx”。
如何让samba以某种方式立即创建新目录,以便可以在其中创建子文件夹?
那么,这是一个Samba共享,安装在Linux机器上(使用Windows的客户端没有问题)吗?如果我理解得很好,那可能只是一个umask
问题。如果umask
在客户端上键入内容,则可能会得到提示0002
,这意味着在创建新目录时,其ACL为rwxrwxr-x
(rw-rw-r--
用于文件)。
因此,如果您希望所有新创建的文件夹和文件都可以在世界范围内写入,则可以进行设置umask 0000
(.bash_profile
例如在您的文件中)。当然,这可能不是一个好主意...
如果我是您,我将确保所有受信任的用户都是同一组的成员,请说出friends
并在您的父共享目录上设置以下权限:
chmod g+rwxs /path/to/share
此处,sgid位(s
上述)的作用是确保将在该目录下创建的所有目录和文件都归父目录的组所有者所有。
示例更加清楚(此处apaul
是users
(主要)和friends
组的成员):
$ mkdir /tmp/share
$ mkdir /tmp/share/dir1
$ ls -l /tmp/share
drwxrwxr-x 2 apaul users 4096 7 april 21:48 dir1
$ chgrp friends /tmp/share
$ chmod g+rwxs /tmp/share
$ ls -ld /tmp/share
drwxrwsr-x 4 apaul friends 4096 7 april 21:49 share/
$ mkdir /tmp/share/dir2
$ ls -l /tmp/share
drwxrwxr-x 2 apaul users 4096 7 april 21:48 dir1
drwxrwsr-x 2 apaul friends 4096 7 april 21:49 dir2
然后,friends
组中的所有成员都可以在共享下创建子目录(或文件),但是该子目录不是世界可写的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句