0

0

如何设置默认umask 控制新建文件权限

P粉602998670

P粉602998670

发布时间:2025-08-12 11:08:02

|

794人浏览过

|

来源于php中文网

原创

umask是linux中用于控制新建文件和目录默认权限的掩码,通过从文件最大权限666和目录最大权限777中屏蔽相应权限位来确定实际权限;例如umask 022创建文件为644、目录为755,umask 002则为664和775,适合组内共享;系统级设置可通过修改/etc/profile、/etc/login.defs或使用pam模块(如pam_umask.so)实现,其中pam方式推荐用于统一管理不同登录场景;单个用户可通过修改~/.bashrc、~/.zshrc等shell配置文件设置;常见umask值包括022(最常用)、002(协作环境)、077(完全私有)和007(组共享);验证时需打开新终端执行umask命令并创建测试文件检查权限;需注意umask仅影响新文件,权限计算为按位屏蔽而非数学减法,且某些服务如cron或图形界面可能需单独配置以确保生效。

如何设置默认umask 控制新建文件权限

在 Linux 和类 Unix 系统中,

umask
决定了新建文件和目录的默认权限。通过设置默认
umask
,可以控制新创建文件的访问权限,提升系统安全性或满足协作需求。

什么是 umask

umask
是一个权限掩码,它从默认的最大权限中“屏蔽”掉某些权限。

  • 文件默认最大权限是
    666
    (可读可写)
  • 目录默认最大权限是
    777
    (可读可写可执行)

umask
值会从这些最大权限中减去,得到实际创建文件时的权限。例如:

  • umask 022
    :文件权限为
    644
    ,目录为
    755
  • umask 002
    :文件权限为
    664
    ,目录为
    775
    (适合组内共享)

如何设置系统级默认 umask

如果你希望为整个系统或所有用户设置默认

umask
,可以通过以下方式:

1. 修改
/etc/profile
/etc/bashrc

这些文件影响所有使用 bash 的用户。

编辑

/etc/profile

sudo nano /etc/profile

在文件末尾添加:

umask 022

保存后,所有新登录的用户会应用这个

umask

注意:修改后仅对新登录会话生效,当前终端不会立即改变。

2. 修改
/etc/login.defs
(适用于通过 login 创建的用户)

某些系统(如使用 shadow 密码的)会从

/etc/login.defs
读取
umask
设置。

编辑文件:

sudo nano /etc/login.defs

找到并修改:

UMASK           022

这个设置会影响

useradd
创建的新用户。

3. PAM 模块设置(推荐用于精细控制)

许多现代 Linux 发行版使用 PAM(Pluggable Authentication Modules)来设置

umask

云模块网站管理系统3.1.03
云模块网站管理系统3.1.03

云模块_YunMOK网站管理系统采用PHP+MYSQL为编程语言,搭载自主研发的模块化引擎驱动技术,实现可视化拖拽无技术创建并管理网站!如你所想,无限可能,支持创建任何网站:企业、商城、O2O、门户、论坛、人才等一块儿搞定!永久免费授权,包括商业用途; 默认内置三套免费模板。PC网站+手机网站+适配微信+文章管理+产品管理+SEO优化+组件扩展+NEW Login界面.....目测已经遥遥领先..

下载

编辑 PAM 配置文件:

sudo nano /etc/pam.d/common-session

添加一行:

session optional pam_umask.so umask=022

这样在用户登录时,PAM 会自动设置

umask
,适用于多种 shell 和登录方式(如 SSH、图形界面等)。


如何为单个用户设置 umask

如果只想为某个用户设置,可以修改其 shell 配置文件。

编辑用户家目录下的配置文件

例如,对于使用 bash 的用户,编辑:

~/.bashrc
~/.bash_profile

添加:

umask 022

如果是 zsh 用户,修改

~/.zshrc

注意:不同 shell 使用不同的配置文件,需确认当前用户使用的是哪种 shell。


umask 值的常见选择

  • 022
    :最常见,文件
    644
    ,目录
    755
    ,适合大多数个人或服务器环境
  • 002
    :文件
    664
    ,目录
    775
    ,适合团队协作,组内成员可写
  • 077
    :文件
    600
    ,目录
    700
    ,完全私有,仅用户自己可访问
  • 007
    :文件
    660
    ,目录
    770
    ,适合组共享但拒绝其他用户

验证 umask 是否生效

打开新终端,运行:

umask

输出应为设置的值(如

0022
)。

测试创建文件和目录:

touch testfile
mkdir testdir
ls -l testfile testdir

查看权限是否符合预期。


注意事项

  • umask
    只影响新创建的文件和目录,不会改变已有文件权限
  • 权限计算是“最大权限减去 umask”,但实际是按位屏蔽,不是数学减法
  • 某些应用程序(如 SSH、cron)可能不继承 shell 的 umask,需单独配置
  • 图形界面登录可能不加载
    .bashrc
    ,建议在
    .profile
    或 PAM 中设置

基本上就这些。设置

umask
看似简单,但对系统安全和协作效率影响不小,合理配置能避免很多权限问题。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1349

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

703

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

776

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

573

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

545

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

297

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

381

2023.07.25

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号