设为首页收藏本站手机版导航 今天是: 2025-04-02    "国际儿童图书日"  
天气与日历 切换到宽版

 找回密码
 立即注册
搜索
热搜: 吉他 seo 大全
查看: 695|回复: 0

Linux文件锁定及权限修改(linux文件安全防护指南)

[复制链接]
  • 打卡总天数:119

471

主题

31

回帖

24万

积分

管理员

积分
247795

荣誉管理论坛元老本科学士学位百达翡丽奔驰

QQ

皮卡丘 Lv:40
发表于 2024-11-23 10:46:01 | 显示全部楼层 |阅读模式 IP:北京
在Linux系统中,为了防止文件被篡改或非法访问,可以使用chattr命令来锁定文件,使其不可变。这样,即使root用户也无法修改或删除这些文件,直到你决定解锁它们。

以下是如何使用chattr命令来锁定和解锁文件的步骤:

1、锁定文件:使用chattr命令加上+i参数来锁定文件。这将使文件不可变,无法被修改、删除或重命名。
  1. sudo chattr +i /www/1.html #处理单个文件
复制代码
  1. find "/www" -type f -exec sudo chattr +i {} \; #处理所有文件
复制代码

2、检查文件属性:使用lsattr命令来查看文件的当前属性,确认文件已被锁定。
  1. lsattr /www/1.html
复制代码

3、解锁文件:当您需要对文件进行修改时,可以使用chattr命令加上-i参数来解锁文件。
  1. sudo chattr -i /www/1.html #处理单个文件
复制代码
  1. find "/www" -type f -exec sudo chattr -i {} \; #处理所有文件
复制代码

请注意,chattr命令只适用于ext2、ext3或ext4文件系统,并且不能用于/、/dev、/tmp、/var等特殊目录。
此外,锁定文件是一种安全措施,但它不能防止所有的攻击,例如,如果攻击者有物理访问权限或者能够绕过文件系统限制,他们可能仍然能够修改文件。因此,确保系统的其他安全措施(如防火墙、安全更新和入侵检测系统)也得到妥善配置和维护是非常重要的。

也可以结合chmod  ACL chattr处理所有用户组、所有目录、所有文件,为方便执行,我们把命令写到脚本里:


!!!注意,以下为高风险操作,操作前请务必了解代码原理!!!


锁定(新建文件suoding.sh放入代码,执行bash suoding.sh,无法执行需要chmod +x命令增加执行权限):
  1. #!/bin/bash

  2. # 定义目录路径
  3. DIR="/www/"

  4. # 开始时间
  5. START_TIME=$(date +%s)

  6. # 为目录中的所有文件设置不可变属性
  7. find "$DIR" -type f -print0 | xargs -0 -P 4 -I {} chattr +i {};

  8. # 等待所有后台进程完成
  9. wait

  10. # 设置目录的权限,使得所有用户(包括所有者和root)只有读取权限
  11. find "$DIR" -type d -exec sudo chmod 544 {} \;

  12. # sudo chmod -R 444 "$DIR" # 设置目录和文件的权限
  13. # sudo setfacl -R -m u::r--,g::r--,o::r-- "$DIR" #也可用ACL单独控制,使得所有用户只有读取权限

  14. # 等待所有后台进程完成
  15. wait

  16. # 结束时间
  17. END_TIME=$(date +%s)

  18. # 计算并打印所用时间
  19. ELAPSED_TIME=$((END_TIME - START_TIME))
  20. echo "Elapsed time: $ELAPSED_TIME seconds"

  21. # 打印完成信息
  22. echo "Files in '$DIR' have been secured with chattr, chmod, and setfacl."
复制代码

解除:(新建文件jiechu.sh放入代码,执行bash jiechu.sh,无法执行需要chmod +x命令增加执行权限):
  1. #!/bin/bash

  2. # 定义目录路径
  3. DIR="/www/"

  4. # 开始时间
  5. START_TIME=$(date +%s)

  6. # 解锁目录中的所有文件
  7. find "$DIR" -type f -print0 | xargs -0 -P 4 -I {} chattr -i {};

  8. # 等待所有后台进程完成
  9. wait

  10. # 设置目录的权限,使得所有者和root有读写执行权限,其他用户组保持只读
  11. find "$DIR" -type d -exec sudo chmod 755 {} \;

  12. # sudo chmod -R 755 "$DIR" # 设置目录和文件的权限
  13. # sudo setfacl -R -m u::rwx,g::r--,o::r-- "$DIR" # 也可用ACL单独控制,允许所有者和root有读写执行权限,其他用户组保持只读

  14. # 等待所有后台进程完成
  15. wait

  16. # 结束时间
  17. END_TIME=$(date +%s)

  18. # 计算并打印所用时间
  19. ELAPSED_TIME=$((END_TIME - START_TIME))
  20. echo "Elapsed time: $ELAPSED_TIME seconds"

  21. # 打印完成信息
  22. echo "Files in '$DIR' have been secured with chattr, chmod, and setfacl."
复制代码

方法汇总:

1、使用chmod命令来限制文件的读写执行权限。

2、flock主要用于控制文件的并发访问,通过锁定文件描述符来实现。它适用于需要防止多个进程同时修改文件的场景。

3、chattr主要用于修改文件的元数据属性,例如设置文件为只读或不可修改。它适用于需要保护文件免受意外修改或删除的场景。

4、使用chown命令更改文件的所有者,以及chgrp命令更改文件的所属组。

5、使用ACLs(访问控制列表)ACLs提供比传统Unix权限更细粒度的控制。

6、AppArmor或SELinux这些是Linux的安全模块,可以提供基于策略的安全控制。

7、文件系统挂载选项在挂载文件系统时,可以使用noexec、nodev、nosuid等选项来增加安全性,限制执行文件或使用设备文件。

8、使用版本控制系统对于代码或配置文件,可以使用版本控制系统(如git)来跟踪更改。如果文件被篡改,可以从版本库中恢复。

9、Linux还支持文件锁机制,用于控制多个进程对同一文件的并发访问。虽然这主要用于避免数据不一致或损坏,但在一定程度上也可以防止文件被恶意篡改。

10、许多Linux发行版支持文件系统加密,如dm-crypt/LUKS(Linux Unified Key Setup)。

11、利用SELinux或AppArmor等强制访问控制(MAC)系统。

12、直接购买第三方防护软件,如护卫神。

监测和检查:

1、使用工具如auditd、inotify-tools等监控关键文件的变化,一旦发现异常变动即可立即采取行动。

2、定期检查文件完整性使用工具如Tripwire可以建立文件的完整性数据库,定期检查文件是否被篡改。

3、如果是cms可以针对核心文件监测修改和新增情况。


绵羊优创 - 专注优质内容创作分享!
懒得打字嘛,点击右侧快捷回复 【乱回复纯数字纯字母将禁言】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|社区规范|心情墙|神奇宝贝||绵羊优创 ( 京ICP备19037745号-2 )|网站地图

公安备案京公网安备11011502037529号

GMT+8, 2025-4-2 05:10 , Processed in 1.820913 second(s), 18 queries , MemCache On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表