23 尚硅谷 云计算 Linux系统管理 常用命令 umask权限
目录:
在Linux和Unix操作系统上,所有新文件都是使用默认权限集创建的。 使用
umask
实用程序,可以查看或设置文件模式创建掩码,该掩码确定新创建的文件或目录的权限位。
mkdir,touch,tee和其他创建新文件和目录的命令使用它。
Linux权限
在继续之前,让我们简短地解释一下Linux权限模型。
在Linux中,每个文件都与一个所有者和一个组相关联,并为三种不同类别的用户分配了权限访问权限:
- 文件owner.group成员。其他人。
有三种权限类型适用于每个类:
- 读取权限,写入权限,执行权限。
此概念使您可以指定允许哪些用户读取文件,写入文件或执行文件。
要查看文件许可权,请使用
ls
命令:
ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type
第一个字符代表文件类型,可以是常规文件(
-
),目录(
d
),符号链接(
l
)或任何其他特殊文件类型。
接下来的9个字符代表权限,每3组三个字符。 第一组显示所有者权限,第二组显示所有者权限,最后一组显示其他所有人权限。
八进制值为
4
字符
r
表示读取,八进制值为
2
字符
w
表示写入,
x
八进制值为
1
字符表示执行权限,而(
-
)八进制值为
0
字符表示无权限。
还有其他三种特殊的文件权限类型:
setuid
,
setgid
和
Sticky Bit
。
在上面的示例中(
rwxr-xr-x
)表示所有者拥有读取,写入和执行权限(
rwx
),该组和其他用户拥有读取和执行权限。
如果我们使用数字符号表示文件权限,我们将得出数字
755
:
- 所有者:
rwx=4+2+1 = 7组:rx=4+0+1 = 5其他:rx=4+0+1 = 5
以数字符号表示时,权限可以具有三个或四个八进制数字(0-7)。 第一位数字表示特殊权限,如果省略,则意味着在文件上未设置特殊权限。 在我们的情况下
755
与
0755
相同。 第一位数字可以是
setuid
的
4
,
setgid
2
和
Sticky Bit
1
的组合。
可以使用
chmod
命令更改文件许可权,而可以使用
chown
命令更改所有权。
了解umask
默认情况下,在Linux系统上,文件的默认创建权限为
666
,它向用户,组和其他用户授予读和写权限,为目录提供
777
,这意味着对用户,组和其他用户的读,写和执行权限。其他。 Linux不允许创建具有执行权限的文件。
可以使用
umask
实用程序修改默认的创建权限。
umask
仅影响当前的shell环境。 在大多数Linux发行版中,默认的系统范围umask值是在
pam_umask.so
或
/etc/profile
文件中设置的。
要查看当前的掩码值,只需键入不带任何参数的
umask
即可:
umask
输出将包括
022
umask
值包含不会在新创建的文件和目录上设置的权限位。
正如我们已经提到的,文件的默认创建权限是
666
,目录的默认创建权限是
777
。 要计算新文件的权限位,请从默认值中减去umask值。
例如,要计算
uname 022
将如何影响新创建的文件和目录,请使用:
- 文件:
666 - 022 = 644。 所有者可以读取和修改文件。 组和其他人只能读取文件。目录:777-022777 - 022 = 755。所有者可以cd进入目录并列出读取,修改,创建或删除目录中的文件。 Group和其他人可以cd进入目录并列出并读取文件。
您还可以使用
-S
选项以符号形式显示掩码值:
umask -S
u=rwx, g=rx, o=rx
与数字符号不同,符号符号值包含将在新创建的文件和目录上设置的权限位。
设定遮罩值
可以使用八进制或符号表示法设置文件创建掩码。 要使更改永久
umask
,请在全局配置文件(例如
/etc/profile
文件)中设置新的
umask
值,这会影响所有用户,或者在用户的shell配置文件(例如
~/.profile
,
~/.bashrc
或
~/.zshrc
中设置新的
umask
值。只会影响用户。 用户文件的优先级高于全局文件。
在更改
umask
值之前,请确保新值不构成潜在的安全风险。 限制值小于
022
值应格外小心。 例如,
umask 000
表示任何人都将具有对所有新创建文件的读取,写入和执行权限。
假设我们要为新创建的文件和目录设置更多的限制性权限,这样其他人将无法进入目录并读取文件。 我们想要的目录权限为
750
,文件权限为
640
。
要计算
umask
值,只需从默认值中减去所需的权限:
777-750 = 027
值:
777-750 = 027
用数字符号表示的所需
umask
值为
027
。
要在系统范围内永久设置新值,请使用文本编辑器打开
/etc/profile
文件:
sudo nano /etc/profile
并在文件开头更改或添加以下行:
/ etc / profile
umask 027
为了使更改生效,请运行以下
source
命令或注销并登录:
source /etc/profile
为了验证新设置,我们将使用
mkdir
创建一个新文件和目录,然后
touch
:
mkdir newdir
touch newfile
drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile
设置文件创建掩码的另一种方法是使用符号表示法。 例如,
umask u=rwx, g=rx, o=
与
umask 027
相同。
结论
在本指南中,我们解释了Linux权限以及如何使用
umask
命令为新创建的文件或目录设置权限位。
有关更多信息,请在终端中输入
man umask
。







