无法以根用户身份删除文件夹

Ami*_*mir 5 permissions command-line

文件夹结构为: /home/bobuser/ftp/files

我以 root 身份登录,并且拥有/bobuser,/ftp/files。我对所有文件夹都有 777 权限。里面什么都没有/files

当我在里面时/filesls -a我会得到

. ..
Run Code Online (Sandbox Code Playgroud)

当我做

lsof +D /home/bobuser/ftp/files
Run Code Online (Sandbox Code Playgroud)

我明白了:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
bash    1479 root  cwd    DIR  253,1     4096 256003 /home/bobuser/ftp/files
lsof    2080 root  cwd    DIR  253,1     4096 256003 /home/bobuser/ftp/files
lsof    2081 root  cwd    DIR  253,1     4096 256003 /home/bobuser/ftp/files
Run Code Online (Sandbox Code Playgroud)

如果我尝试终止服务 2080 或 2081 ( kill -9 2081),它会告诉我服务不存在。每次运行相同的命令时,这两个 PID 编号都会更改。如果我杀死 1479,它会以用户身份终止我的 SSH 会话并且我已注销。

事实上,我想删除/bobuser下面的所有内容。

编辑:

评论要求的更多输出:

以 root 用户登录并将目录更改为 root,即使我已经在那里。

root@myhost:~# cd /root
Run Code Online (Sandbox Code Playgroud)

运行下一行不会返回任何内容。如果我被 cd 到文件目录中,我只会得到响应,然后我会得到上面发布的输出。

root@myhost:~# lsof +D /home/bobuser/ftp/files
Run Code Online (Sandbox Code Playgroud)

接下来尝试这一行并返回 0

root@myhost:~# ls -l /home/bobuser/ftp/files
total 0
Run Code Online (Sandbox Code Playgroud)

Rav*_*ina 8

简短的回答:

umount /home/bobuser/ftp/files
rm -r /home/bobuser/ftp/files
Run Code Online (Sandbox Code Playgroud)

如果您查看手册页的FD部分lsof,您会发现这cwd意味着当前工作目录。

您提到的另一件事是第 2 行和第 3 行的不同 PID。这些是lsof命令的 PID ,因此每次运行时lsof,它都会以新的 PID 运行,然后将关闭。

把你的目录改成 后/root,我们可以看到/home/uerbob/ftp/files目录下没有打开的文件,所以我的第一个猜测是那里挂载了一些分区。

您应该运行以下命令以查看是否有任何分区安装在那里:

mount | grep -i bobuser/ftp
Run Code Online (Sandbox Code Playgroud)

如果是,您将得到如下输出:

/dev/vda1 on /home/bobuser/ftp/files type ext4 (rw,relatime,data=ordered)
Run Code Online (Sandbox Code Playgroud)

然后只需卸载分区并删除目录。