-1

我的情况 是,我正在使用 Windows 8,并在虚拟框中使用 archlinux(只是一个简单的设置...... LAMP 和 Ruby 用于 sass 和 compass)构建一个本地 Web 开发框。我使用 samba 在 Linux 中共享了我的一个文件夹,以便能够在 Windows 8 中查看和编辑它。我将 Linux 中的文件夹设置为 http:http 和 0777 写入权限,以便我能够在 Windows 中对其进行编辑。

我的问题: 每当我在 Windows 中创建新文件(例如...图像、文件夹、文件)时,所有权和组都设置为nobody:nobody。

我的问题: 当我在 Windows 中创建一个新文件时,有没有办法将所有者和组自动设置为 http:http 和 0777 写入权限?

我是 Linux 新手,我知道这是一个安全风险,但这只是一个 Web 开发盒。只是为了让我能够玩 ruby​​ 和 rails、sass 或 compass,当然还可以从头开始扩展我对 Linux 的一点了解。

4

2 回答 2

1

编辑 smb.conf

  • 出于安全原因,在 Windows 8 上设置一个静态 IP,例如(192.168.1.50),这样任何人都无法访问您的 samba 共享目录。在您的 smb.conf 中取消注释host allow并将其设置为您的 Windows 静态 IP。

例子:

host allow = 192.168.1.50

接下来向下导航到共享部分并设置要共享的目录。

例子:

[www]
comment = www
path = /www
writable = yes
guest ok = yes
public = yes
created mask = 0777
directory mode = 0777

然后保存。

接下来是 setui 和 setgid 更多信息在这里

$sudo chmod -R g+s /www

接下来是设置访问控制列表。* 我刚从这里得到这个

$sudo setfacl -R -m d:g:http:rwx /www

而已!

输出样本,通过 windows 8 和 virtualbox 测试

从linux创建的目录

drwxrwsrwx+ 2 devbox http 4096 Mar 12 10:18 testfromnix

从linux创建的文件

-rw-rw-rw-+ 1 devbox http 1 Mar 12 10:20 testfromnix.file

(我在 setfacl 设置了 rwx,但文件只显示读取和写入。我可能遗漏了一些东西。但它可以满足您的目的。如果有人知道为什么它打开以供澄清。)

从windows创建的目录

drwxrwsrwx+ 2 nobody http 4096 Mar 12 10:27 testfromwin

从windows创建的文件

-rwxrwxrw-+ 1 nobody http 0 Mar 12 10:29 testfromwin.file

现在您可以毫无问题地在两台机器上编辑或添加文件/目录...

于 2013-03-11T18:56:28.470 回答
0

您可以在目录(=文件夹)上设置“setgid”标志,这将更改之后在其下创建的所有文件和目录的所属组。有关更详细的说明,请参阅http://en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories 。

除非您需要完全满足您需求的特殊东西。只需为目录设置适当的组权限即可。

另一种方法可能是更改 samba 配置以使用不同的用户来创建新文件。但那是别人来回答的:)

于 2013-03-11T16:54:17.250 回答