Примите нахожусь в каталоге,/home/userA
Существует среда variabe $XMLFILES, который указывает на/u/xml/xmlfiles. Переменная среды $XMLFILES находится в среде/профиле Усера
Я вхожу в систему как Усера затем 'su' в userB и меня CD в/home/userB/testdata.
Я не понял, что был userB, таким образом, я дал команду
rm $XMLFILES/*
И внезапно я вижу это
bash-3.00$ rm $XMLFILES/*
rm: /bin not removed: Permission denied
rm: /boot is a directory
rm: /cdrom is a directory
rm: /dev is a directory
rm: /devices is a directory
rm: /etc is a directory
rm: /export is a directory
rm: /home is a directory
rm: /kernel is a directory
rm: /lib is a directory
rm: /lost+found is a directory
rm: /mnt is a directory
rm: /net is a directory
rm: /noffprotect: override protection 644 (yes/no)? ^C
Я нажал [CTRL+C], как только я видел, что та защита переопределения обменивалась сообщениями. Я думаю, так как $XMLFILES был пустым, потому что я был зарегистрирован как userB команда, которая была дана, был на самом деле
rm *
Теперь то, что я не понимаю, - то, почему это пробовало tro, удаляют все из корневой папки? так как я был в/home/userB, он должен был просто попытаться удалить все на 'верхнем уровне '/home/userB'? команда комнаты даже не была рекурсивным, удаляют.
Учитывая, что пользователь, я был зарегистрирован как, не был пользователем root, это нанесет ущерб?
Нет, с тех пор $XMLFILES
было пусто, это пыталось удалить /*
. Все, что может сделать, удаляют файлы из корневого каталога, который обычный пользователь, как предполагается, не может создать во-первых.
$XMLFILES был бы пустой строкой поэтому, что Вы на самом деле выпустите, был бы
комната ""/*
который был бы оценен вниз к
комната/*
Поэтому необходимо быть очень осторожны относительно использования переменных $ (т.е. проверить их существование сначала) в параметрах командной строки.