如果我创建一个文件,然后将其权限更改为444(只读),如何rm删除它?
如果我这样做:
echo test > test.txt
chmod 444 test.txt
rm test.txt
Run Code Online (Sandbox Code Playgroud)
...rm会问我是否要删除写保护的文件test.txt。我原以为rm不能删除这样的文件,我必须先做一个chmod +w test.txt。如果我这样做rm -f test.txt,然后rm将删除文件,甚至没有要求,即使它是只读的。
任何人都可以澄清吗?我正在使用 Ubuntu 12.04/bash。
我刚刚意识到我可以移动一个我不拥有且没有写权限的文件。我对该目录有写权限,所以我猜这就是我可以移动它的原因,但在这种情况下,是否有保护源文件的方法?
该文件的权限如下;
cgi-bin> ls -al
drwxrwxrwx 3 voyager endeavor 512 Feb 1 10:45 .
drwxrwxrwx 6 voyager endeavor 512 Feb 1 09:38 ..
-rwxr-xr-x 1 voyager endeavor 22374 Feb 1 10:45 webvoyage_link.cgi
cgi-bin> whoami
moorc
cgi-bin> groups
lrsn endeavor
cgi-bin> rm webvoyage_link.cgi
rm: webvoyage_link.cgi: override protection 755 (yes/no)? yes
Run Code Online (Sandbox Code Playgroud)
最后一个对我来说是一个很大的惊喜。如何删除我无权访问的文件。显然我遗漏了一些东西。
这对我来说有点难以实现,但我遇到了一种非常奇怪的行为,涉及ACL 扩展文件权限和硬/符号链接。我会尽力让我的问题简短明了,但我首先必须向您展示我目前情况的一个例子,因为我不知道发生了什么或它叫什么。
假设我们有一个有两个用户的系统,我们称他们为alice和bob,他们在一定程度上共享一个名为 的文件夹,stuff具有以下权限:
bob@server:~$ getfacl /home/stuff getfacl:
Removing leading '/' from absolute path names
# file: home/stuff
# owner: alice
# group: bob
user::rwx
group::-wx
other::---
default:user::rwx
default:user:bob:rwx
default:group::-wx
default:mask::rwx
default:other::---
Run Code Online (Sandbox Code Playgroud)
如您所见,该文件夹的所有者是alice,但 bob 可以在其中写入内容并使其可执行,以便alice可以在(+x 标志)中运行。但是,由于 ACL,每次 bob 将文件写入/复制到 时stuff,文件的权限都会发生更改,最终如下所示。bob假设我们在主目录中创建一个文件并将其移动到stuff.
bob@server:~$ touch myfile
bob@server:~$ chmod 777 myfile
bob@server:~$ ls -la myfile
-rwxrwxrwx 1 bob bob 0 myfile
bob@server:~$ mv myfile /home/stuff/myfile
bob@server:~$ …Run Code Online (Sandbox Code Playgroud)