Linux下Proftpd和Mysql的简单管理方法:proftpd和mysql组合可以完成比较庞大而且完备的权限控制,但是也同样增加了管理和维护的复杂性,在这里我介绍一种简单易行的配置方法,适用于100个用户以下的应用。这种方法的核心在于巧妙的运用了设置gid位,读者最好找资料了解一下相关的知识。这种方法的配置管理工作相当少,也相当的简单,同时还可以保持一个清晰的权限系统结构。
一、思路
首先需要明确的概念是proftpd的用户与linux系统的用户的关系:linux系统的用户即为proftpd的用户。proftpd的权限控制是基于Linux系统得权限控制之上的,即用户对于某个文件或目录,必须先有Linux系统的权限,在此基础上proftpd才能设置其特有的一些权限。其实一般来说Linux自有的权限系统就是一个比较完善的权限系统了,我们完全可以只利用这个权限系统,就足可以满足我们的要求了。
我们设置一个ftp管理员ftpadmin属于ftpadmin组,ftp的根目录/ftp是ftpadmin的个人根目录,这样ftpadmin可以完成日常的管理。通过设置/ftp的gid可以保证新上传的文件是属于ftpadmin用户,加上再设置umask值002保证上传文件的组读写权限,这样管理员就可以对其管理下的文件进行管理,而同时保证了不改变该文件的属主。
ftp的用户,我们只需新建一个Linux用户,而把他的用户目录制定在/ftp之下就可以。操作起来很简单。
二、建立ftp管理员:ftpadmin
- [root@localhost root]groupadd ftpadmin #ftpadmin为新添加的组的名字
- [root@localhost root]useradd -d
- /ftp -g ftpadmin -s /sbin/nologin admin
- [root@localhost root]chmod 2775 /ftp
同时保证ftpadmin 是 /ftp的属主,ftpadmin 是/ftp的组属主。这样就保证了ftpadmin对要管理的/ftp目录有全部的权限。
-s /sbin/nologin 指定用户不能从shell登录,就是说只能从ftp方式登录,这样是出于安全的考虑。
修改/usr/local/etc/proftpd.conf
- nobody ftpadmin
- nogroup ftpadmin
- Umask 002
#允许所有者,组用户对ftp进行管理。
掩码Umask改为 002 。即组成员和所有者都可对文件夹进行增删,改等操作。其他用户可读可执行,但不可写。这样,ftpadmin用户可以通过同组的身份对所有的文件进行读写,同时也不改变其内容的原有权限。也就说,不改变这个文件夹下的文件的所有者身份,但同时又可以管理这些文件。
chmod 2775 /ftp,通过设置了文件夹的gid,以后在这个文件夹下写的所有文件,不管其所有者是谁,文件的组必定是ftpadmin(因为/ftp的组属于ftpadmin),都合理的被纳于ftpadmin的管理之下。
三、添加用户:user1
useradd -d /ftp/user1 -g ftpadmin -s
/sbin/nologin user1
这样user1就对/ftp/user1的目录有完整的权限,而作为管理员也可以通过组权限对目录进行管理。
每当需要添加用户的时候,只需方便的简单的添加一个Linux的用户就可以了。
四、对应的配置文件
这是proftpd.conf中的重要条目
Umask 002
DefaultRoot
Umask 002 保证了新建的文件有组读写权限。
DefaultRoot ~ 保证 每个用户登录后被锁定在自己的目录里,看不到其他用户的目录。
读者最好找资料了解一下相关的知识。这种方法的配置管理工作相当少,也相当的简单,同时还可以保持一个清晰的权限系统结构。读完本文以后,读者对Linux下Proftpd和Mysql的管理方法了解多多少了呢?还不赶快实践实践?
【编辑推荐】