Как скопировать файл, сохраняющий путь к каталогу в Linux?

Вы могли работать

sudo -s
id

И отправьте вывод? Я хочу видеть, делает ли это на самом деле Вас пользователем, Вы думаете.

Кроме того, попробуйте

sudo cat /etc/sudoers

Вывод идентификатора здесь довольно поучителен. Когда Вы работали sudo -s, Вам дали UID 1, в то время как единственным UID, который ядро распознает как имеющий полномочия пользователя root, является UID 0.

Попытайтесь работать

getent passwd | grep ':0:'

и посмотрите, имеют ли какие-либо записи тот 0 в своем первом числовом поле, UID. Независимо от того, что учетная запись, которая является, является настоящим суперпользователем в системе, в то время как root фальшивка. После того как Вы знаете имя, можно попробовать

sudo -s -u username

получить оболочку как того пользователя.

Необходимо также отправить вывод

getent passwd root

Большая проблема здесь - то, как такое условие случилось.

Эта машина предлагает какие-либо сетевые услуги? Если так, кто-то, возможно, ворвался в него и принял его. В этом случае необходимо, вероятно, создать резервную копию данных, сделать чистое переустанавливает и контролирует что-либо, что возвращается на них.

Если это - больше персональной машины, мог бы там быть хорошо осведомленный шутник, у которого был доступ к нему недавно?

Править: Ваш комментарий к другому ответу предполагает, что это - сервер. Я настоятельно рекомендовал бы взятие его офлайн как можно скорее и обработку изображений его дисков в судебных целях. Если Вы не можете определить мягкую причину для этого в быстром порядке, Вам, вероятно, взломали Ваш сервер.

88
задан 14 September 2010 в 14:47
9 ответов

Переключатель, в котором Вы нуждаетесь, --parents, например:

jim@prometheus:~$ cp --parents test/1/.moo test2/
jim@prometheus:~$ ls -la test2/
total 42
drwxr-xr-x   3 jim jim    72 2010-09-14 09:32 .
drwxr-xr-x 356 jim jim 43136 2010-09-14 09:32 ..
drwxr-xr-x   3 jim jim    72 2010-09-14 09:32 test
jim@prometheus:~$ ls -la test2/test/1/.moo
-rw-r--r-- 1 jim jim 0 2010-09-14 09:32 test2/test/1/.moo
155
ответ дан 28 November 2019 в 19:23

Использовать tar с чем-то как:

mkdir b; tar cpf - myProject/ | tar xpf - -C b/

(Не протестированный. Дайте ему пробный прогон сначала или попробуйте в сценарии макета.)

7
ответ дан 28 November 2019 в 19:23
cp -P a/myProject/.project b

Посмотрите man cp для получения дополнительной информации.

3
ответ дан 28 November 2019 в 19:23
  • 1
    Это, кажется, не помогает. Это только копирует '.project' сам в b, но это не копирует 'myProject'. –  dhblah 14 September 2010 в 11:11

First use mkdir -p to create the destination folder with recursive parent path creation. Then copy the contents to the destination folder:

mkdir -p b/myProject/.project
cp -r a/myProject/.project/file b/myProject/.project
4
ответ дан 28 November 2019 в 19:23

Я использовал --родителей с командой cp и работал со мной безупречно. для более подробной информации всегда используйте руководство. Спасибо.

-3
ответ дан 28 November 2019 в 19:23

Я использую cpio в сочетании с find. Объяснение здесь.

Пример для варианта использования:

find /a/myProject/.project/ -type f | cpio -p -dumv /b/.

Эта команда находит все файлы в /a/myProject/.project/ и копирует, сохраняя путь, все файлы, содержащиеся внутри.

.
3
ответ дан 28 November 2019 в 19:23

Также можно использовать rsync -R, который работает на OSX, где cp --родители недоступны.

https://stackoverflow. com/a/13855290/598940

19
ответ дан 28 November 2019 в 19:23

В дополнение к - parent также необходимо добавить параметр -r , чтобы не пропустить копию самого внутреннего каталога

$ cp --parents test/1/.moo test2/
cp: omitting directory ‘test/1/.moo’

Так что мне подходит команда

$ cp --parents -r test/1/.moo test2/
1
ответ дан 28 November 2019 в 19:23

Пожалуйста, имейте в виду, что в cp --parents появилась ошибка. Когда я использовал --родители вместе с --preserve=all, атрибутами даты и времени SOME. каталоги назначения не сохранились.

Следующая ссылка, кажется, подтверждает, что это ошибка: ошибка#8767: cp: --preserve=all не работает для родителей, когда --parent is used.

Так что, похоже, вы не можете полагаться на сохранение атрибутов при использовании --родители вместе с такими, как --preserve=all или -p.

.
0
ответ дан 28 November 2019 в 19:23

Теги

Похожие вопросы