登录的用户是对文件夹具有写入权限的组的成员。但是当该用户尝试写入内容时,“权限被拒绝”。
下面的日志总结了这个问题:
subv:/www/tracer/ whoami
frank
subv:/www/tracer/
subv:/www/tracer/ ls -ltr
total 4
drwxrwxr-x 2 root tracer 4096 Jan 20 12:25 convert.tracer.com
subv:/www/tracer/ groups frank
frank : frank tracer
subv:/www/tracer/ > convert.tracer.com/test
-bash: convert.tracer.com/test: Permission denied
subv:/www/tracer/
“ls -bail /www/tracer/convert.tracer.com/”的输出:
subv:~/ ls -bail /www/tracer/convert.tracer.com/
total 8
38010883 drwxrwxr-x 2 root tracer 4096 Jan 20 12:25 .
38010882 drwxr-xr-x 3 root root 4096 Jan 20 12:25 ..
subv:~/
答案1
登录时会重新读取组成员资格。groups
似乎报告您所在的组/etc/group
,但并不反映当前会话中组的成员身份。
使用该命令id -Gn
显示您当前是其活跃成员的组。解决方案:重新登录以应用组更改。
答案2
您拥有该文件的目录的权限如何?
您可以使用 vim 编辑该文件并保存吗?
尝试做类似的事情
chmod g+w .
更新
subv:~/ ls -bail /www/tracer/convert.tracer.com/
total 8
38010883 drwxrwxr-x 2 root tracer 4096 Jan 20 12:25 .
38010882 drwxr-xr-x 3 root root 4096 Jan 20 12:25 ..
创建跟踪器目录时可能出现问题,我在输出的第二行中看到 root 和 4096 之间有奇怪的空格。
我会以 root 身份尝试这个:
cd /www/tracer/
chown root:root .
chown root:tracer convert.tracer.com
如果仍然可以,我会检查 /etc/group 中的组名称,执行
cat -v /etc/group
检查根和跟踪组中是否没有不可打印的字符
最后,如果问题仍然存在,则可能是 SELinux 或文件系统的问题。