我根本没学过LINUX系统。因为论坛空间的需要,买了国外的VPS,装了LINUX系统。刚拿到后台账号的时候,我完全迷茫了。一切都是空白,没有系统,没有HTTP服务器,只是一个赤裸裸的“网络硬盘”。还好百度大叔在,让我可以“水中捞月”。不查,不知道。原来这些国外VP的使用信息也少得可怜。我好不容易学会了SSH,费了好大劲终于装上了kloxo面板。最后,我们有HTTP和FTP。上传资料后发现权限的问题很严重。“用户名”和“用户组”中还有哪些“所有者”?使用chown命令更改“所有者”时,我几乎被弄糊涂了。最后,论坛开始运行。没过多久,问题又来了。我不知道这是怎么回事。FTP文件无法显示,但是在kloxo面板修改后无法显示,有时还无法登录。百度大叔在那里也没有找到可用的资料。估计只有我一个人遇到过这种问题吧!关于FTP权限的问题,我仔细思考了很久。估计是FTP用户的权限和目录所有者的权限有问题。kloxo面板中的FTP用户管理功能太简单了,怎么改都没用,只好查相关命令。
好事多磨。终于找到了管理FTP用户的命令模式:sudou useradd-g Apache-d/dev/null-s/bin/false ftpadmin。首先,创建一个属于Apache用户组的FTP管理员用户。因此,会出现以下内容:创建邮箱文件:文件存在。
useradd:警告:主目录已经存在。没有从skel目录复制任何文件到它里面。
估计之前也创建过相同的文件。不管它,来以下代码:sudo pure-pw useraddadmin-u ftpadmin-d/home/admin/XXX . com。
这是在pure-ftpd程序中建立一个FTP用户admin,并绑定到刚刚建立的系统用户ftpadmin。这个FTP用户的主目录是/home /home/admin/XXX.com在执行每个命令后,pure-pw会要求输入该帐户的密码。连续输入两次密码后,生成FTP账号。然后,每次修改用户设置时更新虚拟用户数据库,而不重新启动服务,并运行以下命令:
sudo纯pw mkdb
最后,将网站根目录的所有者改为ftpadmin,否则FTP无法上传文件。chown-R FTP admin/home/admin/XXX . com
-
当我们使用php程序时,安装后,如果要删除整个目录,会发现apache用户生成了一些文件,ftp用户无法删除。
其实是有办法解决的。
1.用户组控制方法
首先,虚拟主机中的所有虚拟用户(ftp用户)都被添加到apache组中。然后,将umask设置为002,这样用户和组都具有读写执行权限。这是一个简单的方法,但不安全。不同的用户可以互相删除对方的文件,因为是同一个群,群有读写权限。
2.使用linux的高级权限管理acl。
对一个目录设置双重权限,除了用户自己的用户组,加入apache获得他的读写权限。
这样,用户可以删除apache生成的文件,但是对于其他虚拟用户来说,他们不能删除。
我们来看看第二种控制方法。
在linux系统中,不仅仅是所有者、同组用户和其他用户可以被分配一个文件(目录)的权限,你还可以指定其他用户或组,但是有一个前提,就是挂载分区时添加acl选项,比如:
mount /dev/hda1 /home -o acl .
那你可以用
setfacl-m u:FTP:rwx/home/FTP/www
将/home/ftp/www目录的所有权限分配给ftp用户的命令。
如果要/home/ftp/www/,新创建的目录和文件具有相同的权限。
setfacl-d-m u:FTP:rwx/home/FTP/www
设置默认权限。该命令还可以控制多个用户的不同权限,例如
setfacl-m u:FTP:rwx/home/www;
setfacl-m u:tmp:r-x/home/www;
ftp用户拥有所有权限,而tmp用户拥有只读权限。
您也可以设置掩码的值:
setfacl-m m:rwx/home/www;
这样,您可以同时允许虚拟主机用户和apache用户操作文件和目录。比如apache的用户名是apache,虚拟主机的用户名是vmuser,目录是/home/vmuser/www。您可以使用以下命令:
setfacl-m u:VM user:rwx/home/VM user/www;
setfacl-m u:Apache:rwx/home/VM user/www;
setfacl-d-m u:VM user:rwx/home/VM user/www;
setfacl-d-m u:Apache:rwx/home/VM user/www;
setfacl-m m:rwx/home/VM user/www;
setfacl-d-m m:rwx/home/VM user/www;
这样在安装PHP程序的时候就不会提示apache用户没有写文件的权限,当你想删除一个目录的时候也不会因为下面有apache用户生成的文件而无法删除。当然这种方式也有一定的局限性,就是基本上只能使用ext2和ext3分区格式,其他的,比如xfs和jfs,都不能直接使用,只能修改后使用。