Intereting Posts
Создание файла журнала за итерацию цикла (bash)? Каков наиболее эффективный способ проверить, установлен ли узел в настоящее время? Запуск Udev зависает при загрузке Синтаксическая ошибка: "(" неожиданно при выполнении скомпилированной c-программы Как использовать внешний аппаратный RNG во FreeBSD? Как сделать фестиваль неуклонно выражать свои собственные выражения схемы из командной строки, чтобы изменить голоса по мере необходимости? Как звуковая проблема Linux может повлиять на Windows в конфигурации с двойной загрузкой? Как установить модуль криптолопа на Kali 4.6? mptscsih: ioc0: task abort: SUCCESS (rv = 2002) вызывает 30 секунд замораживания Как настроить synaptic в Debian Stable, Не удалось получить lock / var / lib / dpkg / lock Что такое эквивалентная команда Linux для команды Windows ipconfig / registerdns? Почему домашний каталог не создается при создании нового пользователя? Где хранится файл конфигурации ibus? Хостинг Dovecot и Postfix за nginx? Запросить пароль в POSIX-совместимой оболочке?

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

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

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

Вам нужны права на чтение файла от пользователя 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» в начале.