今天我们继续给大家介绍Linux相关内容,本文主要内容是Apache服务用户个人主页的实战。

一、用户个人主页实战背景

有时,我们在网站运维时,会遇上下列场景,Linux系统中的每个用户都有就建立网站的需求,希望能够在自己的家目录下存放自己的网站根目录,因此其他用户无法对自己的网站进行修改。Apache服务可以通过个人用户主页实现上述功能。

二、个人主页实战操作

(一)配置文件修改

在Apache服务中,个人用户主页功能默认关闭,为了打开该功能,我们首先进入httpd服务的个人用户主页配置文件/etc/httpd/conf.d/userdir.conf,该配置文件是专门用于配置个人用户主页的配置文件,由于该配置文件已经在主配置文件中引用,所以我们在该配置文件中进行配置与在主配置文件中进行配置是一样的。
在该配置文件中,需要修改以下三处内容,第一处在大概17行处,将UserDir修改为enabled,第二处在大概24行处,将UserDir修改为我们想要的目录,默认是public_html,我这里将其修改为wwwroot,该目录名称必须与各用户下的主目录名称一致。第三处在大概31行处,这里的Directory模块中,将目录修改为与第二处目录名称相一致的内容,比如,我在第二处修改为wwwroot,那么在这里就需要将原始的/home/*/public_html修改为/home/*/wwwroot。
修改完成后,配置文件如下所示:

(二)权限及其他操作

将上述配置文件保存并退出,之后,我们在各用户的家目录中创建个人用户主页的根目录,这里的根目录名称必须与配置文件中设定的一致。以我的配置文件为例,我需要执行的命令是:

mkdir /home/pzz/wwwroot

这里所使用的用户名是pzz,创建的目录是wwwroot。
然后我们还需要做的是向该目录中写入一个默认文件,执行命令如下:

echo "This is pzz's web" > index.html

紧接着,对目录进行授权,保证其他用户有读取的权限,执行命令如下:

chmod 755 /home/pzz/

最后,还要关闭主机防火墙,重启Apache服务,相关命令如下:

setenforce 0
iptables -F
systemctl stop firewalld
systemctl restart httpd

(三)效果验证

完成上述所有步骤后,我们就可以通过本地浏览器进行尝试访问了,访问个人主页的方式是“网址/~用户名”,访问结果如下所示:

三、个人主页密码认证

(一)生成密码

有时,我们在配置完成个人主页功能后,还希望能够对个人主页在登录时进行密码认证。
我们使用htpasswd命令生成密码,具体命令如下:

htpasswd -c /etc/httpd/passwd pzz

如果我们是第一次生成密码,则需要按照如上要求加上-c参数,如果我们想要修改已经配置过的密码,则不需要加上面的-c参数,后面的/etc/httpd/passwd是生成密码文件的存放位置,最后的pzz是指定用户。过程如下所示:

(二)配置文件修改

在生成密码后,我们需要修改/etc/httpd/conf.d/userdir.conf的配置文件,打开该文件后,在<Direcroty>模块中,大约在31行-37行,删除原有的以下两行:

Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS

然后添加下面三行:

authuserfile "/etc/httpd/passwd"
authname "Please input passwd"
authtype basic
require user pzz

其中authuserfile和require user要和之前使用htpasswd命令相对应,修改后的配置文件如下所示:

(三)效果验证

在我们完成上述配置后,重启服务,发现再次访问时会出现提示输入密码的框,此时表示我们已经配置成功!

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

Linux Apache服务详解——用户个人主页实战相关推荐

  1. Linux Apache服务详解——虚拟网站主机功能实战

    今天我们继续给大家介绍Linux相关内容,本文主要内容是Apache服务虚拟网站主机功能实战. 一.虚拟主机功能简介 Apache服务默认支持虚拟主机功能,所谓虚拟主机,就是Apache将一台服务器的 ...

  2. Linux操作命令分类详解 - 用户权限(三)

    转自:Linux操作命令分类详解 - 用户权限(三),更优阅读体验:http://www.kongzid.com/ 目录 系列文章 1.用户账号管理 1.1 useradd/adduser 添加用户账 ...

  3. Linux DNS服务详解——DNS服务搭建细节

    前几天,我陆续给大家介绍了DNS服务的相关内容,今天,我给大家补充介绍一下DNS服务中一些小问题. 前文链接: Linux DNS服务详解--DNS基础知识 Linux DNS服务详解--DNS实战配 ...

  4. Linux vsFTPd服务详解——vsFTPd基础知识

    今天继续给大家介绍Linux运维相关内容,本文主要内容是Linux的vsFTPd服务. 一.vsFTPd服务简介与安装 FTP服务,即File Transfer Protocol.文件传输服务,用于在 ...

  5. linux网络服务详解,Linux网络服务器配置基础详解 (3)

    Linux网络服务器配置基础详解 (3) Linux网络服务器配置基础详解 (3) 第三步:编辑"inetd.conf"文件(vi /etc/inetd.conf),禁止所有不需要 ...

  6. apache服务详解

    APACHE服务 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行 ...

  7. Linux DNS服务详解——DNS实战配置

    今天继续给大家介绍Linux基础知识,本文主要内容是DNS的实战配置. 一.DNS安装与配置文件 如果采用YUM的安装方式,DNS设计到三个包,相关命令如下: yum install -y bind ...

  8. Linux启动服务详解

    acpid 提供高级电源管理:配置文件:/proc/acpi/event 预设端口:无 说明:Advanced Configuration and Power Interface,为替代传统的APM电 ...

  9. Linux NTP服务详解

    今天继续给大家介绍Linux运维相关内容,本文主要内容是NTP服务. 一.NTP服务简介 NTP服务,即用来同步系统时间的服务,虽然服务器内部会通过晶振自动计算时间,但是在系统长时间运行下,服务器内部 ...

  10. linux密码配置文件详解,用户配置文件与密码配置文件

    用户文件 **(原密码文件) /etc/passwd** [[email protected] ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash ...

最新文章

  1. smack+openfire实现Android实时通信(实现大部分基本功能)
  2. [深入浅出Cocoa]iOS网络编程之Socket
  3. xrdp完美实现Windows远程访问Ubuntu 16.04
  4. 关于Struts+Spring+Hibernate的理解
  5. java九种数据类型以及封装类
  6. BZOJ3638|CodeForces 280D k-Maximum Subsequence Sum
  7. 串口速度,RS232与MAX232的区别
  8. oracle 由32位迁移到64位的问题
  9. codevs4919 线段树练习4
  10. php 5.4连接mysql_MySQL数据库之PHP5.4中mysql连接
  11. 基于PROFINET技术的STEP7组态
  12. 12月大学计算机二级考试时间,2020年12月计算机二级考试报名时间及考试安排
  13. 蛋白胶条质谱鉴定实验
  14. python 网络拓扑图_python 网络拓扑图
  15. 手机qq/微信打开网址被阻拦屏蔽被封 微信/QQ拦截域名如何正常打开
  16. [动态树] HDOJ 5467 Clarke and hunger games
  17. 2022最新二开微交易系统股票配资理财系统源码+附教程
  18. elasticsearch xpack license过期
  19. K8S系列:Pod 的恢复策略restartPolicy
  20. 数据分析---2.数据分析----爬取NBA中国官方网站的球员数据,并分析

热门文章

  1. 每日算法系列【LeetCode 233】数字 1 的个数
  2. numpy-np.random.permutation
  3. 机器学习之特征工程(二)
  4. leetcode-二叉树中的最大路径和
  5. Spring数据库事务典型错误用法剖析
  6. 几点Java程序必须满足的基本规则
  7. 博文视点新书样章下载
  8. 征服RIA:函数式编程的原理
  9. python复杂网络库networkx:算法
  10. PyQt5教程 - QtDesigner窗口设计工具的使用