早上好,
我正在尝试在我的 CentOS 机器上设置一个 cron 作业,将文件从一个用户的主目录传输到另一个用户的目录。
btiseis@mymachine [~]# mv ./myfile.csv /home/mmh/tmp
我已确保 tmp 目录具有 0777 权限,但仍然收到以下错误消息:
mv: accessing '/home/mmh/tmp': Permission denied
我认为该问题是由于在主目录之间传输文件造成的。
有任何想法吗?
担
答案1
主目录没有什么特别的;只是用户这样命名它们。系统中的任何内容都不会关心目录是否被视为用户的“主目录”。
您确实需要所有目录的权限。因此,您需要 /home/mmh/tmp 的写入权限,以及 /home/mmh 的读取+执行权限(尽管读取或执行都足够,只是不确定哪一个。但通常读取和执行对于目录要么同时设置,要么取消设置),这样您才能真正访问其中的 /home/mmh/tmp。
如果您以 root 身份运行 cronjob,则可以解决所有问题;除非绝对必要,否则通常不建议扩大访问权限。这对您来说可能是问题,也可能不是问题(我猜没有其他用户),但坏习惯以后很难改掉。
编辑:如果两个用户是“友好的”(就像你自己的两个化身,所以你真的不介意其他人窥探你的数据),你可以将“目标”用户的主要组添加到“发送”用户的组列表中,并使用组权限。在许多系统上,每个用户都是用自己的私人组创建的。