chmod o+r /dev/sda*
довольно опасен, так как позволяет любой программе читать весь ваш диск (включая, например, хэши паролей в /etc/shadow
, если ваш корневой раздел находится на sda
)!
Есть (по крайней мере) два способа сделать это более безопасно:
disk
и запустите chmod gw /dev/sda *
, чтобы запретить доступ на запись для этой группы./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.
Команда ssh захватывает локальный стандартный ввод, а также может запускать внешние команды. Если объединить эти два факта, то это становится возможным:
ssh machine2 tee -a "~/.ssh/authorized_keys" < ~/.ssh/id_dsa.pub
Существует также команда ssh-copy-id
, предназначенная для автоматизации этого процесса. Вы можете увидеть man ssh-copy-id
для получения дополнительной информации.
Вы можете сделать что-то вроде этого:
cat ~/.ssh/id_dsa.pub | ssh machine2 'cat >> ~/.ssh/authorized_keys'
Но вам, вероятно, следует использовать вместо этого ssh-copy-id
, который является инструментом именно для этой цели:
ssh-copy-id machine2
или
ssh-copy-id id_dsa machine2