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