当前位置:首页>Linux>Linux基础命令--文件管理(3)

Linux基础命令--文件管理(3)

  • 2026-10-21 13:26:37
Linux基础命令--文件管理(3)
linux命令是运维工作的基础也是核心,下来将介绍运维工作中常用的基础命令。
如有错,欢迎纠错哦~~  
欢迎大家关注和点赞~~
持续更新中......

chmod:修改文件或目录的权限
权限:
    读 r、写 w、执行 x
权限针对三类对象:

    u(user):文件所有者;

    g(group):文件所属组;

    o(other):其他所有用户;

    a(all):以上三类(默认)

使用语法:

chmod[选项] 权限设置 文件名/目录名

使用方法:

数字法

用3位数字表示权限,每一位对应u/g/o:r=4、w=2、x=1,相加得值

符号法
直接指定对象+权限操作(+加/-减/=赋值)
    chmod 755 test.txt  # u=rwx, g=rx, o=rxchmod 644 demo.txt  # u=rw, g=r, o=rchmod g+w demo.txt  # 给所属组加写权限chmod -R 775 /var/www/html  # 递归目录下所有文件/子目录设为775chmod o= demo.txt  # 移除其他用户的所有权限。等于chmod o-rwx demo.txt
    chown:修改文件或目录的所有者和属组

    使用语法:

        chown [选项] 用户名[:组名] 文件名/目录名
    # 仅修改所有者为 rootchown root demo.txt# 同时修改所有者和所属组(用:分隔)chown user1:staff demo.txt# 递归修改目录所有者(网站目录归属常用)chown -R www-data:www-data /var/www/html# 只修改所属组(省略用户名,保留:)chown :admin demo.txt  # 等价于 chgrp admin demo.txt
    chgrp:单独修改文件/目录的所属组
    # 修改文件所属组为 staffchgrp staff demo.txt# 递归修改目录所属组为 adminchgrp -R admin /data/project
    umask:查看/设置新建文件的默认权限掩码
    • 新目录默认权限 = 777 - umask(目录默认有执行权限,用于进入);
    • 新文件默认权限 = 666 - umask(文件默认无执行权限,需手动加);
    • 仅对新建文件生效,不影响已有文件。
    #查看当前 umask(系统默认通常是 022)umask0022(前两位是特殊权限,后三位是核心掩码)# 计算默认权限(umask=022)# 新目录:777 - 022 = 755(u=rwx, g=rx, o=rx)# 新文件:666 - 022 = 644(u=rw, g=r, o=r)# 临时设置 umask 为 002umask 002# 新目录:777 - 002 = 775(u=rwx, g=rwx, o=rx)# 新文件:666 - 002 = 664(u=rw, g=rw, o=r)# 验证:新建文件/目录看权限touch new_file.txtmkdir new_dirll-rw-rw-r-- 1 user staff 0 Jan 21 10:00 new_file.txt  # 664drwxrwxr-x 2 user staff 64 Jan 21 10:00 new_dir/     # 775
    chattr:设置文件的隐藏属性
    lsattr:查看文件的隐藏属性
        设置比 chmod 更底层的保护规则 —— 比如让文件无法被修改/删除(即使是 root 用户),优先级高于普通权限(rwx),是系统安全和重要文件保护的核心工具。
    用法:
        chattr [选项] [属性符号] 属性 文件名/目录名
    • 属性符号:+(添加属性)、-(移除属性)、=(设置唯一属性);
    • 关键前提:仅支持 ext2/ext3/ext4、XFS 等主流文件系统;
    用途:
          1.保护系统核心文件:防止误删 / 篡改 /etc/passwd、/etc/shadow、/etc/fstab
       2.保护日志文件:让日志只能追加(防止被篡改/删除)
    属性
    含义
    效果
    i
    不可修改immutable
    最高级保护:文件不能被修改、删除、重命名、追加内容,root 也不行,除非解除该属性
    a
    仅追加append only
    只能向文件追加内容(>>),不能修改/删除已有内容,不能删除/重命名文件
    # 添加 `i` 属性(设为不可修改)chattr +i chattr_demo.txt# 查看属性(验证是否生效)lsattr chattr_demo.txt----i----------- chattr_demo.txt(i 出现在属性列)# 测试:尝试修改/删除(即使 root 也会失败)echo "new content" > chattr_demo.txt-bash: chattr_demo.txt: 权限不够rm -f chattr_demo.txtrm: 无法删除 'chattr_demo.txt': 不允许的操作# 移除 `i` 属性(恢复正常)chattr -i chattr_demo.txt# 再次测试:修改/删除正常echo "new content" > chattr_demo.txt  # 成功
    # 添加 `a` 属性(仅允许追加)chattr +a chattr_demo.txt# 测试:追加内容(成功)echo "append content" >> chattr_demo.txtcat chattr_demo.txttest contentappend content# 测试:修改/删除内容(失败)echo "overwrite" > chattr_demo.txt-bash: chattr_demo.txt: 权限不够sed -i '1d' chattr_demo.txt  # 删除第一行,失败# 移除 `a` 属性(恢复正常)chattr -a chattr_demo.txt
    #递归授权目录,此目录将不能新建,删除文件chattr -R +i dir

    最新文章

    随机文章