我设法在Ubuntu服务器上设置samba,以便可以通过Windows浏览我的主目录/home/max 。
现在我想共享目录/usr/local/apache2/htdocs – 为了在Windows和apache htdocs目录之间共享文件,我该做些什么? htdocs目录由www-data拥有。
我很新的unix访问权限的东西,所以我真的不知道从哪里开始。 任何(容易)的解释赞赏。 谢谢!
传统的Unix访问权限相当简单。
对于每个文件或目录,您定义它的所有者及其所属的组。 文件或目录只有一个组,但用户可以属于多个组。
权限是为每个定义的
这里相关的主要权限是
当您使用ls -l时,这些权限按上面build议的顺序列出。 例如
rw- r-- --- joe www-data ... example.html
(为清楚起见,添加空格)这意味着
当您使用Web浏览器访问服务器上的文件时,它是代表您访问这些文件的Web服务器。 后台服务器进程(AKA守护进程)具有与其关联的用户名和组成员关系。 通常情况下,Web用户是未经authentication的,所以Web服务器apache代表您自己的所有者和组。 如果Web服务器进程使用www-data作为组,那么它将能够读取上面的example.html并将其提供给Web浏览器。
你可以看到有效的用户和组的networking服务器是这样使用的:
$ ps -eo user,group,cmd | grep apache root root /usr/sbin/apache2 -k start www-data www-data /usr/sbin/apache2 -k start www-data www-data /usr/sbin/apache2 -k start www-data www-data /usr/sbin/apache2 -k start
主进程拥有全能的root权限,但满足web浏览器请求的进程(这里是三个)拥有用户www-data和组www-data。 所以这些进程可以使用组权限读取example.html文件
同样的一般原则适用于Samba。 Samba服务器进程(例如smbd)可以使用多种安全configuration,所以确切的答案取决于你的Sambaconfiguration文件。
如果您的“htdocs”共享的sambaconfiguration显示“guest帐户= pcguest”,并且用户pcguest是组www-data的成员,那么它应该能够读取example.html。