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