It is the "best practice" to have to issue sudo to execute elevated commands.
It avoids the tendency of running a shell with root privileges and execute everything there. That will allow any command to be executed as root, but also dangerous ones. With sudo, you have to provide the sudo word, which means that that command will get more attention, it serves as a warning to yourself.
You nee to do nothing additional to get privilege separation.
Using sudo will avoid that normal users could run commands in
/usr/sbin and some other
fdisk is in
/sbin, if may be used to list partitions details, but also could be used to change such partition definitions (in essence) destroying all disk data. Clearly not a commandthat everyone should use.
A normal user will see this:
sh: 1: fdisk: not found
fdisk exist inside
If that user has been given enough privileges with sudo, he can do:
$ sudo fdisk -l
to actualy run the program (-l will only list the partitions, nothing dangerous if you try it).