【问题标题】:Perl script can't unzip to mounted Windows share - permission deniedPerl 脚本无法解压缩到挂载的 Windows 共享 - 权限被拒绝
【发布时间】:2015-07-16 17:05:17
【问题描述】:

我有一个简单的脚本,可以将文件解压缩到已安装的 Windows 共享。它通常在新电子邮件到达时作为 Postfix 别名启动,但即使我以 root 身份运行它,我也会收到权限被拒绝错误。

脚本正在这样做:

if ( </tmp/*.zip> ){
        unzip '</tmp/*.zip>' => '</mnt/win/#1.txt>'
                or die "unzip failed: $UnzipError\n";
}

作为 root,我可以毫无问题地将文件复制到 /mnt/win,但是当 Postfix 启动此脚本时,它会因权限被拒绝而失败。

/etc/fstab 看起来像:

//srvr1/tmp /mnt/win  cifs credentials=/root/.smbcredentials,iocharset=iso8859-1,sec=ntlm 0 0

ls -ld 看起来像:

drwxr-xr-x 2 root root 196608 Jul 15 17:24 /mnt/win

脚本生成的文件是nobody/nogroup,但我不确定如何更改/mnt/win 的权限以允许nobody/nogroup 读取/写入。

cmhod -R ugo+RW /mnt/win 

还授予权限被拒绝。有没有办法更改 /etc/fstab 中的权限以允许 nobody/nogroup?

【问题讨论】:

  • 你的unzip来自哪个模块?您真的要解压缩名为&lt;/mnt/win/#1.txt&gt; 的文件吗?
  • unzip 来自IO::Uncompress::unzip - 该命令中有一个参数在末尾添加文件名。

标签: perl permissions smb


【解决方案1】:

您需要使用此命令更改其中文件夹和文件的权限。

sudo chmod -R R+X /mnt/win 

如果你想同时更改文件的用户nobody/nogroup,你可以使用这个命令:

sudo chown -R username.username /mnt/win/

您可以在此处选择任何用户名,例如我的是mukesh

sudo chown -R mueksh.mukesh /mnt/win/

【讨论】:

  • 不幸的是,这些都不起作用..我得到的每个权限都被拒绝了。我实际上先尝试了 chmod。
  • root@server:/home/user# sudo chmod -R R+X /mnt/win chmod: invalid mode: âR+Xâ Try 'chmod --help' for more information. root@server:/home/user# sudo chown -R nobody.nogroup /mnt/win chown: changing ownership of â/mnt/winâ: Permission denied
  • 我想你的意思是chmod -R a+rx,它为用户、组和其他添加了读取和执行位。
猜你喜欢
  • 2020-01-09
  • 2019-11-20
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 2019-05-31
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多