怎样在 Linux 中禁止从命令行列出目录

在这个简短的教程中,我们将看到怎样 禁止在 Linux 中列出目录 从命令行。 换句话说,我们将拒绝普通用户使用列出目录的内容 ls 命令,但仍允许用户访问和修改同一目录中的文件。

禁止在 Linux 中列出目录

让我们创造一个 test 包含一些文件的目录。

$ mkdir test
$ touch test/{file1,file2}.txt

现在设置适当的权限 test 目录使用 chmod 命令:

$ chmod 0111 test/

此命令将限制普通用户列出 ‘test‘ 目录

让我们验证目录权限:

$ ls -ld test/

示例输出:

d--x--x--x 2 ostechnix ostechnix 4096 Dec 21 18:23 test/

正如您在上面的输出中看到的,测试目录只有执行(X) 允许。 读取 (r) 和写 (w) 权限被撤销。 含义 – 普通用户无法使用访问目录内容 ls 命令。

让我们尝试使用列出目录内容 ls 命令:

$ ls test/

示例输出:

ls: cannot open directory 'test/': Permission denied

看? 我们无法列出目录内容。 因为,我们禁用了“测试”目录的目录列表。

但是,我们仍然可以通过名称访问目录中的文件。

$ echo "Welcome to OSTechNix blog" > test/file1.txt
$ cd test/
$ cat file1.txt
Welcome to OSTechNix blog
禁止在 Linux 中列出目录

此技巧可用于保护网站目录的内容。 这种技术是一种限制机器人抓取 Web 目录的方法。 当然, 极好的 用户可以不受任何限制地访问该目录。

相关阅读:

  • 怎样在 Linux 中查看目录树结构
  • 不使用 ls 命令列出目录内容的不同方法
  • 怎样在一个命令中使用 cd 和 ls