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

本文详细解释了Linux中新建文件和目录的默认权限设定过程,包括umask的作用及其如何影响用户、组和其他人的读写执行权限。通过实例展示了不同umask设置下文件权限的变化。

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

新建文件默认权限为666,新建目录默认权限为777。
但是要"减去" umask的值,umask的值可以使用umask命令看到,一般情况下,root用户的为022,普通用户为002。这里的"减"并非数字上相减,而是减去相应的权限。如果umask为022,则表示:user不减权限,group减掉write权限,other减掉write权限;如果umask为245,表示:user 减去write权限,group减去read权限,other减去read和execute权限。


作者:匿_名_用_户
来源:CSDN
原文:https://blog.csdn.net/qingsong3333/article/details/77484452
版权声明:本文为博主原创文章,转载请附上博文链接!

示例1, root用户umask为022,创建文件和目录后默认的权限

root@db2a:/tmp# umask
0022
root@db2a:/tmp# touch file1
root@db2a:/tmp# ls -l file1
-rw-r--r-- 1 root root 0 Aug 20 17:07 file1
root@db2a:/tmp# mkdir dir1
root@db2a:/tmp# ls -ld dir1/
drwxr-xr-x 2 root root 4096 Aug 20 17:12 dir1/

示例2,普通用户umask为002:

qingsong@db2a:/tmp$ umask
0002
qingsong@db2a:/tmp$ touch file2
qingsong@db2a:/tmp$ ls -l file2
-rw-rw-r-- 1 qingsong qingsong 0 Aug 20 17:11 file2
qingsong@db2a:/tmp$ mkdir dir2
qingsong@db2a:/tmp$ ls -ld dir2
drwxrwxr-x 2 qingsong qingsong 4096 Aug 20 17:13 dir2

示例3,一个极端的情况,将umask设置为666,则新建文件没有“任何"权限:

root@db2a:/tmp# umask 666
root@db2a:/tmp# umask
0666
root@db2a:/tmp# touch file3
root@db2a:/tmp# ls -l file3
---------- 1 root root 0 Aug 20 17:16 file3
---------------------

原文:https://blog.csdn.net/qingsong3333/article/details/77484452
版权声明:本文为博主原创文章,转载请附上博文链接!

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系统中文件目录默认权限设置。无论是临时修改还是永久修改,都需要根据具体需求选择合适的方式,并验证最终结果是否符合预期。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值