插件窝 干货文章 linux怎么设置可写不可删除的文件

linux怎么设置可写不可删除的文件

文件 设置 方法 权限 371    来源:    2025-05-03

Linux设置可写不可删除的文件

在Linux系统中,你可以通过文件属性和权限设置来实现"可写但不可删除"的文件。以下是几种实现方法:

方法1:使用chattr命令(推荐)

chattr命令可以设置文件的特殊属性:

sudo chattr +a 文件名

特点: - 文件可以被追加内容(可写) - 不能删除或修改已有内容 - 只有root用户可以设置/取消这个属性

要取消这个属性:

sudo chattr -a 文件名

方法2:设置目录粘滞位(sticky bit)

如果文件在设置了粘滞位的目录中:

sudo chmod +t 目录名

然后设置文件权限为:

chmod 644 文件名

特点: - 文件所有者可以修改内容 - 只有文件所有者或root可以删除文件

方法3:使用ACL(访问控制列表)

setfacl -m u:用户名:rw 文件名
setfacl -m u:用户名:-x 文件名

特点: - 更细粒度的权限控制 - 可以针对特定用户设置权限

方法4:设置父目录权限

chmod 755 父目录
chmod 644 文件名

特点: - 用户需要写权限才能修改文件内容 - 但无法删除文件(因为需要父目录的写权限)

注意事项

  1. 方法1(chattr)是最直接有效的方法
  2. 这些方法都需要root权限来设置
  3. 某些方法(如粘滞位)对root用户无效
  4. 在生产环境中使用前应先测试

需要更详细的解释或针对特定场景的解决方案吗?