一个用户如何删除另一个用户的755个文件?


35

我有一个备份上传脚本,该脚本使用user将scp的文件传输到另一台服务器upload。然后,目标服务器上的另一个脚本将这些脚本切给其他用户,并将文件模式设置为755

然后,如果我使用该upload用户SSH到目标服务器,则可以删除chown文件。他们不应该是只读的吗?

这是目标服务器上文件的外观,用户upload可以删除它。

-rwxr-xr-x 1 maciekish maciekish 650M Nov  1 01:07 2014-11-01-data.tar.bz2

upload刚刚使用添加了该用户,该用户useradd不属于该maciekish组。

尝试upload通过ssh 删除文件时,出现一个问题,是否要删除“写保护的常规文件”,我可以说Y并删除它。


Answers:


64

这些文件只读的。但是,删除文件不会修改它,而只会修改父目录(它实际上是从目录列表中删除文件)–听起来您具有对该目录的完全写权限。

您可以设置该sticky位(也称为“限制删除”标志),该位将阻止所有者以外的任何人重命名或删除该目录中的文件(如中的/tmp)。为此,请chmod o+t *directory*以目录的所有者身份运行。


12

在典型的Unix文件系统中,任何文件都可以由任意数量的目录条目标识,每个目录条目都包含一个“硬链接”。

从实现的角度来看,删除文件的最后一个目录条目(硬链接)与仅删除多个引用之间是有区别的。但是,从语义的角度来看,没有区别。

如果一个文件存在多个硬链接,则使用其中的任何一个写入文件都会更改所有人看到的文件。rm但是,在链接上使用只会导致无法通过该链接访问文件。指向该文件的其他链接将继续看到完全相同的文件。


3
俗称硬链接。
鲍勃

1
@Bob:我知道术语“硬链接”用于描述创建到已经存在的文件的引用;如果文件从未有多个引用,那么该单独引用是否仍称为“硬链接”?
2014年

3
链接之间没有区别。创建文件A,创建硬链接B,删除文件A。B现在是文件还是硬链接?为了了解其工作原理,最好将其视为N个硬链接,而不是1个文件和(N-1)个硬链接。打开文件时,也存在链接。
gnasher729 2014年

@ gnasher729:我同意在文件存在多个链接或存在多个链接的情况下,如果它们之间没有语义差异,则将它们全部称为“硬链接”是有意义的。另一方面,从语义和性能的角度来看,我认为区分始终是唯一引用文件的目录条目与可能已创建其他硬链接的目录条目之间可能会有优势。无论如何,我都不知道引用目录条目是否正确,“每个目录条目都被称为'硬链接'”。
2014年

2
@supercat并不是很常见,但这是正确的。考虑中的st_nlink(“硬链接数”)字段struct stat。简而言之,目录包含指向文件的硬链接。
hobbs 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.