我正在尝试清除日志,但我没有权限,因为 Apache 错误日志上的文件权限如下:-rw-r-----
当我尝试执行类似 chmod 777 error.log 的操作时
我收到此错误:chmod:更改“error.log.1”的权限:操作不允许
你知道如何更改我的权限以允许我自己清除日志并删除旧的错误日志文件吗?
谢谢,亚历克斯
答案1
如果您在命令前使用 sudo,则可以更改文件的权限:
sudo chmod 777 /var/log/error.log
您需要以 root 用户身份将自己添加到 sudoers 文件中:
visudo
或者,您可以创建一个日志组并将自己添加到该组中,然后将所有日志文件的组所有权更改为日志组。
答案2
如果我没记错的话,大多数现代 Linux 发行版都默认将 apache 日志文件归 root 所有,并且属于 root 组。因此,您需要具有 root 级别访问权限才能修改权限或清除日志。如果您没有通过 root 登录、sudo、su 或某种 setuid root 工具获得这些权限,那么您很可能运气不佳。
如果你可以使用 sudo,它应该很简单:
sudo cat /dev/null > error.log
这将完全清除日志文件(删除它)但保留权限。
答案3
您没有发布文件所有权,但根据您的描述,我猜测它是由 root 用户拥有的,并且由您的组用户拥有的。
除非您是 root 用户,否则您无法更改您的用户不拥有的文件的权限模式,并且您无法从您没有写入权限的目录中删除文件,无论是通过该目录的用户还是组所有者。因此,除非您具有 root 访问权限,否则您必须请求管理员执行此操作。