我正在使用 RHEL 8.9,并创建了一个基本的dhclient
钩子脚本,我想在其中登录到文件。
该脚本能够写入诸如 之类的地方/tmp
,但不能写入/opt
。它可以读来自 的文件/opt
,但不写入该目录:
[root@server]# ls -la /etc/dhcp/dhclient-exit-hooks.d/test.sh
-rwxr-xr-x. 1 root root 159 Feb 12 22:47 /etc/dhcp/dhclient-exit-hooks.d/test.sh
[root@server]# cat /etc/dhcp/dhclient-exit-hooks.d/test.sh
#!/bin/bash
{ date; cat /opt/test1.txt; } >> /tmp/test1.txt # works as expected (reading from /opt and writing to /tmp)
date >> /opt/test2.txt # does not work; cannot write to /opt
在测试挂钩时,我看到权限问题:
[root@server]# dhclient eth0
/etc/dhcp/dhclient-exit-hooks.d/test.sh: line 3: /opt/test2.txt: Permission denied
我已经验证了 中的文件已被授予写访问权限/opt
,甚至还向目录中的所有用户授予写/执行权限:
[root@server]# ls -la /opt/
total 8
drwxrwxrwx. 2 root root 40 Feb 12 22:46 .
dr-xr-xr-x. 17 root root 224 Dec 21 10:37 ..
-rw-rw-rw-. 1 root root 4 Feb 12 22:45 test1.txt
-rw-rw-rw-. 1 root root 4 Feb 12 22:46 test2.txt
文件读取/写入工作/tmp
正常。
我还可以直接使用 root 运行脚本,而不会遇到任何权限问题(它按预期工作)。
有任何想法吗?