Linux权限详解

权限
权限是操作系统用来限制对资源访问的机制。权限一般分为读、写、执行。每个用户都有特定的权限、所属用户、所属组,通过这样的机制来限制哪些用户、哪些组可以对待特定的文件进行怎么样的操作。
每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户的权限大,该进程的权限就大。
Linux中,每个文件具有以下三种权限:
权限                                      对文件的影响                                                对文件夹的影响
r(读取)                                  可读取文件的内容                                            可列出目录的内容
w(写入)                                  可向文件写入数据                                      可在目录下创建或删除文件
x(执行)                                  可作为命令来执行                                          可访问目录中的内容
对于目录必须具有x权限(也称为浏览权限),只具有r权限无意义,否则无法查看其内容。

UGO
Linux权限基于UGO模型进行控制的。
U代表user,G代表group,o代表other
每一个文件的权限是基于UGO模式进行设置的
权限三个一组(rwx),对应UGO分别设置
每一个文件拥有一个所属用户和组,分别对应着U、G,对于既不属于该文件所属用户也不属于该用户组的用户的权限对应O权限
ls -l file.c  查看file.c 文件的详细权限
结果为: 
d          rwxr-xr--        2                username              groupname                208                xxxxxxxxxxx          filename
文件类型        UGO      文件的连接数                用户名                          所属用户组                      文件的大小                  创建时间                        文件名

chown username filename  将文件的所属改为指定的用户
chown -R username directory 将目录下的所有文件的所属用户改为指定的用户
chgrp groupname filename  将文件的所属组修改为指定的用户组
chgrp -R groupname directory  将目录下的所有文件的所属用户组改为指定的用户组

chmod u/g/o +rw  filename/derictoryname  为文件或者目录所属用户/所属组/其他用户添加读写权限
chmod u/g/o -rw  filename/derictoryname  为文件或者目录所属用户/所属组/其他用户去除掉写权限
chmod u/g/o -R  -rw  filename/derictoryname  将目录下所有文件的所属用户/所属组/其他用户去除掉写权限
chmod g+s directname 文件夹下所有文件将继承该文件夹的所属组
linux默认权限
每一个终端都有一个umask权限,来确定新建的文件和目录的默认权限
umask用数字的形式来表示默认权限,如:022  分别对应UGO权限
目录的默认权限:777 - umask
文件的默认权限: 666 - umask
普通用户的umask一般为:002
root用户的umask一般为:022
使用单独一个umask可以查看umask的属性值
umask  num  将umask修改为num

相关推荐