我正在尝试设置 ddclient,但似乎存在权限问题。
heimchen@localhost ~> ls -l /etc/ddclient.conf
-rw-------. 1 ddclient ddclient 8110 Jan 21 23:04 /etc/ddclient.conf
heimchen@localhost ~> ddclient
WARNING: file /etc/ddclient.conf: Cannot open file '/etc/ddclient.conf'. (Permission denied)
stat() on closed filehandle FD at /usr/sbin/ddclient line 1167.
Use of uninitialized value $mode in bitwise and (&) at /usr/sbin/ddclient line 1168.
readline() on closed filehandle FD at /usr/sbin/ddclient line 1180.
WARNING: file /etc/ddclient.conf: Cannot open file '/etc/ddclient.conf'. (Permission denied)
stat() on closed filehandle FD at /usr/sbin/ddclient line 1167.
Use of uninitialized value $mode in bitwise and (&) at /usr/sbin/ddclient line 1168.
readline() on closed filehandle FD at /usr/sbin/ddclient line 1180.
为什么 ddclient 说它没有权限?
ddclient.conf 文件只有约 300 行
复制:
Fedora Server 37
sudo dnf update
sudo dnf install ddclient
ddclient
(configure /etc/ddclient.conf)
sudo systemctl enable ddclient.service
sudo systemctl start ddclient.service
答案1
该文件不属于程序“ddclient”,它归用户帐号名为“ddclient”。
只有以该用户身份运行的程序才被允许读取该文件 - 您的示例中并非如此;ddclient 程序在“heimchen”帐户下运行,该帐户无权访问该文件。这同样适用于nano /etc/ddclient.conf
或cat /etc/ddclient.conf
。
将程序作为服务启动将自动在正确的用户帐户下运行,因为 .service 配置已User=ddclient
在其中指定;但是,直接启动它时,始终在启动它的用户帐户下运行它。
与sudo -u ddclient ddclient
或比较sudo -u ddclient cat /etc/ddclient.conf
,做切换到指定的用户账户。
基本文件权限旁边.
表示可以应用来自 SELinux 的附加限制(安全标签),但这仅在基本权限允许访问时才相关(因为 SELinux 只能进一步限制访问,而不能放松检查)。