第六周
个人主页发布系统
一、配置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/bash
useradd -s /sbin/nologin $1
echo "123" | passwd --stdin $1
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