umask命令详解
umask命令在Linux或Unix系统中的作用和用法
umask命令用于设置默认文件和目录权限,它定义了新创建的文件和目录的默认权限掩码。通过调整掩码值,可以控制用户、组和其他用户对新文件和目录的访问权限。
默认权限计算
当创建一个新文件或目录时,操作系统会根据预定义的最大权限值减去umask值来确定最终的权限。对于文件,默认最大权限为666(读和写),而对于目录,默认最大权限为777(读、写和执行)。例如,如果umask值为022,则新文件的权限为644,新目录的权限为755。
设置和查看umask值
可以通过以下命令查看当前的umask值:
umask
此命令将返回一个八进制数,表示当前的掩码值。
若要临时更改umask值,可以在终端中运行以下命令:
umask 022
这将设置新的掩码值为022,仅影响当前shell会话。
若要在系统范围内永久更改umask值,可以编辑/etc/profile
或用户的个人配置文件(如~/.bashrc
)并添加或修改umask命令。
示例:umask在脚本中的应用
以下是一个示例脚本,展示如何在脚本中使用umask命令来设置特定的权限:
#!/bin/bash
# 设置umask值为002
umask 002# 创建新目录
mkdir test_directory# 创建新文件
touch test_directory/test_file# 查看权限
ls -l test_directory
此脚本首先设置umask值为002,然后创建一个目录和一个文件,并显示它们的权限。由于umask值为002,新目录的权限将是775,新文件的权限将是664。
系统级umask配置
在某些系统配置文件中,如/etc/profile
,可以根据用户的UID设置不同的umask值。例如,当UID大于199且用户的组名与用户名相同时,umask值被设置为002;否则,umask值为022。