need sudo priviledges in c program
Dear all,
I need to do mount/umount operations in my c program. But my program can only be run under normal user. However, the user who run my program have sudo priviledges to do mount/umount operations. How can i apply the sudo privileges in the mount(2) system call? Please help. |
hi,
which command you are going to use to call mount command in your program. Try this system("sudo <command>") |
sudo prividleges apply recursive.. eg if user run script as sudo ./script.sh inside script it will have sudo priviledge.
|
Have your system administrator update the /etc/sudoers file to allow the user (or users) to use sudo when running the C program.
|
Thanks.
As appilu said, i use system() call instead: system("/usr/bin/sudo /bin/mount -o loop,nodev,noexec,rw loop.img /mnt/disk"); I meant to use mount(2) system call directly: mount("loop.img", "/mnt/disk", "loop", MS_NODEV | MS_NOEXEC, NULL); but it seems i was wrong. |
hi,
i think "system" is the best way to execute a shell command. |
What about allowing the user to use one of the loop devices? Hence he can mount any image he likes on a granted loop device without being root or sudo:
1. Allow the user to write to one of the loop devices: Code:
# chmod g+w /dev/loop7 Code:
# usermod -A disk reuti Code:
/dev/loop7 /home/reuti/foobar auto defaults,loop,user 0 0 Now we use a fresh login to mount an image (mounter.e2fs) as an ordinary user: Code:
$ id |
All times are GMT -5. The time now is 09:27 PM. |