更改目录权限时为什么会出现问号字符?

我正在尝试更改其初始权限为临时文件夹的权限

user@ubuntu:/var/log$ ls -l squid* squid3: total 4 -rw-r----- 1 proxy proxy 0 Jan 16 14:43 access.log -rw-r----- 1 proxy proxy 1359 Jan 16 14:43 cache.log ls: cannot open directory squid-deb-proxy: Permission denied 

以下是一些事情

 user@ubuntu:/var/log$ sudo chmod -R 644 squid* user@ubuntu:/var/log$ ls -l squid* squid3: ls: cannot access squid3/cache.log: Permission denied ls: cannot access squid3/access.log: Permission denied total 0 -????????? ? ? ? ? ? access.log -????????? ? ? ? ? ? cache.log squid-deb-proxy: ls: cannot access squid-deb-proxy/store.log: Permission denied ls: cannot access squid-deb-proxy/cache.log: Permission denied ls: cannot access squid-deb-proxy/access.log: Permission denied total 0 -????????? ? ? ? ? ? access.log -????????? ? ? ? ? ? cache.log -????????? ? ? ? ? ? store.log 

更改权限后,您会注意到到处都有问号。 为什么会这样? 我基本上想要阅读访问日志,看看squid-deb-proxy服务器是否正在接收来自客户端的请求。

要查看目录的权限,需要将-d标志传递给ls ,如下所示:

 ls -ld squid3 

要读取文件,需要设置其读取权限。 但是, 要读取目录及其文件列表,需要设置读取和执行权限 。 如果不是,那么您会遇到类似于您遇到的奇怪错误。

要以递归方式设置文件的读取权限以及目录的读取和执行权限,请使用以下命令:

 chmod -R a+rX directoryname 

以下是该命令的解释:

  • chmod是命令的名称,用于更改文件的权限。
  • -R是递归标志。 这意味着将此命令应用于目录及其所有子项及其子项的子项,依此类推。
  • a代表所有:将这些权限应用于文件的所有者,文件的组所有者和所有其他用户。
  • +表示如果尚未设置,则添加以下权限。
  • r表示读取权限。
  • X表示执行权限,但仅限于目录。 小写x表示对文件和目录的执行权限。

有关chmod命令的联机帮助页中可以找到更多信息 Manpage图标

我也有这个问题。 我不能在文件上做chmod或chown。 我试图删除它。 事实certificate,尝试删除它(rm命令)导致了问题。 踢球者是文件在两个不同的系统之间共享一旦我关闭了另一个系统中的文件,该文件就消失了。 这是我的配置的更多细节。 系统1:Ubuntu来宾VM。 这是我执行rm命令的地方。 系统2:Windows 7主机。 这是我使用less命令打开文件的地方(在cygwin中,而不是它必然相关)。

正如你所说,你的目标是阅读/var/log/squid/access.log ,你最好的解决方案是键入sudo less /var/log/squid/access.log ,这样可以避免重复修改。