第六周

个人主页发布系统

一、配置dns

二、安装vsftpd

rpm -qa | grep ftpd

yum install vsftpd

systemctl start vsftpd.service

  • vim /etc/pam.d/vsftpd

    • ```bash

      auth required pam_shells.so //此模块要求用户shell在/etc/shells中存在

auth required pam_nologin.so //如用户shell为/sbin/nologin, 则需选择pam_nologin.so模块

//pam参考文档:https://www.cnblogs.com/ilinuxer/p/5087447.html

  1. 客户端以主动模式访问
  2. -
  3. 1. 使用ftp命令行可以登录并上传文件(默认为主动模式)
  4. -
  5. 2. 修改internet选项:高级->关闭使用被动FTP
  6. - 设置->网络与internet->网络共享中心->internet选项
  7. <a name="7d1879b8"></a>
  8. ## 三、修改apache配置文件,激活UserDir功能
  9. `vi /etc/httpd/conf.d/userdir.conf`
  10. - 注释**UserDir Disable**
  11. - 打开**UserDir public_html**
  12. 刷新配置文件
  13. - `systemctl restart httpd.service`
  14. <a name="66b46ef0"></a>
  15. ## 四、配置相关系统服务
  16. 配置相关服务开机启动
  17. - `systemctl enable httpd.service`
  18. - `systemctl enable named.service`
  19. - `systemctl enable vsftpd.service`
  20. 配置防火墙开放相关端口
  21. - `firewall-cmd --add-service=http --permanent`
  22. - `firewall-cmd --add-service=dns --permanent`
  23. - `firewall-cmd --add-service=ftp --permanent`
  24. - `firewall-cmd --reload`
  25. 设置selinuxpermissive状态
  26. - `vi /etc/selinux/config`修改**selinux=permissive**
  27. - `setenforce 0`临时修改,立即生效
  28. <a name="d4200e31"></a>
  29. ## 五、创建测试用户
  30. `useradd -s /sbin/nologin user01`<br />
  31. `passwd user01`
  32. `useradd -s /sbin/nologin user02`<br />
  33. `passwd user02`
  34. <a name="a054f8da"></a>
  35. ## 六、配置目录权限
  36. `chmod o+x /home/user01`<br />
  37. `chmod o+x /home/user02`
  38. <a name="4a8ddfdc"></a>
  39. ## 七、测试
  40. ftp登录
  41. 上传测试主页
  42. - 主页目录必须为public_html
  43. 浏览器访问
  44. - [http://www.11-hcz.cn/~username](http://www.11-hcz.cn/~username)
  45. <a name="b59df6b0"></a>
  46. ## 项目拓展
  47. <a name="SELinux"></a>
  48. ### SELinux
  49. 启动selinux配置UserDir
  50. 查询相关布尔值
  51. - `getsebool -a`
  52. - `getsebool -a | grep http | grep home`
  53. 设置selinux开放UserDir
  54. - `setsebool -P httpd_enable_homedirs on`<br />
  55. 加-P参数重启后仍然有效,否则恢复缺省值
  56. <a name="4b33dc9d"></a>
  57. ### 解决Apache中文乱码问题
  58. Apache配置文件中为Indexes指定特定的编码
  59. 在配置文件**httpd.conf**或**userdir.conf**中添加:
  60. `IndexOptions Charset=UTF-8`
  61. <a name="Shell"></a>
  62. ### Shell
  63. 自动创建单个用户并授权
  64. ```bash
  65. #! /bin/bash
  66. useradd -s /sbin/nologin $1
  67. echo "123" | passwd --stdin $1
  68. chmod o+x /home/$1

后期可结合PHP,建立主页申请页面,实现用户自主申请开通个人主页空间。

批量创建用户并授权

#! /bin/bash

#从UserList.txt中读取数据创建用户,UserList.txt中每一行一个用户名
groupadd students
for UserName in `cat UserList.txt`
do
    useradd -g students -s /sbin/nologin $UserName
    chmod o+x /home/$UserName
done