копировать файл от пользователя к другому в linux

Я пытаюсь скопировать файл из моего домашнего каталога в другой каталог пользователя. У меня есть sudo доступ для другого пользователя без пароля. Я попытался сделать что-то вроде:

sudo secondUser cp /home/firstUser/file /home/secondUser 

Есть ли способ сделать это? также у меня нет доступа root, и я не знаю пароль второго пользователя.

  • Может sudo заменить su?
  • sudo после длительного вызова сна без повторного запроса пароля sudo
  • Песочница учетная запись и предотвратить ее от любых изменений системы
  • Как изменить права на файлы / каталоги на установленном каталоге nfs, поэтому я обращаюсь к файлам как пользователь?
  • Что такое хороший баланс между надежным паролем sudo и длительной задержкой
  • Становление корня изнутри Vim
  • Конкретная последовательность команд с правами доступа sudo и файлов
  • Принуждение sudo для запроса пароля
  • 5 Solutions collect form web for “копировать файл от пользователя к другому в linux”

    EDIT: есть способ сделать это быстро и легко без дополнительной настройки.

     cat ~firstUser/file | sudo -u secondUser tee ~secondUser/file >/dev/null 

    Это точно передаст содержимое файла. Если вы заботитесь о том, чтобы разрешения на файл и / или временные метки совпадали с оригиналом, вам нужно будет исправить их отдельно, используя chmod и touch .


    ОРИГИНАЛЬНЫЙ ОТВЕТ:

    Проблема здесь в том, что:

    • secondUser не имеют доступа к вашему домашнему каталогу.
    • У вас нет доступа к домашнему каталогу secondUser .

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

    Учитывая, что вы сказали, что у вас нет доступа root , очевидным ответом является копирование файла через промежуточное общедоступное для чтения местоположение, такое как /tmp и изменение разрешений файла на читаемый мир. Если данные в файле чувствительны, вы, возможно, не захотите этого делать, потому что любой, кто на сервере, сможет прочитать файл во время его транзита. Если это не конфиденциальные данные, просто выполните:

     cp file /tmp/ chmod a+r /tmp/file sudo -u secondUser cp /tmp/file ~secondUser rm /tmp/file 

    Лучшим вариантом, если вы можете его организовать, является создание группы, которая содержит только вас и secondUser , и chgrp копия файла в /tmp принадлежащая этой группе. Таким образом, вам не нужно делать файл мир доступным, но только читаемым группой (с chmod g+r /tmp/file ). Тем не менее, groupadd сам требует доступа root, так что это вряд ли будет легко организовать. В зависимости от обстоятельств (если вы часто пытаетесь поделиться / сотрудничать с secondUser это может быть применимо), вы можете попросить своего администратора настроить эту группу для будущего использования.

    Проблема с:

     sudo -u secondUser cp /home/firstUser/file /home/secondUser 

    заключается в том, что как только вы станете secondUser , у вас нет доступа к /home/firstUser/file .

    Решение заключается в том, что вам нужно открыть файл для secondUser как firstUser а secondUser наследует этот файловый дескриптор.

    В качестве меры безопасности sudo закроет все дескрипторы файлов, кроме 0 , 1 и 2 , однако это все, что вам нужно в этом случае (вы можете явно разрешить наследование для большего количества filedescriptors):

     sudo -u secondUser < /home/firstUser/file sh -c 'cat > /home/secondUser' 

    Для более общего решения с возможным сохранением метаданных вы можете поместить вывод чего-то типа tar или cpio в stdin процесса sudo :

      tar c file1 file2 file3 | sudo -u secondUser tar x -C ~secondUser 

    Ты можешь сделать

     su secondUser 

    а затем делать вещи в качестве второго пользователя.

    Скопируйте файл в / tmp и измените разрешения на 777. su второму пользователю. Скопируйте файл из / tmp.
    sudo secondUser команда sudo secondUser .

    Флаг -u для sudo позволит вам указать учетную запись пользователя, под которой должна выполняться команда, но вам потребуется знать пароль другого пользователя.

     sudo -u secondUser cp file /home/secondUser/file 

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

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

    Interesting Posts

    Как удалить пустые строки, начиная с строки 5

    Сделать Compose не компоновкой после определенных нажатий клавиш

    Как преобразовать prc в pdf в Ubuntu cli?

    iptables на выходном узле tor

    Как изменить тему с помощью zsh

    Есть ли способ узнать, какие файлы в файле / etc были изменены?

    Избегайте запуска нескольких программ

    Почему использование / время использования ЦП не отображается в информации процесса?

    Есть ли способ найти, какое правило iptables отвечает за удаление пакета?

    Перезагрузка при сбое оборудования без физического доступа к машине?

    Отображение истории файла (список пользователей, которые изменили файл)

    Ошибка ошибки команды воспроизведения

    Как я могу определить, включен ли no_root_squash из клиента NFS без установки общего ресурса?

    Nginx не показывает страницу html по умолчанию

    Что такое стандартная команда для печати даты в формате RFC-3339?

    Linux и Unix - лучшая ОС в мире.