无法以 root 身份删除文件夹

无法以 root 身份删除文件夹

文件夹结构如下:/home/bobuser/ftp/files

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

当我在里面的时候,我会/files得到ls -a

. ..

当我做

lsof +D /home/bobuser/ftp/files

我明白了:

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

如果我尝试终止服务 2080 或 2081 ( kill -9 2081),它会告诉我服务不存在。每次运行相同的命令时,这两个 PID 编号都会发生变化。如果我终止 1479,它会终止我作为用户的 SSH 会话,然后我将被注销。

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

编辑:

根据评论的要求,提供更多输出:

以 root 用户身份登录并将目录更改为 root,尽管我已经在那里了。

root@myhost:~# cd /root

运行下一行不会返回任何内容。只有当我进入文件目录时,我才会收到响应,然后我会得到如上所示的输出。

root@myhost:~# lsof +D /home/bobuser/ftp/files

接下来尝试此行并返回 0

root@myhost:~# ls -l /home/bobuser/ftp/files
total 0

答案1

简短回答:

umount /home/bobuser/ftp/files
rm -r /home/bobuser/ftp/files

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

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

将目录更改为后/root,我们可以看到目录下没有打开的文件/home/uerbob/ftp/files,因此我的第一个猜测是某个分区安装在那里。

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

mount | grep -i bobuser/ftp

如果是,你将获得如下输出:

/dev/vda1 on /home/bobuser/ftp/files type ext4 (rw,relatime,data=ordered)

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

答案2

有时文件夹未挂载,因此umount命令不起作用。

我曾以非 root 用户身份对这种无法删除的文件夹使用过这个命令:

sudo rm -r /mnt/hdd/movies/folder-problem

相关内容