как записать текст в файл на другой машине

chmod o+r /dev/sda* довольно опасен, так как позволяет любой программе читать весь ваш диск (включая, например, хэши паролей в /etc/shadow, если ваш корневой раздел находится на sda)!

Есть (по крайней мере) два способа сделать это более безопасно:

  1. Добавьте всех пользователей, которым нужно читать диск, в группу disk и запустите chmod gw /dev/sda *, чтобы запретить доступ на запись для этой группы.
  2. Измените группу /dev/sda* на группу, которая содержит только пользователей, которым необходимо читать диск, например. chgrp my-benchmarkers /dev/sda* и запретите доступ на запись для этой группы с помощью chmod.

Обратите внимание, что изменения группы и разрешений на узлах устройств в /dev носят временный характер, пока соответствующее устройство не будет отключено или компьютер не будет перезагружен.

Одной из проблем может быть то, что hdparm требуется доступ на запись для большей части его функций. Вы должны проверить, работает ли все, что вы хотите, с доступом только для чтения.

РЕДАКТИРОВАТЬ: Похоже, hdparm не требует доступа для записи. Ему скорее нужна возможность CAP_SYS_RAWIO для выполнения большинства ioctl. Вы можете использовать setcap cap_sys_rawio+ep /sbin/hdparm, чтобы дать эту возможность hdparm. Обратите внимание, что это позволяет любому, который может запускать hdparm и имеет по крайней мере доступ для чтения к файлу устройства, делать практически все, что hdparm может делать на этом устройстве, в том числе --write-sector и все другие команды hdparm, описанные на странице руководства как «ОЧЕНЬ ОПАСНЫЕ», «ЧРЕЗВЫЧАЙНО ОПАСНЫЕ» или «ИСКЛЮЧИТЕЛЬНО ОПАСНЫЕ». Скрипты-оболочки могут быть лучшим решением.

Если нет, вам нужно либо предоставить доступ для записи, либо написать сценарии-оболочки, которые могут выполняться вашими пользователями от имени пользователя root с использованием правил sudo.

0
12.11.2018, 01:37
2 ответа

Команда ssh захватывает локальный стандартный ввод, а также может запускать внешние команды. Если объединить эти два факта, то это становится возможным:

ssh machine2 tee -a "~/.ssh/authorized_keys" < ~/.ssh/id_dsa.pub

Существует также команда ssh-copy-id, предназначенная для автоматизации этого процесса. Вы можете увидеть man ssh-copy-idдля получения дополнительной информации.

4
28.01.2020, 02:14

Вы можете сделать что-то вроде этого:

cat ~/.ssh/id_dsa.pub | ssh machine2 'cat >> ~/.ssh/authorized_keys'

Но вам, вероятно, следует использовать вместо этого ssh-copy-id, который является инструментом именно для этой цели:

ssh-copy-id machine2

или

ssh-copy-id id_dsa machine2
3
28.01.2020, 02:14

Теги

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