I have to get my PC to the service because sometimes the system hangs and suddendly reboots without any reason. Anyway, I will create a test user if they want to start the computer. Moreover I think about making a check of the file system before I brought and after I will get my PC back. I thought about a "#ls -alR > before.txt" out of the root directory. After I will get my PC back, I'll do the same and compare both files with the "diff" command (Maybe they have tried to install some crap). Is there a better solution for this?
You should also run
Even that might not be protection against a really determined and knowledgeable attacker. A cryptographic checksum of the whole disk would be but it would simply not match if they did as little as boot from the disk (which would update the filesystem's last mount time, write some log entries and so on).
When you retrieve the computer, make sure to boot from a live CD/USB and not from the system you get back, since if the system has been rootkitted the kernel will likely report original versions of the files and not the actual disk content (but will use the disk content to install some kind of backdoor during boot).
Of course, if they decide to read any private data on the disk, you won't know.
Why don't you just take the disk out?
(And hope they don't install a trojan firmware, for example on the motherboard (BIOS) or on the network card.)
If by "solution" you mean "having my system clean after I get it back from the service", it might be wise to consider making an image and restoring it afterwards - that way, you would be sure it's in the state you left it.
Also, you mention installing - if you make that user non-sudo, they would not be able to install anything anyway.
The method you suggested should work pretty well otherwise.