CP + не хочет перезаписать полномочия

Могло бы быть просто мое незнание Exchange, но для нашей компании, выбирание открытой платформы было важно так, чтобы мы могли изменить почтовый сервер для удовлетворения нашим потребностям.
Я думаю, идя с Вашим начальным предложением, и разделение этих двух является мудрым перемещением. Вообразите, решает ли один из Ваших клиентов начать отправлять СПАМ с помощью Exchange Server. Вы добавляетесь к РУБЛЮ, и теперь Вашу корпоративную электронную почту рассматривают как СПАМ также...

Я думаю, что Вы хотите выбрать уровень предприятия Linux, такой как RHEL и плата за поддержку! Я - персональный поклонник QMail, работающего на Linux из-за его гибкости и безопасности.

23
задан 20 April 2017 в 21:42
6 ответов

Если Вы только открыли руководство для cp...

Следующее не перезапишет полномочия файла и владение + groupship:

cp --no-preserve=mode,ownership /tmp/file /home/file

Обратите внимание, что полномочия пользователя root необходимы, если Вы хотите сохранить владение и groupship.

Выборка из руководства:

  --preserve[=ATTR_LIST]
      preserve   the   specified   attributes   (default:  mode,owner-
      ship,timestamps), if possible  additional  attributes:  context,
      links, xattr, all
30
ответ дан 28 November 2019 в 20:20

cat будет работать, также:

cat /tmp/file > /home/file
10
ответ дан 28 November 2019 в 20:20

Или можно использовать еще лучшую программу установки от GNU coreutils, который был сделан для этой конкретной цели. Обратите внимание, что это не может рекурсивно вызвать (никакой-R или-r опция).

http://www.gnu.org/software/coreutils/manual/html_node/install-invocation.html

0
ответ дан 28 November 2019 в 20:20

Не используйте переключатели, связанные с правами доступа вообще, особенно - no-preserve , потому что он ведет себя странно:

хорошо:

[il@localhost Downloads]$ sudo cp ssh_host_* /etc/ssh/
[il@localhost Downloads]$ ls -l /etc/ssh
total 604
-rw-r--r--  1 root root     581843 Oct 20  2017 moduli
-rw-r--r--  1 root root       2276 Oct 20  2017 ssh_config
-rw-------  1 root root       3907 Oct 20  2017 sshd_config
-rw-r-----. 1 root ssh_keys    227 Oct  2 12:26 ssh_host_ecdsa_key
-rw-r--r--. 1 root root        172 Oct  2 12:26 ssh_host_ecdsa_key.pub
-rw-r-----. 1 root ssh_keys    411 Oct  2 12:26 ssh_host_ed25519_key
-rw-r--r--. 1 root root        100 Oct  2 12:26 ssh_host_ed25519_key.pub
-rw-r-----. 1 root ssh_keys   1679 Oct  2 12:26 ssh_host_rsa_key
-rw-r--r--. 1 root root        392 Oct  2 12:26 ssh_host_rsa_key.pub

плохо:

[il@localhost Downloads]$ sudo cp --no-preserve=mode,ownership ssh_host_* /etc/ssh/
[il@localhost Downloads]$ ls -l /etc/ssh
total 604
-rw-r--r--  1 root root     581843 Oct 20  2017 moduli
-rw-r--r--  1 root root       2276 Oct 20  2017 ssh_config
-rw-------  1 root root       3907 Oct 20  2017 sshd_config
-rw-r--r--. 1 root ssh_keys    227 Oct  2 12:27 ssh_host_ecdsa_key
-rw-r--r--. 1 root root        172 Oct  2 12:27 ssh_host_ecdsa_key.pub
-rw-r--r--. 1 root ssh_keys    411 Oct  2 12:27 ssh_host_ed25519_key
-rw-r--r--. 1 root root        100 Oct  2 12:27 ssh_host_ed25519_key.pub
-rw-r--r--. 1 root ssh_keys   1679 Oct  2 12:27 ssh_host_rsa_key
-rw-r--r--. 1 root root        392 Oct  2 12:27 ssh_host_rsa_key.pub
0
ответ дан 28 November 2019 в 20:20

cp cp не отменяет разрешения по умолчанию. Если вы хотите убедиться, что разрешения не будут переопределены, используйте

cp --preserve=mode,ownership /tmp/file /target_dir_where_file_resides
0
ответ дан 28 November 2019 в 20:20

По умолчанию GNU cp (версия 8.32) НЕ перезаписывает права назначения, поэтому вопрос спорный:

% ls -li
total 8,192
19392015 -rwxrwxrwx 1 ravi ravi 4 Jan  3 16:54 bar*
19392014 -rw-r--r-- 1 ravi ravi 4 Jan  3 16:46 foo
% cp foo bar
% ls -li
total 8,192
19392015 -rwxrwxrwx 1 ravi ravi 4 Jan  3 16:57 bar*
19392014 -rw-r--r-- 1 ravi ravi 4 Jan  3 16:46 foo
%

В случае, когда файл назначения недоступен для записи (даже несмотря на то, что каталог есть), cp скажет:

cp: cannot create regular file 'dest-file': Permission denied

Другие параметры, кроме cp:

cat сохранят индекс и разрешения целевого файла:

cat file-with-new-data > file-to-overwrite

Однако перенаправления не будут работать с sudo.

Если вы хотите sudo и сохранить права назначения, используйте это:

< file-with-new-data sudo tee file-to-overwrite > /dev/null

Это эквивалентно более подробному:

cat file-with-new-data | sudo tee file-to-overwrite > /dev/null
3
ответ дан 3 January 2021 в 08:41

Теги

Похожие вопросы