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风扇?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top