Linux 新建文件和目录的默认权限

关于Linux下的umask

我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢?

umask是什么?

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。

如何计算umask值?
umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7。

该命令的一般形式为:umask nnn
其中nnn为umask置000 - 777。

我们只要记住u m a s k是从权限中“拿走”相应的位即可。下表是umask值与权限的对照表:
umask 文件 目录
--------------------
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
--------------------

如:umask值为022,则默认目录权限为755,默认文件权限为644。
Linux系统中,文件目录默认权限是由`umask`值决定的。如果用户想要恢复文件目录默认权限设置,可以通过调整`umask`值来实现。 ### 默认权限的计算方式 默认情况下,文件目录的初始权限是固定的: - 文件默认权限为 `666 (-rw-rw-rw-)`,即所有人都可以读写。 - 目录默认权限为 `777 (drwxrwxrwx)`,即所有人都可以读、写进入该目录。 然而,实际创建的文件目录权限会受到`umask`的影响。`umask`的作用是屏蔽掉某些权限位。具体计算公式如下: - **文件的实际权限 = 666 - umask** - **目录的实际权限 = 777 - umask** 例如,如果`umask`值为`022`,则: - 文件的实际权限:`666 - 022 = 644 (-rw-r--r--)` - 目录的实际权限:`777 - 022 = 755 (drwxr-xr-x)` 因此,若要恢复默认权限,需要将`umask`设置为合适的值以匹配期望的权限配置[^1]。 ### 恢复默认权限的方法 #### 1. 查看当前`umask`值 可以通过以下命令查看当前用户的`umask`值: ```bash umask ``` 如果希望以符号形式显示权限,可以使用 `-S` 参数: ```bash umask -S ``` #### 2. 临修改`umask`值 可以通过直接输入`umask`命令来临修改默认权限。例如,将`umask`设置为`022`以获得较为常见的默认权限: ```bash umask 022 ``` 此操作仅对当前终端会话有效,重启后会失效。 #### 3. 永久修改`umask`值 为了确保每次登录都使用特定的`umask`值,需要编辑用户的环境配置文件。对于大多数用户来说,主要涉及以下文件: - 对于**Bash shell**用户,编辑`~/.bashrc`或`/etc/bash.bashrc`文件: ```bash nano ~/.bashrc ``` 在文件末尾添加: ```bash umask 022 ``` 保存并退出后,运行以下命令使更改生效: ```bash source ~/.bashrc ``` - 如果使用的是其他shell(如Zsh),则需要编辑相应的配置文件(如`~/.zshrc`)。 #### 4. 验证权限恢复效果 创建新的文件目录,并检查它们的权限是否符合预期: ```bash touch testfile.txt mkdir testdir ls -l ``` 输出应类似于: ``` -rw-r--r-- 1 user user 0 Oct 10 10:00 testfile.txt drwxr-xr-x 1 user user 0 Oct 10 10:00 testdir/ ``` 这表明文件目录默认权限已经成功恢复到`644``755`。 ### 总结 通过调整`umask`值,可以轻松恢复Linux系统文件目录默认权限设置。无论是临修改还是永久修改,都需要根据具体需求选择合适的方式,并验证最终结果是否符合预期。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值