我在工作场所管理一个数据集(使用 Centos 7)。该数据集的数据文件采用文件结构,其中所有内容都属于“myuser:group”,仅允许 myuser(又名我)写入权限,以防止不幸的事情发生。
然而,今天我只是直接复制一个项目的整个文件,并在它们上使用“mv”而不是“cp”。虽然这并没有造成什么坏处,但它确实提醒我可能会发生不好的事情。
目标是,我希望“组”的用户能够“cp”此目录结构之外的文件,但没有写入权限。这些文件已经在其他地方备份,所以我的目标是防止自己将来做一些愚蠢的事情,而不是在愚蠢的情况下恢复文件。
我正在考虑让 root 成为这些文件的所有者,所以我必须“sudo”才能造成任何损害。
我可以做什么来帮助防止自己意外编辑/删除这些文件?
答案1
好吧,您可以做几件事,每种方法都有其优点和缺点。
您可以设置适当的所有权(就像您当前所做的那样),其中用户拥有rw
(或r
)访问权限,组拥有r
。
您可以使文件不可变 - 通过修改文件的属性,您可以防止文件被删除或修改(但如果有权限,它将是可读的r
) - chattr +i file
。如果您稍后需要修改该文件,只需禁用该+i
标志即可chattr -i
。
无论您选择哪种,您都需要严格遵循您决定在组织中实施的政策、工作流程和程序。他们会阻止你犯这样的..错误。
答案2
我不确定我的解决方案会对您有帮助,但它可以避免我做愚蠢的事情。打开~/.bashrc
并添加以下内容:
alias mv="ensure && mv"
ensure() {
echo Are you sure about that? Type uppercase yes
read ans
if [[ $ans = YES ]] ; then
return 0
else
return 1
fi
}
YES
现在您每次需要使用时都需要键入mv
。
答案3
别名 mv ---> "mv -i" 怎么样,这将在您移动文件时引起提示。
在 csh 中,您可以将其放入 ~/.cshrc 中:
alias mv "mv -i"