学习Linux的同学都知道文件权限在Linux中是十分重要的,(谁让Linux的核心理念就是Everything is file呢),下面是我对权限的一些理解和总结:
基础权限有 r:read,w:write,x:execute
对于普通文件来说,rwx的意义是:
r:可以获得这个普通文件的名字和内容。
w:可以修改这个文件的内容和文件名。可以删除该文件,但是用户会得到是否删除写保护文件的prompt。
x:该文件是否具有被执行的权限。
========
对于目录文件来说,rwx的意义是:
r 可以对此目录执行ls以列出内部的所有文件
w 可以在此目录创建文件,删除文件取决于文件本身的权限
x 可以使用cd命令切换进目录,也可以使用ll命令查看内部文件的详细信息
具体的有:
r-x:可以进入cd该目录,可以获得该目录下存储情况,但是不能修改这个目录内部存储的文件(目录)的名字,也不能在该目录下新建文件和目录
-wx:可以进入cd该目录,但是看不到该目录下的存储情况(ls不可用),可以往该目录下添加、修改、删除文件。可以通过cat来读取该目录下的文件or目录的内容,由于得不到该目录下存储了那些文件,在不知情的情况下只能通过猜,cat + 文件名获得文件内容,所以这样依然不保密。
–x:可以进入cd该目录,看不到存储情况,也不能往该目录下添加、修改、删除文件。但是依然可以通过cat + xx(猜)来获得该目录下的文件的内容。
rw-:不能进入cd该目录,用ls仅仅可以获得文件名和目录名,因为获取不到这些文件的inode号,当然也不能获得该目录下的文件的内容。不能往该目录下添加、修改、删除文件。
========
文件权限一般可认为是0 123-456-789 ,一共十位,0:表示该文件的文件类型。后九位对应 用户-属组-其他,具体意义如下:
0 000 — 无权限
1 001 --x 可执行
2 010 -w- 可写
3 011 -wx 写和执行
4 100 r-- 可读
5 101 r-x 读和执行
6 110 rw- 可读写
7 111 rwx 读写执行
对于权限这里还有一个比较重要的概念-权限掩码umask
umask是用来指定"目前用户在新建文件或者目录时候的权限默认值"。
umask 查看权限掩码,文件默认权限为666,目录默认权限为777
权限设置指令:
chmod 改变文件或者目录的权限
u 所属用户
g 所属组
o 其他
a 所有人
r==4
w==2
x==1
增加权限 +
取消权限 -
指定权限位 rwx == 777
chown 改变文件或者目录的所属用户和所属组
使用格式为: chown USERNAME:GROUPNAME FILENAME -R
例如:chown redhat:redhat haha/ -R
chgrp :改变文档群组
chgrp [-R] dirname/filename
-R 表示递归
例如chgrp usergroupinstall.log