首页 > 编程知识 正文

make编译指定目录,linux查看文件命令

时间:2023-05-05 06:22:34 阅读:50859 作者:1050

umask的默认权限是一种Linux权限,主要用于使Linux中的新文件和目录具有默认权限。 Linux是一个比较安全的操作系统,安全的基础是权限。 因此,在Linux上,所有文件和目录都需要基本权限,而新创建的文件和目录也需要默认权限。

在Linux上,umask的默认权限将初始权限授予所有新创建的文件和目录。 这与Windows不同,Windows通过继承上级目录的权限来授予文件和目录初始权限。

检查系统的umask权限:

[root@localhost ~]# umask

0022

以八进制形式显示umask权限

[root@localhost ~]# umask -S

u=rwx,g=rx,o=rx

#使用以字母表示文件和目录的初始权限“-S”选项,可以直接用字母表示文件和目录的初始权限。 检查数值的umask权限后,可以看到4位数字' 0022 '。 其中第一个数字'0'表示文件的特殊权限(SetUID、SetGID、Sticky BIT )。 关于特殊权限将在后续章节中详细说明,但现在不讨论。 也就是说,后3位数字' 022 '才是真正的umask默认权限。

在学习如何计算umask的默认权限之前,必须了解新文件和目录的默认最大权限。

对于文件,新建文件的默认最大权限为666,没有运行(x )权限。 这是因为,执行权限对文件来说是危险的,在创建新文件时必须由用户手动授予,而不是默认授予。

对于目录,新目录的默认最大权限为777。 这是因为对目录执行(x )的权限只表示访问该目录,所以在创建新文件时直接默认授予也没有危险。

接下来,您将学习如何计算umask的默认权限。 根据公式的标准算法,umask的默认权限必须使用二进制文件进行逻辑和逻辑非联合运算,才能获得正确的新文件和目录默认权限。 这个方法既难以计算也难以理解,所以笔者不推荐。

本节还按照权限的字母说明如何计算umask权限。 根据默认umask值为022,尝试计算新文件和目录的默认权限。

文件的默认权限最多为666个,换算成字母时为'-rw-rw-rw-rw-'; 另一方面,umask的值为022,换算为字母时也为“----w----w--”。 减去两个字符的权限((-rw-rw-rw-rw-() )----w----w ) ) ) ) ((-rw-r----r ) ) ) ) )

目录的默认权限最多为777个,换算为字母时为' drwxrwxrwx '; 另一方面,umask的值为022,换算为字母时也为' d----w--w-'。 同时减去两个字符的权限,获得新目录的默认权限。 (drwxrwxrwx ) (d----w----w ) )=)=(drwx-r-xr-x )。

测试一下:

[root@localhost ~]# umask 0022

#默认的umask值为0022

[ root @ localhost~~ ] # touch Lao Wang

[ root @ localhost~~ ] # mkdir Fengjie

[ root @ localhost~] # ll-dlaowangfengjie /

drwxr-xr-x 2 root root 4096 6月16日02336036 Fengjie//-rw-r---1 root root 0月16日02336036Laowang

#新建目录的默认权限为755,新建文件的默认权限为644。 在此强调,不能直接使用数字减法来计算umask的默认权限。 很多人会理解,文件的默认权限最大为“666”,umask的值为“022”,新文件的值正好为“644”,所以会不会直接使用“666-644”。

这是错误的。 如果umask的值是' 033 '呢? 用数值相减,得到' 633 '的值。 但是,文章强调了在新建时不能具有执行(x )权限,权限(3)包括执行)权限。 测试一下:

[root@localhost ~]# umask 033

将umask的值更改为033

[root@localhost ~]# touch xuejie

#创建测试文件xuejie

[root@localhost ~]# ll xuejie

-rw-r----r----1路由06月16日02336046Xuejie

#xuejie文件的默认权限仍然是644。 从本示例中可以看到,umask的默认权限不是始终使用权限数字进行减法运算,而是通过二进制逻辑与和逻辑非联合运算获得的。 最简单的方法还是用权限字母计算。

文件的默认权限最多为666个,换算成字母时为'-rw-rw-rw-rw-'; umask的值为033,如果也换算成字母,则为'-----wx-wx '。 减去两个字符的权限可以获得新文件的默认权限。 (-rw-rw-rw-) (----wx-wx ) ) (-rw----r----)。

如何更改umask的默认权限您可以通过以下命令直接更改umask的默认权限:

[root@localhost ~]# umask 002

[root@localhost ~]# umask 033但是,命令修复仅暂时有效,重新启动或重新登录后将禁用。 要使更改永久生效,必须更改相应的环境变量配置文件/etc/profile。 例如:

[根@ localhost~] # VI/etc/profile

.省略一部分.

if [ $ uid-gt 199 ] [ ' ' id-gn ' '=' ' id-un ' ' ]; then umask 002

如果UID大于199 (普通用户),请使用此umask值

else

umask 022

如果UID小于199 (超级用户),则使用此umask值

fi

…省略一部分…这是外壳脚本。 大家现在可能不知道,没关系。 您只需要知道普通用户的umask值是在if语句的第一段中定义的,而超级用户的umask值是在else语句中定义的。 如果修改此文件,umask值将永久生效。

我们学习了两种权限:文件的基本权限和umask的默认权限,但Linux的权限不仅仅是这两种。 其他权限的内容将在后续章节中说明,在此不列举。

TAG :

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。