我无法解释目录中ls -l的结果:
-rwxrwxr-x 1 root root 37114 Jul 24 02:13 madison_events.json
-rwxrwxr-x 1 root root 131355 Jul 24 16:00 milwaukee_events.json
-rwxrwxr-x 1 root root 67570 Jul 26 19:42 minneapolis_events.json
-rwxrwxr-x 1 root root 402115 Jul 24 16:33 nashville_events.json
-rwxrwxr-x 1 root root 70429 Jul 24 16:46 neworleans_events.json
-rw-rw-r-- 1 ubuntu ubuntu 546936 Jul 27 02:15 nyc_events.json
-rwxrwxr-x 1 root root 58037 Jul 24 16:50 seattle_events.json
-rw-rw-r-- 1 ubuntu ubuntu 141303 Jul 27 01:04 sf_events.json我注意到我的python脚本可以写入列出的ubuntu (nyc_events.josn和sf_events.json)文件,但它不能写入列出的根文件(seattle_events.json、nashville_events.json等)。
在这种情况下,root和ubuntu意味着什么?我如何才能让读取“root”的文件读取“ubuntu”?我还注意到,在filezilla中,根文件的数值为664,而ubuntu文件的值为775。
总之,我希望能够写到所有这些文件。谢谢。
发布于 2021-07-27 06:13:31
其中一些文件属于root (也属于组root )。这是因为在某个时候,您已经运行了作为root生成它们的脚本。不要这样做,只对需要根权限的系统管理任务使用root。所有权可以用chown来修正。
根拥有的文件也具有执行权限,可能是因为root的umask默认设置新文件的执行位。.json文件通常不需要是可执行的(因为它们只是json数据,而不是脚本),所以您应该用chmod修复它。
若要修复所有权和权限,请将cd放到包含文件的目录中,并且:
sudo chown ubuntu:ubuntu *.json
sudo chmod 644 *.json发布于 2021-08-24 08:35:59
原因是列出为root的文件属于root用户,因此不能被任何其他用户更改,比如在您的情况下的ubuntu。
要使您的程序能够写入作为root列出的文件,您必须使用chown命令更改这些文件的所有权。
步骤:
root用户身份登录。cd到包含文件的文件夹chown ubuntu:ubuntu *.json或者直接执行:
cd <to the directory>; sudo chown ubuntu:ubuntu *.json希望这能有所帮助!
https://unix.stackexchange.com/questions/660101
复制相似问题