Вы могли работать
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
Большая проблема здесь - то, как такое условие случилось.
Эта машина предлагает какие-либо сетевые услуги? Если так, кто-то, возможно, ворвался в него и принял его. В этом случае необходимо, вероятно, создать резервную копию данных, сделать чистое переустанавливает и контролирует что-либо, что возвращается на них.
Если это - больше персональной машины, мог бы там быть хорошо осведомленный шутник, у которого был доступ к нему недавно?
Править: Ваш комментарий к другому ответу предполагает, что это - сервер. Я настоятельно рекомендовал бы взятие его офлайн как можно скорее и обработку изображений его дисков в судебных целях. Если Вы не можете определить мягкую причину для этого в быстром порядке, Вам, вероятно, взломали Ваш сервер.
Переключатель, в котором Вы нуждаетесь, --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
Использовать tar
с чем-то как:
mkdir b; tar cpf - myProject/ | tar xpf - -C b/
(Не протестированный. Дайте ему пробный прогон сначала или попробуйте в сценарии макета.)
cp -P a/myProject/.project b
Посмотрите man cp
для получения дополнительной информации.
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
Я использовал --родителей
с командой cp
и работал со мной безупречно. для более подробной информации всегда используйте руководство.
Спасибо.
Я использую cpio в сочетании с find. Объяснение здесь.
Пример для варианта использования:
find /a/myProject/.project/ -type f | cpio -p -dumv /b/.
Эта команда находит все файлы в /a/myProject/.project/
и копирует, сохраняя путь, все файлы, содержащиеся внутри.
В дополнение к - parent
также необходимо добавить параметр -r
, чтобы не пропустить копию самого внутреннего каталога
$ cp --parents test/1/.moo test2/
cp: omitting directory ‘test/1/.moo’
Так что мне подходит команда
$ cp --parents -r test/1/.moo test2/
Пожалуйста, имейте в виду, что в cp --parents
появилась ошибка. Когда я использовал
--родители
вместе с --preserve=all
, атрибутами даты и времени SOME.
каталоги назначения не сохранились.
Следующая ссылка, кажется, подтверждает, что это ошибка: ошибка#8767: cp: --preserve=all не работает для родителей, когда --parent is used.
Так что, похоже, вы не можете полагаться на сохранение атрибутов при использовании
--родители
вместе с такими, как --preserve=all
или -p
.