Как перенести файл в каталог другого пользователя?

Я использую CentOS 6, и я пытаюсь переместить файл из USER A в USER B, но я все время отказываюсь от разрешения.

Что мне нужно изменить, чтобы разрешить мне помещать файлы из одного каталога пользователя в чужие?

3 Solutions collect form web for “Как перенести файл в каталог другого пользователя?”

Вам нужны права на чтение файла от пользователя A и запись файла в местоположение пользователя B.

Существует несколько способов архивирования:

1)
Как пользователь A (предположил, что она может читать свои собственные файлы), получите разрешение WRITE для местоположения пользователя B. Это означает, что он находится в группе, которой разрешено w в целевой каталог и которому разрешен доступ ( x ) к пути каталога к месту назначения.

Пример:

cd /home/user/A/ ls -l testfile -rw------- 1 userA users 18 Dec 31 16:31 testfile 

Обратите внимание на r. Пользователь A разрешает читать собственный файл

 cp testfile /home/userB/testdir 

Пользователь A должен будет перейти к папкам / home, / home / userB и / home / userB / testdir. Все они должны быть «х» для нее. Она хочет писать в папку «testdir», и поэтому ей также нужна «w» в этой папке.

Это «w» может быть в пользователе, группе или другой части. Но если вы установите его в «другом», тогда каждый пользователь может написать ему. Таким образом, вы обычно делаете общие файлы или общие папки частью группы. (например, в / etc / group создайте группу «sales» и добавьте к ней обоих пользователей).


2)
Как пользователь B: (предполагается, что он может писать в своей собственной папке).
Получите разрешение на чтение файла в папке userA и справа, чтобы пройти туда. (так же, как в 1).

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


3)
Как пользователь с uid 0 (обычно root, toor, admin):

mv / home / userA / testfile / home / userB /

Обратите внимание, что файл по-прежнему принадлежит пользователю A, и этот пользователь B может не иметь прав на работу с файлом. Вы можете исправить это с помощью chown .


4)
Без тяжелых пушек, как это часто делают два пользователя:

 As UserA: cp testfile /tmp/ As userB: cp /tmp/testfile ~ As userA: rm /tmp/testfile 

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


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

Не спрашивают, но такое решение часто бывает практичным (показано с музыкой, но это может быть и отчеты о продажах).

vim / etc / group и добавьте shared_music:*:3141:userA,UserB,UserC строку: shared_music:*:3141:userA,UserB,UserC . Это создаст группу с именем shared_music, дайте ей число и выберите, какие пользователи будут принадлежать этой группе.

Затем создайте папку, принадлежащую этой группе.

 cd /usr/local/ md our_ultimate_shared_music_collection chgrp shared_music our_ultimate_shared_music_collection chmod g+rwx our_ultimate_shared_music_collection chmod g+S our_ultimate_shared_music_collection 

Сделайте папку в правильном месте. Установите группу, а затем разрешите всем людям в этой группе читать, записывать и записывать в эту папку. Последняя команда (make group setuid) означает, что вновь созданные подфайлы наследуют ту же группу, что и каталог, а вновь созданные подкаталоги наследуют бит set-group-ID родительского каталога. Это мешает пользователю A писать файлы в этот каталог, который USERB (или любой, кроме A) не может удалить или переименовать.

Для доступа к этому каталогу необходимы разрешения. Как писать, так и выполнять в рассматриваемой директории и записывать в любые файлы, которые вы переписываете.

Самый простой способ – sudo mv /dir1/file /dir2/file но сначала вы должны сначала прочитать « Быстрое и грязное руководство по разрешению файлов Linux» .

Предполагая, что хотя бы у одного из пользователей есть привилегии sudo , выполните следующие действия во время входа в систему как пользователь (т. Е. С привилегиями sudo):

 sudo mv /home/userA/file_name /home/userB 

Он подскажет вам пароль соответствующего пользователя.

В противном случае войдите в систему как корень и выполните вышеописанное без «sudo» в начале.

  • Удалите несколько последовательных имен файлов, но игнорируйте часть первого
  • Почему я вижу число как владелец / группа вместо имени?
  • Переименовывать файлы, а не каталоги
  • Проверьте, открыт ли файл другим процессом
  • Ярлык клавиатуры для переключения файлов в одном экземпляре Emacs?
  • Итерирование по папкам в цифровом порядке
  • Как работает файловая структура Linux?
  • Создание виртуального файла, содержимое которого определяется программным путем
  • Получение размера только для файлов du
  • Может ли файл устройства в Linux указывать на несколько файлов?
  • Найти изображения с одинаковой временной отметкой exif
  • Linux и Unix - лучшая ОС в мире.