Переименование текущего каталога от оболочки - возможный?

Это похоже на Ваш touch двоичный файл является корнем setuid.

Проверьте это использование:

$ ls -l `which touch`
-rwxr-xr-x 1 root root 64192 Jan  8  2012 /bin/touch
#  ^ 

Если отмеченный столбец имеет s вместо x файл является действительно setuid корнем. Можно зафиксировать это путем выполнения chmod u-s `which touch` как корень (например, через sudo).

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

24
04.03.2015, 02:20
3 ответа

Да, но вы должны обращаться к каталогу по имени, а не с помощью . примечание. Можно использовать относительный путь, он просто должен заканчиваться чем-то кроме . или ... :

/tmp/test$ mv ../test ../test2
/tmp/test$ pwd
/tmp/test
/tmp/test$ pwd -P
/tmp/test2

Можно использовать абсолютный путь:

/tmp/test$ cd -P .
/tmp/test2$ mv "$PWD" "${PWD%/*}/test3"
/tmp/test2$ 

Аналогично, rmdir . никогда не сработает, но rmdir "$PWD" сработает.

41
27.01.2020, 19:41

И это зависит от того, как вы определяете «изменение текущего каталога».

/tmp/test$ (cd .. && mv test test2)
/tmp/test$ pwd
/tmp/test
/tmp/test$ pwd -P
/tmp/test2

порождает подпункл и изменяет текущий каталог в подставке, Но покидает вашу основную оболочку, где это было.

1
27.01.2020, 19:41

То же, что и в ответе @Gilles, но для краткости используется фигурная скобка :

mv../{test,test2}
3
27.01.2020, 19:41

Теги

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