原始需求
1. 在Ubuntu16.04系统上搭建FTP服务器;
2. 每个项目只有项目参与人才能访问项目目录;
3. 管理员可以访问所有项目目录;
可行性分析
基于附录中的LINUX权限说明,每个新建的用户都只属于自己命名的群组,用户新建的文档、目录也都属于该群组。如果我们让管理员加入该群组,增加文档的群组权限,就能让管理员也访问该目录;我们将其他不在群组的用户权限设置为0,则其他人都没有权限访问该文档、目录。从而我们就能够实现FTP服务器权限控制。
与需求不一致的原始需求要求所有参加项目的用户也能够访问到,此需求与上层沟通后废除了此项要求。
最终需求
1. 在Ubuntu16.04系统上搭建FTP服务器;
2. 每个项目只有项目主负责人才能访问项目目录;
3. 管理员可以访问所有项目目录;
FTP搭建步骤
前提设置
1. 所有的项目目录放置在:/home/mrdata/project 目录下,目录下每个子目录为一个单独的项目。
2. 每个项目目录及内部文档由项目主负责人创建上传。
FTP服务安装
使用命令:$sudo apt-get install vsftpd
测试本地服务运行正常
$sudo /etc/init.d/vsftpd start 开启服务
$sudo /etc/init.d/vsftpd stop 关闭服务
$sudo /etc/init.d/vsftpd status 查看服务状态
注意: 即使开始服务失败,指令输出的信息也可能是成功的。每次开启后,需要使用指令查询服务的启动状态日志信息。
创建用户
$sudo useradd -d /home/mrdata/project -s /bin/bash XXX
为新用户设置密码
$sudo passwd XXX
服务配置
打开FTP服务配置文件
$sudo gedit /etc/vsftpd.conf
write_enable=YES #可以上传(全局控制) 、删除、重命名操作
local_umask=007 #本地用户上传文件的umask,默认为077即只有文件拥有者具有访问权限,群组和其他用户都没有权限访问文件。配置为007表示群组用户也拥有访问文件权限。
chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
chroot_list_file= #指定限制的用户文件,文件内部每个用户名一行
user_config_dir= #后面跟存放配置文件的目录。
通过与chroot_local_user=YES/NO搭配能实现以下几种效果:
1、当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
2、当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
3、当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
4、当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
local_root= #此项设置每个用户登陆后其根目录位置
allow_writeable_chroot=YES #此项设置允许进入可写的目录下
管理员加入群组
$sudo usermod -G XXX YYY
YYY为管理用户名,XXX为新建用户的群组
此命令是将管理用户YYY外加到群组XXX中,不改变YYY的其他群组信息。
连接测试
附录
文件权限
使用命令ls -l中显示的内容如下:
-rwxrw-r‐- 1 root root 1213 Feb 2 09:39 abc |
1)第一列的10个字符确定不同用户的权限
– 第一个字符代表文件(-)、目录(d),链接(l)
– 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
– 第一组rwx:文件所有者的权限是读、写和执行
– 第二组rw-:与文件所有者同一组的用户的权限是读、写、不能执行
– 第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
2)第二列 1 表示连接的文件数
3)第三列 root 表示文档拥有者
4)第四列 root 表示用户所在的组
5)第五列 1213 表示文件大小(字节)
6)第六列 Feb 2 09:39 表示最后修改日期
7)第七列 abc 表示文件名
Linux权限说明
创建用户时,比如运行如下指令
指令说明: 新用户的主目录为project,使用的shell为bash,新用户为liugx
/etc/passwd 文件保存用户的基本信息;
/etc/shadow文件保存用户加密后的密码等,看到!表示尚未设置密码;
groups用来查看用户所属的群组,以及群组内的成员;
使用passwd指令给liugx设置密码后,shadow中的对应字段改变;
结论:新建一个用户liugx时,默认新建一个群组liugx,该群组只有liugx一个用户。
新用户创建一个文档,查看文档的权限分配
使用su 质量切换当前用户为liugx;
使用echo 将一段文本写入文档中,文档不存在会新建一个;
使用ls -l 指令列举文档的信息;详细说明见附录1。
结论:liugx创建的文档、目录拥有者是liugx,文档的群组是liugx。
今天的文章FTP服务器搭建与权限配置分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33164.html