第六周
个人主页发布系统
一、配置dns
二、安装vsftpd
rpm -qa | grep ftpd
yum install vsftpd
systemctl start vsftpd.service
auth required pam_nologin.so //如用户shell为/sbin/nologin, 则需选择pam_nologin.so模块
//pam参考文档:https://www.cnblogs.com/ilinuxer/p/5087447.html
客户端以主动模式访问-1. 使用ftp命令行可以登录并上传文件(默认为主动模式)-2. 修改internet选项:高级->关闭使用被动FTP- 设置->网络与internet->网络共享中心->internet选项<a name="7d1879b8"></a>## 三、修改apache配置文件,激活UserDir功能`vi /etc/httpd/conf.d/userdir.conf`- 注释**UserDir Disable**- 打开**UserDir public_html**刷新配置文件- `systemctl restart httpd.service`<a name="66b46ef0"></a>## 四、配置相关系统服务配置相关服务开机启动- `systemctl enable httpd.service`- `systemctl enable named.service`- `systemctl enable vsftpd.service`配置防火墙开放相关端口- `firewall-cmd --add-service=http --permanent`- `firewall-cmd --add-service=dns --permanent`- `firewall-cmd --add-service=ftp --permanent`- `firewall-cmd --reload`设置selinux为permissive状态- `vi /etc/selinux/config`修改**selinux=permissive**- `setenforce 0`临时修改,立即生效<a name="d4200e31"></a>## 五、创建测试用户`useradd -s /sbin/nologin user01`<br />`passwd user01``useradd -s /sbin/nologin user02`<br />`passwd user02`<a name="a054f8da"></a>## 六、配置目录权限`chmod o+x /home/user01`<br />`chmod o+x /home/user02`<a name="4a8ddfdc"></a>## 七、测试ftp登录上传测试主页- 主页目录必须为public_html浏览器访问- [http://www.11-hcz.cn/~username](http://www.11-hcz.cn/~username)<a name="b59df6b0"></a>## 项目拓展<a name="SELinux"></a>### SELinux启动selinux配置UserDir查询相关布尔值- `getsebool -a`- `getsebool -a | grep http | grep home`设置selinux开放UserDir- `setsebool -P httpd_enable_homedirs on`<br />加-P参数重启后仍然有效,否则恢复缺省值<a name="4b33dc9d"></a>### 解决Apache中文乱码问题在Apache配置文件中为Indexes指定特定的编码在配置文件**httpd.conf**或**userdir.conf**中添加:`IndexOptions Charset=UTF-8`<a name="Shell"></a>### Shell自动创建单个用户并授权```bash#! /bin/bashuseradd -s /sbin/nologin $1echo "123" | passwd --stdin $1chmod 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
