So here is the tutorial from Forum XDA Developers you can use to root Motorola Defy, it's requiring several steps thus make sure you follow each of them carefully to get the job done accordingly, so let's begin!
1. Put your phone in Debug Mode; head to > Settings > Applications > Development and check USB debugging box.
2. Extract the files from the zip (download link below this article), and then connect the phone via USB, and copy them to the phone via ADB like this:
3. Now we enter the phone's internal shell, also using ADB:
adb push Superuser.apk /sdcard/Superuser.apk adb push su /sdcard/su adb push busybox /sdcard/busybox adb push exploit.bin /data/local/tmp/exploit.bin
4. Then we take advantage of the "fake" root exploit:
5. Now after that last command you should be back to your normal console, not the phone one, so we need to connect to it again, and doing so we should now see that we have root permissions since the "#" symbol is displayed instead of "$".
cd /data/local/tmp chmod 0755 exploit.bin ./exploit.bin
6. Now we mount the /system partition as writable and copy the necessary files there, and set them with the right permissions:
7. After you restart your phone, make sure whether you have ROOT in a terminal. To do so, just type "su" command, or simply install app that requires ROOT, and seeing it the SuperUser app appears.
mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system cp /sdcard/Superuser.apk /system/app/Superuser.apk cp /sdcard/su /system/bin/su cp /sdcard/busybox /system/bin/busybox chmod 4755 /system/bin/su chmod 4755 /system/bin/busybox mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system exit
Rooting.zip > http://www.mediafire.com/?kjee8aj22j9m5zj
Contains the fake root exploit, SuperUser version 126.96.36.199 and busybox