作者信息:https://home.cnblogs.com/u/huangjiabobk

在Linux中,umask 和 ulimit有什么区别?

在Linux系统中,umaskulimit 是两个不同的命令,它们分别用于设置不同的系统属性:

1. umask(用户文件创建掩码)

umask(user file creation mask)是一个命令,用于设置新创建文件和目录的默认权限。umask 定义了文件系统创建文件和目录时默认应该屏蔽掉的权限位。

  • 用途:控制新创建的文件和目录的默认权限。
  • 工作原理umask 设置了一个掩码,这个掩码告诉系统在创建文件或目录时应该默认去掉哪些权限位。通常,这个掩码是一个三位八进制数,分别对应所有者(owner)、组(group)和其他(others)的权限。
  • 示例:如果设置 umask 022,那么新创建的文件默认权限将是644(即rw-r--r--),新创建的目录默认权限将是755(即rwxr-xr-x)。这是因为默认权限是666(文件)或777(目录),去掉umask指定的位(在本例中是其他用户的写权限)。
2. ulimit(用户限制)

ulimit 是一个命令,用于控制shell启动进程的资源限制。这些限制可以是CPU时间、内存大小、进程数量等。

  • 用途:限制进程可以使用的系统资源。
  • 工作原理ulimit 设置了进程可以使用的资源的上限,包括但不限于:
    • core:核心文件的大小(已弃用,通常设置为0)。
    • data:为进程的数据段分配的最大空间。
    • fsize:文件大小的最大值。
    • memlock:锁定在内存中的最大字节数。
    • nofile:进程可以打开的最大文件描述符数。
    • stack:进程的栈空间大小。
    • cpu:CPU时间的最大值。
  • 示例:使用 ulimit -n 64 可以设置一个进程可以打开的最大文件描述符数为64。
3. 区别
  • 作用范围umask 主要影响文件和目录的权限设置,而 ulimit 影响进程可以使用的系统资源。
  • 默认行为umask 定义了文件系统创建文件和目录时的默认权限,ulimit 定义了进程可以使用的资源的最大限制。
  • 使用场景umask 通常在用户的shell配置文件中设置,以定义用户创建文件和目录时的默认权限;ulimit 可以在命令行中临时设置,或在用户的shell配置文件中设置,以限制用户进程可以使用的资源。

综上所述,umaskulimit 都是用于系统管理的重要工具,但它们控制的是完全不同的方面。

posted @   黄嘉波  阅读(59)  评论(0编辑  收藏  举报
努力加载评论中...
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波
点击右上角即可分享
微信分享提示