Как удалить оригинальный администратор и его файлы? [dубликат]

на http://www.skype.com/en/download-skype/skype-for-computer/ выберите «Динамический» в качестве вашего дистрибутива, это даст вам файл, похожий на «skype-4.2.0.13.tar .bz2" . Используйте следующие команды для извлечения и запуска skype:

tar -xvf skype-4.2.0.13.tar.bz2
mv skype-4.2.0.13 skype
./skype/skype &
11
задан 31 May 2012 в 16:45

6 ответов

Вам придется вручную находить файлы, которые, вероятно, были бы выполнены deluser.

Обратите внимание, что --remove-all-files не совпадает с rm -r /home/user. Последний удаляет только homedir (который может включать файлы, не принадлежащие этому пользователю, хотя и не обычные), первый удаляет все файлы, принадлежащие этому пользователю из системы. По крайней мере, если manpage заслуживает доверия.

GNU find имеет -user тест, поэтому вы можете find / -user xxx найти все файлы, принадлежащие пользователю xxx. xxx будет именем пользователя и может (и в этом случае not должен, поскольку пользователь больше не существует), является числовым идентификатором пользователя. find также имеет параметр -delete, поэтому

find / -user xxx -delete

Должен сделать это, хотя я не тестировал команду со всеми параметрами одновременно.

EDIT: Цифровой идентификатор: причина, по которой я сказал, что вы должны использовать числовой идентификатор, заключается в том, что, поскольку вы уже удалили пользователя, его запись в /etc/passwd была удалена (у нее были, наряду с другими элементами, идентификатор пользователя, а также его имя пользователя).

Итак, если вы не удалили его homedir, одним из самых простых способов является просто запрос идентификатора владельца этого homedir:

stat -c %u /home/user/

(stat - это инструмент для чтения данных файловой системы. -c %u сообщает stat, как писать свой вывод, здесь я прошу просто вывести идентификатор пользователя)

Если вам нравится -liners, вы можете даже объединить обе команды:

find / -user $(stat -c %u /home/user/) -delete

(Конечно, вы можете сначала запустить его, не имея -delete, чтобы убедиться, что вы ничего не хотите сохранить, и поймать любую ошибку вы написали остальную часть команды. Ошибки при выполнении операций рекурсивного удаления на / не для слабонервных.)

17
ответ дан 18 July 2018 в 03:31

Вам придется вручную находить файлы, которые, вероятно, были бы выполнены deluser.

Обратите внимание, что --remove-all-files не совпадает с rm -r /home/user. Последний удаляет только homedir (который может включать файлы, не принадлежащие этому пользователю, хотя и не обычные), первый удаляет все файлы, принадлежащие этому пользователю из системы. По крайней мере, если manpage заслуживает доверия.

GNU find имеет -user тест, поэтому вы можете find / -user xxx найти все файлы, принадлежащие пользователю xxx. xxx будет именем пользователя и может (и в этом случае not должен, поскольку пользователь больше не существует), является числовым идентификатором пользователя. find также имеет параметр -delete, поэтому

find / -user xxx -delete

Должен сделать это, хотя я не тестировал команду со всеми параметрами одновременно.

EDIT: Цифровой идентификатор: причина, по которой я сказал, что вы должны использовать числовой идентификатор, заключается в том, что, поскольку вы уже удалили пользователя, его запись в /etc/passwd была удалена (у нее были, наряду с другими элементами, идентификатор пользователя, а также его имя пользователя).

Итак, если вы не удалили его homedir, одним из самых простых способов является просто запрос идентификатора владельца этого homedir:

stat -c %u /home/user/

(stat - это инструмент для чтения данных файловой системы. -c %u сообщает stat, как писать свой вывод, здесь я прошу просто вывести идентификатор пользователя)

Если вам нравится -liners, вы можете даже объединить обе команды:

find / -user $(stat -c %u /home/user/) -delete

(Конечно, вы можете сначала запустить его, не имея -delete, чтобы убедиться, что вы ничего не хотите сохранить, и поймать любую ошибку вы написали остальную часть команды. Ошибки при выполнении операций рекурсивного удаления на / не для слабонервных.)

17
ответ дан 24 July 2018 в 17:51

Еще один вариант заключается в том, чтобы повторно добавить пользователя с adduser, указав старый UID, а затем снова запустить deluser, на этот раз с флагом --remove-all-files.

Предположим, что для Например, пользователь имел имя пользователя alice и UID 1001:

sudo adduser --uid 1001 alice sudo deluser --remove-all-files alice
5
ответ дан 18 July 2018 в 03:31

В gnu find есть опции -nouser и -nogroup, посмотрите в man find. С помощью этих параметров вы можете найти все файлы в вашей файловой системе (-ах), которые не имеют соответствующего пользователя в / etc / passwd. Если вы не создали нового пользователя со старыми uids удаленных пользователей, это возможность найти эти потерянные файлы.

Однако вы можете найти больше файлов - не только тех, кто принадлежал вашему удаленному один.

3
ответ дан 18 July 2018 в 03:31

Еще один вариант заключается в том, чтобы повторно добавить пользователя с adduser, указав старый UID, а затем снова запустить deluser, на этот раз с флагом --remove-all-files.

Предположим, что для Например, пользователь имел имя пользователя alice и UID 1001:

sudo adduser --uid 1001 alice sudo deluser --remove-all-files alice
5
ответ дан 24 July 2018 в 17:51

В gnu find есть опции -nouser и -nogroup, посмотрите в man find. С помощью этих параметров вы можете найти все файлы в вашей файловой системе (-ах), которые не имеют соответствующего пользователя в / etc / passwd. Если вы не создали нового пользователя со старыми uids удаленных пользователей, это возможность найти эти потерянные файлы.

Однако вы можете найти больше файлов - не только тех, кто принадлежал вашему удаленному один.

3
ответ дан 24 July 2018 в 17:51
  • 1
    Я считаю, что у вас есть лучший ответ! ... & quot; $ find / \ (-nouser -o -nogroup \) -print0 | xargs -0 rm -rf " Команда находит все файлы, у которых нет пользователя или группы, и автоматически удаляет их. – DanglingPointer 12 June 2017 в 17:08

Другие вопросы по тегам:

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