服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - LINUX下FTP用户和apache用户权限问题的解析

LINUX下FTP用户和apache用户权限问题的解析

2019-12-21 17:38Linux教程网 Linux

本文带你分析一下LINUX下FTP用户和apache用户权限问题

原来完全没有研究过LINUX系统,由于论坛空间的需要,购买的国外的VPS,装的LINUX系统。刚得到后台帐号时完全就晕菜了,什么都是空白的,没有系统,没有HTTP服务器,就是一个全裸的“网络硬盘”。还好有百度大叔在,让我可以“水中捞月”一翻,不查不知道,原来这些国外VPS的使用资料也少得可怜。。。好不容易学会了SSH,并且费了一番周折,终于装上了kloxo面板。这下总算好了,有HTTP了,FTP也有了。。。传好资料后居然发现权限的问题很严重,“用户名”、“用户组”还有什么“所有者”,要用chown命令来改“所有者”,差点搞晕了。。总算让论坛运行起来了,没有过多久,问题又来了。不知道怎么回事,FTP的文件显示不了了,在kloxo面板修改,死活显示不了,有时还登录不了。。。百度大叔那边也没有查到什么可用资料,估计就我一个碰到这种问题吧!关于FTP权限问题,我仔细的想了很久,估计就是出现在FTP用户的权限以及目录的所有者权限出现问题了。kloxo面板里的FTP用户管理功能太简单了,而且怎么改都没有用,我只好查相关的命令了。黄天不负有心人啦,终于让我找到了命令方式的管理FTP用户:sudo useradd -g apache -d /dev/null -s /bin/false ftpadmin先创建一个ftpadmin的用户,隶属于apache用户组结果出现下面的内容:Creating mailbox file: File exists

useradd: warning: the home directory already exists.Not copying any file from skel directory into it.

估计是以前有创建过同样的文件吧,不管它,再来下面的代码:sudo pure-pw useradd admin -u ftpadmin -d /home/admin/XXX.com

这是在pure-ftpd程序中建立一个FTP用户admin 并绑定到刚才建立的系统用户ftpadmin,这个FTP用户的主目录是/home/admin/XXX.com执行每条命令之后pure-pw会要求输入账号的密码。连续输入2遍密码后FTP帐号就生成了。接着,每次修改用户设置后都要更新一下虚拟用户数据库,不需要重新启动服务,运行下行命令:

sudo pure-pw mkdb

最后,再将网站根目录的所有者改成ftpadmin,不然FTP上传不了文件。chown -R ftpadmin /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

命令来给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等不能直接使用,修改后才能使用。

延伸 · 阅读

精彩推荐
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08