`

文件的默认权限

阅读更多

7.4.1  文件默认权限:umask

现在,我们知道如何建立或者是改变一个目录或文件的属性了,不过,你知道,当建立一个新的文件或目录时,它的默认属性是什么吗?那就与umask有关了。那么,umask是什么呢?基本上,umask就是指定“当前用户在建立文件或目录时候的属性默认值”。那么,如何得知或设置umask呢?它以下面的方式来指定条件:

[root@linux ~]# umask
0022
[root@linux ~]# umask -S
u=rwx,g=rx,o=rx

查看方式有两种,一种是直接输入umask,可以看到数字类型的权限设置分数,一种是加入 -S(Symbolic)参数,就会以符号类型的方式显示权限。奇怪的是,怎么umask会有4组数字啊?不是只有3组吗?没错。第一组是特殊权限用的,我们先不要理它,所以先看后面3组即可。
在默认权限的属性上,目录与文件是不一样的。由于我们不希望文件具有可执行的权力,默认情况中,文件是没有可执行(x)权限的。因此:
• 若用户建立为”文件”则默认“没有可执行(x)项目”,即只有rw这两个项目,也就是最大为666分,默认属性如下:
-rw-rw-rw-
• 若用户建立为”目录”,则由于x与是否可以进入此目录有关,因此默认为所有权限均开放,即为777分,默认属性如下:
drwxrwxrwx
umask 指定的是“该默认值需要减掉的权限”。因为r、w、x分别是4、2、1,所以。也就是说,当要去掉能写的权限,就是输入2,而如果要去掉能读的权限,也就是4,那么要去掉读与写的权限,也就是6,而要去掉执行与写入的权限,也就是3。请问,5是什么?就是读与执行的权限。如果以上面的例子来说明的话,因为 umask为022,所以user并没有被去掉属性,不过group与others的属性被去掉了2(也就是w这个属性),那么当用户:
• 建立文件时:(-rw-rw-rw-) – (-----w--w-) ==> -rw-r--r--
• 建立目录时:(drwxrwxrwx) – (d----w--w-) ==> drwxr-xr-x
我们来测试看看。

[root@linux ~]# umask
0022
[root@linux ~]# touch test1
[root@linux ~]# mkdir test2
[root@linux ~]# ll 
-rw-r--r--  1 root root    0 Jul 20 00:36 test1
drwxr-xr-x  2 root root 4096 Jul 20 00:36 test2 

看见了吧?确定属性是没有错的。假如要让与用户同用户组的人也可以存取文件呢?也就是说,假如dmtsai是users用户组的人,而dmtsai做的文件希望让users同用户组的人也可以存取,这也是在团队开发计划时常常会考虑到的权限问题。在这样的情况下,umask自然不能取消group的w权限,也就是说,我们希望制作出来的文件应该是 -rw-rw-r-- 的模样,所以,umask应该是002才好(仅去掉others的w权限)。如何设置umask呢?简单得很,直接在umask后面输入002。

[root@linux ~]# umask 002
[root@linux ~]# touch test3
[root@linux ~]# mkdir test4
[root@linux ~]# ll 
-rw-rw-r--  1 root root    0 Jul 20 00:41 test3
drwxrwxr-x  2 root root 4096 Jul 20 00:41 test4

所以,这个umask对于文件与目录的默认权限是很有关系的。这个概念可以用在任何服务器上,尤其是将来在架设文件服务器(file server),比如SAMBA服务器或FTP服务器时,都很重要。这牵涉到用户是否能够将文件进一步利用的问题。不要等闲视之。
例题四:假设umask为003,请问使用该umask,建立的文件与目录权
限是什么?
答:
umask为003,所以去掉的属性为 --------wx,因此:
文件:(-rw-rw-rw-) - (--------wx) = -rw-rw-r--
目录:(drwxrwxrwx) - (--------wx) = drwxrwxr--

提示:有关umask与权限的计算方式中,教科书喜欢使用二进制方式来进行AND与NOT计算,不过,笔者比较喜欢使用符号方式计算,联想比较容易。但是,有的书籍或BBS上,有人喜欢使用文件默认属性666与目录默认属性777来与umask进行相减计算。这是不好的。以例题4来看,如果使用默认属性相加减,则文件变成:666-003=663,即 -rw-rw--wx,这是完全不对的。想想看,原本文件就已经去除x的默认属性了,怎么可能突然间冒出来了?所以,这个地方要特别小心。

在默认的情况中,root的umask会去掉比较多的属性,root的umask默认是022,这是基于安全的考虑。一般身份用户通常的umask 为002,即保留同用户组的写入权力。其实,关于默认umask的设置可以参考 /etc/bashrc文件的内容,不过,建议不要修改该文件,可以参考第11章提到的环境参数设置文件(~/.bashrc)的说明。

分享到:
评论

相关推荐

    Linux系统文件的默认权限和特殊权限

    本文主要探讨的是Linux系统文件的默认权限和特殊权限,这对于理解和操作Linux系统至关重要。 首先,让我们了解一下**默认权限**。在Linux中,当你创建一个新的文件或目录时,它们会有一定的初始权限。例如,使用`...

    Linux文件权限管理实验.pdf

    例如,在一些系统中,默认的umask值为`0022`,这意味着新创建的文件默认权限为`644`(-rw-r--r--),新创建的目录默认权限为`755`(drwxr-xr-x)。 最后,实验文档说明了如何通过`mkdir`命令创建新目录,并使用`ls`...

    05-linux-认识文件

    例如,umask 值为 0002,文件默认权限为 0666,那么文件的初始权限为 0664。 SELinux SELinux 是 Security-Enhanced Linux 的缩写,是 Linux 内核级别的一种安全机制。它可以限制用户或者进程对系统资源的访问,以...

    文件权限PPT学习教案.pptx

    例如,umask 022意味着新文件默认权限是644(666-022),新目录默认权限是755(777-022)。`umask`的值可以在命令行中通过`umask`命令查看和设置。 除此之外,还可以使用`chown`命令更改文件或目录的所有者,格式为...

    系统默认权限、网站比较安全权限、默认权限控制命令umask、文件系统属性(文件属性)、特殊权限1

    本文将深入探讨系统默认权限、网站安全权限、默认权限控制命令umask以及文件系统的属性,包括文件属性和特殊权限。 首先,我们关注的是Linux系统默认权限。对于文件,最常见的默认权限是`rw- r-- r--`,也就是644...

    linux文件目录默认权限(详解)

    - **文件默认权限**:文件的最大默认权限为666(-rw-rw-rw-),这意味着所有者、所属组和其他用户都有读取和写入权限,但没有执行权限。 - **目录默认权限**:目录的最大默认权限为777(drwxrwxrwx),这表示所有者...

    linux中rcS文件详解

    例如,如果umask值设置为022,那么新创建的文件默认权限就是644(666-022),新创建的目录默认权限就是755(777-022)。umask命令通常在rcS文件中设置一个初始值,用于控制系统启动过程中新创建文件的权限。 mount...

    系统文件权限,用户管理员基本命令.docx

    `umask`设置默认权限掩码,例如`umask 022`会使得新建文件默认权限为rw-r--r--。 `usermod`命令用于修改已存在用户的信息,如`usermod -l newusername oldusername`可以重命名用户。其他选项如`-u`、`-g`、`-s`等可...

    文件与目录的权限配置和管理-5th6th1

    - umask设置默认权限,如`umask 022`会让新建文件默认权限为644,目录为755。 了解并熟练掌握这些基本的Linux文件和目录管理知识,对于日常的系统操作和维护至关重要。通过合理的权限配置,可以确保系统资源的安全...

    【Linux环境编程入门】四、文件操作的系统调用 - 源代码

    例如,如果umask为022,则新创建的文件默认权限将是644(rw-r--r--)。 六、文件定位:lseek系统调用 lseek用于改变文件读写位置。其原型为: ```c off_t lseek(int fd, off_t offset, int whence); ``` `offset...

    linux文件权与限之默认权限与隐藏权限

    文件权与限之默认权限与隐藏权限 非纯本文件:ob /bin /usr/bin :普通用户执行的命令 /sbin /usr/sbin :超级用户执行的命令 #cat /usr/bin //会显示乱码 #ob -t type 文件 type: a 默认字符输出 c 使用ASCLL输出 d ...

    NTFS默认权限设置INF文件

    NTFS默认权限设置INF文件 mmc--添加--安全配置与分析--打开数据库--输入123--点击setup security.inf--确定--立即分析计算机---等待完成----导入模板--选择上面的另存--立即配置计算机---确定--等待完成

    LINUX_SHELL

    默认情况下,umask值通常为0022,这意味着新创建的文件默认权限为644(rw-r--r--),新目录的默认权限为755(rwxr-xr-x)。用户可以通过`umask`命令修改当前会话的umask值。 #### 七、符号链接 符号链接(软链接)...

    恢复文件夹默认权限

    在这种情况下,了解如何恢复文件夹默认权限就显得至关重要。以下是一些详细步骤和相关知识点: 1. **理解文件夹权限**: - 文件夹权限基于Windows的NTFS文件系统,分为五种基本权限:读取、写入、修改、完全控制和...

    从0开始学服务器运维第六章

    `umask`的值是默认权限的反向,如`022`意味着新文件默认权限为`644`,新目录为`755`。可以通过`umask`命令查看当前umask值,使用`umask 002`临时修改umask,或在`/etc/bashrc`或`~/.bashrc`中永久修改。 7. **特殊...

    linux与unix shell编程指南

    例如,如果设置 `umask` 为 `022`,则新创建的文件默认权限将是 `644` (rw-r--r--),而目录的默认权限将是 `755` (rwxr-xr-x)。 **6.2 chown 和 chgrp 命令** - `chown` 命令用于更改文件的所有者。 - `chgrp` ...

    unix命令子文件5

    默认情况下,Unix系统的umask值通常为`022`,这意味着新创建的文件默认权限为`rw-r--r--`,目录权限为`rwxr-xr-x`。 示例: ``` $ umask -S u=rwx,g=rx,o=rx $ umask -p 177 ``` 这表示当前的umask值为`177`,新...

    Linux实现目录和文件拷贝C代码

    `umask` 是一个用于控制新创建文件默认权限掩码的系统调用。通过调整 umask 的值,可以控制新创建的文件或目录的默认权限。 #### 3. **文件和目录的判断与处理** - 使用 `S_ISREG()` 和 `S_ISDIR()` 来判断文件或...

Global site tag (gtag.js) - Google Analytics