On Wednesday, July 1, 2015 at 3:19:27 PM UTC-6, William Hermans wrote: > > debian@beaglebone:~$ *cat /sys/class/gpio/export* > cat: /sys/class/gpio/export: *Permission denied* > debian@beaglebone:~$ sudo *cat /sys/class/gpio/export* > cat: /sys/class/gpio/export: *Permission denied* > debian@beaglebone:~$ *sudo su* > root@beaglebone:/home/debian# *cat /sys/class/gpio/export* > cat: /sys/class/gpio/export: *Permission denied* > root@beaglebone:/home/debian# *ls -al /sys/class/gpio/* > total 0 > drwxr-xr-x 2 root root 0 Dec 31 1999 . > drwxr-xr-x 59 root root 0 Dec 31 1999 .. > *--w------- *1 root root 4096 Dec 31 1999 export > lrwxrwxrwx 1 root root 0 Dec 31 1999 gpiochip0 -> > ../../devices/virtual/gpio/gpiochip0 > lrwxrwxrwx 1 root root 0 Dec 31 1999 gpiochip32 -> > ../../devices/virtual/gpio/gpiochip32 > lrwxrwxrwx 1 root root 0 Dec 31 1999 gpiochip64 -> > ../../devices/virtual/gpio/gpiochip64 > lrwxrwxrwx 1 root root 0 Dec 31 1999 gpiochip96 -> > ../../devices/virtual/gpio/gpiochip96 > --w------- 1 root root 4096 Dec 31 1999 unexport > root@beaglebone:/home/debian# *whoami* > root > > read this post . . > > > http://unix.stackexchange.com/questions/118716/unable-to-write-to-a-gpio-pin-despite-file-permissions-on-sys-class-gpio-gpio18 > > 3rd post or second answer should fix you up. However do note that what > you're trying to do is "wrong". Meaning: it is insecure. You ( and I too ) > need to read up on process forking. IN short, and perhaps somewhat > incorrect( as I'm not 100% up to speed either ) is that you fork a process, > running privileged commands, and when that command is done, the privileges > are done too . . . > > Anyway, probably safer to add your regular user to a group that has > limited access to that file. >
The spawned process inherits the real UID (and effective and saved UIDs) from the parent. But here he needs root to write to the GPIO file. This is really only a security issue if there are ever other users on the box. Important security practices for a multiuser machine, yes, but for a BBB acting as (say) a media server with only a wired network connection, not really that important. > > > On Wed, Jul 1, 2015 at 8:02 AM, Brendan Merna <bmer...@gmail.com > <javascript:>> wrote: > >> >> I'm trying to manipulate my GPIOs using C code and running into >> "Permission Denied" when running my code and opening the file >> /sys/class/gpio/export. I'm using nano editor, compiling on the Beaglebone >> with gcc, and I'm under root user. >> >> I would like to do this, so I can set directions and values for the GPIOs >> with my code. I've heard this might be a problem with user and kernel space >> conflicting. I know there are library calls in python and other languages >> to do this that work. Does anyone know what this problem might be and our >> their alternate calls I can do in C? >> >> I tried to just include the necessary parts of the code. >> Code: >> #include<fcntl.h> >> static const char *GPIO_PATH = "/sys/class/gpio/export"; >> int main(){ >> int file; >> if ((file = open(GPIO_PATH, O_RDWR))<0){ >> perror("GPIO: Can't open the device."); >> return -1; >> } >> return 0; >> } >> >> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to the Google Groups >> "BeagleBoard" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to beagleboard...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.