一条错误Linux命令引发的惨案

前言

  众所周知,Linux对权限的管理非常严格,这个文件是哪个用户创建,归哪个用户所有,哪个用户阅读,哪个用户可以修改,这些都可以通过命令来规定。操作系统下的root用户是超级用户,拥有对普通用户的控制权。所以,当一个命令输入错误,没有及时发现,就成了翻车现场!

问题呈现

sudo命令执行失败

1
2
3
4
[root@izj6cfb1l7df1uw622j2czz ROOT]# sudo rm -r ./*
sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

对部分文件夹没有权限

1
Mysql ERROR 1005 (HY000): Can't create temporary table 'tmp' (errno: 13)

  如mysql不能创建缓存表。

问题原因

1
chmod 777 /*

  因为在给文件夹赋值权限的时候,把路径输入错误了,本来是当前路径,却输入成了根路径。

解决办法

  Linux系统文件的权限大都是 775 ,所以改回 775 就OK了。

1
chomd 775 /*

  这样改可能还不全面,比如原本 777 权限的文件夹就改成了775,这就引发了mysql不能创建混存表的问题。

1
2
chown -R mysql:mysql /var/lib/mysql/database_name
chmod 0777 /tmp

  主要的还是赋予权限的问题,对用户以及用户组的更改似乎没能解决问题。

总结

  因为对Linux系统还不是很深入的了解,一般都只是在应用层部署应用,所以以后在服务器上引发的问题,首先第一个排查是不是权限的问题。填坑第一步,先排查权限!

今日诗词

作者信息