Я использовал бы другой подход и совместно использовал бы файлы через список управления доступом на каталоге.
Сначала удостоверьтесь, что списки управления доступом включены в файловой системе, где каталог находится (удостоверьтесь что соответствующая запись в /etc/fstab
содержит acl
в четвертом столбце). Также удостоверьтесь, что у Вас есть acl установленные утилиты (на Debian, установите acl
пакет). Затем дайте обоим пользователям наследуемое разрешение записи на каталоге.
setfacl -m user:other_user:rwx /path/to/directory
setfacl -d -m user:other_user:rwx /path/to/directory
Если существует больше чем два пользователя, любое повторение эта команда для каждого пользователя (ACL неявен для пользователя, который создал каталог); или помещенный пользователи в группу (поскольку Вы уже сделали), и использование -m group:group_name:rwx
в setfacl
команда.
Существует подсказка в sudo
страница справочника, которая объясняет, как сделать что-то вроде этого. Вот моя острота:
#!/usr/bin/bash
sudo sh -c "echo \"add this line to the code\" >> fileName"
Очевидно, необходимо будет сначала настроить пользователя, чтобы иметь sudo
полномочия. sh
оболочка привыкла из-за перенаправления к корневому файлу. Я также должен был выйти из кавычек, используемых для echo
команда.
su
доступно в большинстве систем Unix и должен работать:
su root -c 'echo "add this line to the code" >> fileName'
Подойдет:
ssh host "sudo su root -c 'echo "add this line to the code" >> /etc/hosts'"
Попробуйте это Эта команда доступна в Unix и Linux.
sudo sh -c "echo 'add this line to the code' >> fileName"