更改目录权限时为什么会出现问号字符?
我正在尝试更改其初始权限为临时文件夹的权限
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
命令的联机帮助页中可以找到更多信息 。
我也有这个问题。 我不能在文件上做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
,这样可以避免重复修改。