Ami*_*mir 5 permissions command-line
文件夹结构为: /home/bobuser/ftp/files
我以 root 身份登录,并且拥有/bobuser
,/ftp
和/files
。我对所有文件夹都有 777 权限。里面什么都没有/files
。
当我在里面时/files
,ls -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)
简短的回答:
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)
然后只需卸载分区并删除目录。