scp файл не устанавливает правильного владельца - PullRequest
0 голосов
/ 18 марта 2009

Есть ли у SCP проблемы с настройкой прав доступа к файлу или я неправильно настроил свой сервер?

Обновлено (19 марта / 09) : На самом деле: проблем нет - я просто неправильно понял, как работают разрешения - они не меняются при изменении содержимого файла

Вариант использования:

На сервере есть файл, который я хочу отредактировать и называемый "ImportantFile.txt". Файл имеет владельца и группу "master":

ls -l importantFile.txt:
-rw-rw-r--  1 master master     7 Mar 18 08:11 importantFile.txt

Меня зовут "раб", но, к счастью, я нахожусь в группе "мастер", поэтому я могу отредактировать файл так, как считаю нужным. Тем не менее, я ленивый раб, и меня не беспокоит редактирование файла на сервере, я бы предпочел отредактировать файл на моем локальном компьютере и отправить его на сервер:

echo "bored slave info" > importantFile.txt
scp importantFile.txt slave@theServerAddress:/pathToFile/importantFile.txt

Если я сделаю это, содержимое файла на сервере будет нормально загружено, а временная метка файла обновлена, но права доступа к файлу не изменятся, файл по-прежнему принадлежит «master». Это проблема, потому что, если «ведомый» загрузил плохой контент, никто бы не узнал, что именно «раб» вызвал проблему, «хозяин» выглядел бы виновным.

Может быть, я должен установить Umask? если так где? Я попытался .bash_profile безуспешно и не нашел в Google ничего о umask в /etc/ssh/sshd_config.

Ответы [ 4 ]

1 голос
/ 27 октября 2010

Кажется, вы можете настроить, как Emacs справляется с этим, через переменную backup-by-copying-when-mismatch (см. Руководство по Emacs или введите C-h-v backup-by-copying-when-mismatch в Emacs).

Я на самом деле подал отчет об ошибке об этом, потому что я думал, что это ошибка в Tramp.

1 голос
/ 18 марта 2009

В scp нет ничего особенного - попробуйте войти на сервер в качестве ведомого и отредактировать файл с помощью вашего любимого текстового редактора ... Вы обнаружите, что происходит то же самое ... Запись в файл не делает вас владелец файла.


Пример:

как root

#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
1 голос
/ 18 марта 2009

Вы должны удалить файл, чтобы перезаписать его. Можно ли это сделать, зависит от прав доступа и владения каталогом. Захват владения уже существующим файлом невозможен. Ваше разрешение на запись применяется только к содержимому файла.

0 голосов
/ 19 марта 2009

Я неправильно понял, как работают файлы, изменение содержимого файла не меняет владельца или группу.

Почему путаница? EMACS - Всякий раз, когда я редактировал файл, я использовал Emacs и Emacs меняет владельца и группу на текущего пользователя. Это происходит потому, что при сохранении создается резервный файл путем перемещения «filename» в «filename ~» и создания нового файла с именем «filename» - потому что это новый файл, он имеет права доступа для текущего пользователя. Я думаю, это 1 до фанатов VI?

...