记录:将网页文件交给nginx遇到的一些小问题
系统版本:Centos 7.9
问题一、访问网页出现403错误
403是指没有权限,我的问题是将网页文件放到了另一个用户junlin623的家目录下,那么nginx中的nginx用户是无权访问junlin623的家目录的,所以就会出现这个报错
前置:
nginx中的工作进程使用的是nginx用户
可以通过查看nginx.conf
配置文件验证:
user nginx;
用于指定 nginx 进程的运行用户。这个指令的作用是为了提高安全性,避免 nginx 进程使用 root 用户身份运行,一旦 nginx 进程受到攻击,攻击者就可以获得 root 权限,造成更加严重的后果。
解决方案:
方案一:
junlin623用户允许其他用户访问自己的家目录(直接给网页文件更改权限是没用的)
chmod o+x /home/junlin623
这个操作是很不安全的
方案二:
将网页文件放到其他用户家目录之外的地方,我这里就直接放到/html
目录下了
然后需要给html提权,让nginx用户可以访问到:chmod 777 -R /html
问题二:"xxx is not in the sudoers file. This incident will be reported"
普通用户用sudo执行命令时报 "xxx is not in the sudoers file. This incident will be reported"错误,原因是创建完用户之后没有给他授予执行sudo
的权限
查看/etc/sudoers
文件:
user | ALL=(ALL) | ALL | 允许用户user执行sudo命令提权(需要输入密码) |
%users | ALL=(ALL) | ALL | 允许用户组users中的用户执行sudo命令提权(需要输入密码) |
user | ALL=(ALL) | NOPASSWORD:ALL | 允许用户user执行sudo命令提权(不需要输入密码) |
%users | ALL=(ALL) | NOPASSWORD:ALL | 允许用户组users中的用户执行sudo命令提权(不需要输入密码) |
我们可以直接将junlin623用户添加到wheel组中(在root用户下执行)
usermod -aG wheel junlin623
或者在 /etc/sudoers
文件中添加一行:
注意:这个文件只有读权限,可以使用visudo
命令打开该文件
junlin623 ALL=(ALL) ALL
问题三、Linux普通用户无法直接操作docker
sudo usermod -aG docker $USER # 将当前用户添加到docker组中即可
问题四、Linux环境下Nginx不支持中文资源访问
1、 确定你的系统是UTF编码
[root@localhost ~]# echo $LAGN
en_US.UTF-8
2、nginx配置文件设置:
3. 将网页目录下的所有的非UTF-8编码转换为UTF-8编码
安装convmv,由他去转换编码:
yum install -y convmv
将/html
(我的网页文件存放位置)目录下的所有文件转换编码
# 其中-f是源编码,-t是目标编码,-r是递归处理目录,–notest是不移动,实际上对文件进行改名。
convmv -f GBK -t UTF8 -r --notest /html
转换前:
转换后:
参考链接:
你只管出发,旅途自有风景~~