我想确保特定目录中的文件无法被删除。我应该选择哪一个chmod
才能读取和使用这些文件,同时仍无法删除它们?我希望稍后能够撤消此操作,chmod
以防我再次想删除它们。
答案1
也许您正在尝试删除那些只能由 root 用户写入的文件。有两种方法可以做到这一点。以 root 用户身份删除文件。或者,将该文件公开。
sudo rm -rf <directory name>
chmod
用于许可。有3个权限
读
写。
执行。
如果您想公开启用所有这些,请运行以下命令
sudo chmod 777 <directory name>
如果您想禁用公共和组的权限,您应该运行以下命令
sudo chmod 700 <directory name>
第一个号码用于owner
(root 用户),第二个号码用于group
,第三个号码用于other access
(我称之为公共)
您可以记住权限号码这边走。
- 读=4
- 写入 = 2
- 执行=1
答案2
创建和删除文件的权限属于它们所在的目录。从该目录删除写权限,您仍然可以读/写该目录中的文件,但您既不能删除也不能创建它们。
mkdir try
touch try/one try/two
chmod u-w try # Remove write (w) permission from the user (u)
# No more deletions or creations but files can still be edited
echo boo > try/one # Ok
date > try/two # Ok
echo baa > try/new # Fails
rm try/two # Fails
chmod u+w try # Restore delete/create access
rm try/two # Ok
答案3
为了防止删除目录中的单个文件,您可以将它们设置为不可变。使用该命令chattr +i filename
使文件不可变。不可变文件无法修改、重命名或删除。注意:并非所有文件系统都支持不可变属性,只有超级用户或拥有 CAP_LINUX_IMMUTABLE 能力的进程才能设置或清除该属性。