SCP文件没有设置正确的所有者
-
19-08-2019 - |
题
SCP是否有问题设置文件权限或有错误配置我我的服务器?
更新(19 /月/ 09)的 :其实:是没有问题的 - 我刚才误解权限的工作方式 - 它们不会改变当该文件的内容被改变
使用实例:
有就是我想编辑称为“importantFile.txt”服务器上的文件。该文件具有的“主”所有者和组:
ls -l importantFile.txt:
-rw-rw-r-- 1 master master 7 Mar 18 08:11 importantFile.txt
我称为“从属”但幸运的是,我在组“主”,从而我认为合适的我可以编辑该文件。但是,我是一个懒惰的奴隶,也懒得编辑服务器上的文件,我宁愿要编辑的文件我的本地机器和SCP它到服务器:
echo "bored slave info" > importantFile.txt
scp importantFile.txt slave@theServerAddress:/pathToFile/importantFile.txt
如果我这样做,在服务器上的文件的内容被上传罚款和文件的时间戳已经更新,但文件的权限不改变,该文件仍然被“大师”所拥有。这是一个问题,因为如果“从”上传的内容不好,没有人会知道,这是“奴隶”谁造成的问题,“大师”会显得有罪。
也许我必须设置的umask?如果是的话在哪里呢?我试过的.bash_profile没有成功以及有关/etc/ssh/sshd_config
的umask没有发现任何关于谷歌。
解决方案
这没有什么特别的SCP - 尝试登录到服务器作为奴隶,和编辑使用文本编辑器文件......你会发现相同的行为发生...写入文件不会使你的该文件的所有者。
示例:
作为根
#cd /tmp
#mkdir fubar
#chgrp vboxusers fubar
#cd fubar/
#touch testfile
#chgrp vboxusers testfile
#chmod g+w . testfile
#ls -al
total 16
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:29 ..
-rw-rw-r-- 1 root vboxusers 0 2009-03-19 10:30 testfile
#echo foo > testfile
#ls -al
total 20
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:29 ..
-rw-rw-r-- 1 root vboxusers 4 2009-03-19 10:30 testfile
如用户(在vboxusers组)
>cd /tmp/fubar
>ls -al
total 20
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:29 ..
-rw-rw-r-- 1 root vboxusers 4 2009-03-19 10:30 testfile
>echo bar >> testfile
>ls -al
total 20
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:29 ..
-rw-rw-r-- 1 root vboxusers 8 2009-03-19 10:31 testfile
>vim testfile
>ls -al
total 20
drwxrwxr-x 2 root vboxusers 4096 2009-03-19 10:31 .
drwxrwxrwt 15 root root 12288 2009-03-19 10:31 ..
-rw-rw-r-- 1 root vboxusers 12 2009-03-19 10:31 testfile
>cat testfile
foo
bar
baz
其他提示
您必须删除覆盖它的文件。无论您是能够做到这一点取决于目录的权限和所有权。一个已经存在的文件的劫持所有权是不可能的。你有写许可仅被施加上的文件的内容。
看来你可以配置的Emacs如何通过backup-by-copying-when-mismatch
变量(见在Emacs Emacs手册或类型C-h-v backup-by-copying-when-mismatch
)与此交易。
其实我提起这个一个错误报告,因为我认为它是在流氓的一个错误。
我的理解有误文件的工作方式,修改文件内容不改变所有权或组。
为什么混乱?的 EMACS 强> - 每当我编辑我使用Emacs和Emacs确实改变所有者和组到当前用户的文件。它这样做是因为它使一个备份文件,同时节省通过移动“文件名”,以“文件名〜”,并创建一个名为“文件名”新文件的时间 - 因为它是一个新的文件,它具有当前用户的文件权限。我想这是1UP到VI风扇?