先说一件比较坑的事:前几天我在使用公司的一台ftp服务器的时候,手贱在根目录下执行了一下代码
sudo chmod 777 / -R
duang 一下,系统崩了。root进不去了,各种各样的问题接踵而至,补救方法试了很多,但都不行。最后无奈的重新安装了系统。幸好没有什么重要的东西。
出现这种问题的原因:对文件的权限管理一知半解,只知道设置了777权限之后,就可以高枕无忧的使用。最终导致不可饶术的错误。只能说一知半解害死人,学艺不精坑死人。
楼主通定思定,于是重新学习了对文件的权限的管理这一块儿。
首先对权限管理的命令:
chgrp //设置组的权限
chown //设置用户和组的权限
chmod //设置读写执行权限
先查看一下/root 目录下文件的权限:
[root@localhost ~]# ls -ll install.log
-rw-r--r--. 1 root root 37332 11月 30 21:11 install.log
打印信息第一部分:
-rw-r--r-- //第1位表示文件类型,这里表示普通文件,如果是d的话代表目录,如果是l表示链接
2-4位,表示文件所属用户的权限,这里rw-,表示所属用户拥有读写权限
5-7位,表示文件所属的组的权限,这里r--,表示所属组拥有只读权限
8-10位,表示除用户和组外其他的用户和组的权限,这里r--,表示其他用户和组拥有只读权限
可以这样表示:
type user group other
类型 用户 组 其他
第二部分:1 表示文档链接节点有1个
第三部分:root root 表示该文件的用户为root,所属的组为root
第四部分:37332 表示该文件大小为37332字节
第五部分:11月 30 21:11 表示时间
第六部分:install.log 表示文件名
文件信息完整格式:
文件类型 文件权限 文件链接节点 所属用户 所属组 文件大小 最后一次编辑时间 文件名
通过权限管理命令来更改权限:
chgrp更改文件所属组:
[root@localhost ~]# chgrp test install.log
[root@localhost ~]# ls -ll install.log
-rw-r--r--. 1 root test 37332 11月 30 21:11 install.log
文件所属组为test,所以test组的成员对install.log文件有读的权限。
chown更改文件所属的用户:
[root@localhost ~]# chown test install.log
[root@localhost ~]# ls -ll install.log
-rw-r--r--. 1 test test 37332 11月 30 21:11 install.log
文件所属用户为test.test用户对install.log文件有读写权限
chown同时更改用户和组:
[root@localhost ~]# chown root:root install.log
[root@localhost ~]# ls -ll install.log
-rw-r--r--. 1 root root 37332 11月 30 21:11 install.log
通过执行,chown user:group filename 同时更改用户和组
chmod 更改文件的权限
r代表对文件可读,w代表对文件可写,x代表对文件可执行
chmod 命令格式:
chmod u=rwx,g=rwx,o=rwx filename //u表示用户,g表示组,o表示其他
chmod +x filename //增加可执行权限
chmod -x filename //减去可执行权限
[root@localhost ~]# ls -ll install.log
-rw-r--r--. 1 root root 37332 11月 30 21:11 install.log
[root@localhost ~]# chmod u+x,g+x,o+x install.log
[root@localhost ~]# ls -ll install.log
-rwxr-xr-x. 1 root root 37332 11月 30 21:11 install.log
//增加了,可执行权限
[root@localhost ~]# chmod -x install.log
[root@localhost ~]# ls -ll install.log
-rw-r--r--. 1 root root 37332 11月 30 21:11 install.log
//减少了可执行权限
用数字方式更改权限:
rwx 分别用4,2,1表示,
4+2+1 = 7 //全部权限
4+2 = 6 //可读,可写
4 + 1 = 5 //可读,可执行
2 + 1 = 3 //可写可执行
chmod 777 filename //用户,组,其他都是可读,可写,可执行
chmod 755 filename //用户可读,可写,可执行,组和其他可读,可执行
[root@localhost ~]# chmod 777 install.log
[root@localhost ~]# ls -ll install.log
-rwxrwxrwx. 1 root root 37332 11月 30 21:11 install.log
//恢复原来权限
[root@localhost ~]# chmod 644 install.log
[root@localhost ~]# ls -ll install.log
-rw-r--r--. 1 root root 37332 11月 30 21:11 install.log
文件和目录权限功能区别:
file rwx //读写执行
r读 代表可以读写文件的内容
w写 可以编辑、新增或者是修改该档案的内容(但不能删除该文件)
x执行 文件可以做为二进制文件来执行,仅仅有这样的权限,执行是否成功,要看文件内容
dir rwx //读写执行
r 代表可以读写文件的内容
w 建立新文件与目录
删除已经存在的文件与目录
更改文件或者目录的名字
移动文件或者目录到别的目录
x 代表可以进入文件