默认权限与扩展权限

使用touch新建一个文件或使用mkdir新建一个文件夹之后,不手动向它的添加权限时也会发现它们具有默认的权限。

每个终端都会自动向新建的文件或文件夹添加权限。

文件的默认权限为 666 - umask值

文件夹的默认权限为777 - umask值

umask是一个查看与设置当前终端默认权限的命令,以r为4,w为2,x为1的计算方式进行处理。

普通用户的umask值默认为002也就说如果普通用记新建一个文件,那么当前文件的默认权限是666 - 002等于 664,换算之后就得到rw-rw-r--的权限。如果新建一个文件夹,那么文件夹的权限就是777 - 002等于775,换算之后就得到rwxrwxr-x。

root用户的默认umask值为022,也就是说如果root用户新建一个文件,此文件的默认权限为666 - 022等于644,换算之后就得到rw-r--r--的权限。如果新建一个文件夹,那么文件夹的默认权限就是777 - 022等于755,换算之后得到rwxr-xr-x的权限。

可以通过umask命令查看或修改默认权限的值

查看时直接使用umask命令,但注意umask返回的是四位的数字,其中第一位表示扩展权限。后三位是正常的权限。

修改时使用umask 值,比如要把普通用户的umask值修改为022,那么只需要使用umask 022就可以了。

Linux中命令或程序的运行都是以当前用户的权限为标准运行的。比如:

test.c文件是root用户新建的,所有test.c所属用户是root。test.c的权限为rwxr-xr-x。

用户testuser2可以执行test.c文件。但是在test.c文件中存在只有root用户才能访问的资源,所以当testuser2用户执行此文件时,文件以testuser2的权限执行过程中会发现权限不足。所以这时就要求对test.c文件使用扩展权限 。

扩展权限分为三种:

suid

sgid

sticky

suid是让具有suid权限的文件始终只以文件的所属用户身份执行。比如passwd命令。这是一个所属于root的命令,在执行的过程要修改root的/etc/shadow文件。但是普通用户也可能使用passwd命令修改自己的密码。通过ls -l可以发现此文件的权限是rwsr-xr-x。其中的s就表示它具有suid的扩展权限。

可以通过命令chmod u+s 文件    向文件中添加suid权限。

sgid与suid相似,只是suid作用于文件,而sgid作用于文件夹。

可以通过命令chmod g+s 文件    向文件夹添加sgid权限。

可以通过命令chmod o+t 文件     向文件夹添加sticky权限。

posted @ 2015-03-17 22:33  wangg_mail  阅读(326)  评论(0编辑  收藏  举报