Well, that wasn't too hard. After putting my program in a directory in the path, all seems well. OTOH, it doesn't work when it's in a directory that only belongs to my personal path. Does it have to be in the root's path somewhere?
Greetings!
As I'm using Kanotix (which doesn't seem to have such an extensive forum) and it's based on Knoppix, I figure I'll post this question here.
For a program which will use the parallel port for digital I/O, I'm trying to get access to the port WITHOUT being root (no sudo, either). For this, I've compiled a simple program in C, but it keeps complaining it has no permissions to access the port (/dev/parport0). Port permissions are as follows:
The program has been compiled using gcc -O1 -o test test.c, after which I've issued (as root):Code:crw-rw-rw- 1 root root 99, 0 Feb 9 19:40 /dev/parport0
I figured it should work now, but it doesn't. Keeps complaining about permissions.Code:chown root:users test chmod u+s test
Furthermore I've tried creating a file foo.txt and done chmod 600 foo.txt. Then made an executable script bar.sh, which just cat's foo.txt. Then:
Executing bar.sh also gives permission errors. So in other words: what gives? I'm stumped, but I've probably misunderstood how suid root works. Any help would be greatly appreciated.Code:chown root:users bar.sh chmod u+s bar.sh
Thanks in advance,
Marc.
Well, that wasn't too hard. After putting my program in a directory in the path, all seems well. OTOH, it doesn't work when it's in a directory that only belongs to my personal path. Does it have to be in the root's path somewhere?
That's weird, man.
Originally Posted by mvandoornik
If Kanotix is similar Knoppix I guess the $PATH variable for root has a different (more restricted) set of paths to a normal user. This is partly for security.
This can be tested byfollowed by <enter> at a terminal window. Do this for root and for a normal user and see if this helps explain what has happened.Code:$PATH
I think you meant:
echo $PATH
Originally Posted by markpreston
> Executing bar.sh also gives permission errors.
The suid permission bit is ignored for scripts for security reasons. Suid for "true" executables only give the *effective* UID,
not the *real* UID. This can make a difference, e.g. as in cpio.
Hi Dave,
$PATH alone works as well for this.
mark@z:~$ $PATH
bash: /home/mark/.dist/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/games:.: No such file or directory
mark@z:~$
mark@z:~$ su
Password:
root@z:/home/mark# $PATH
bash: /sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/games: No such file or directory
root@z:/home/mark#
I think you meant:
echo $PATH
--Yes, but it's not proper *nix form to try and _execute_ your PATH variable. Somebody could attack you that way.
Originally Posted by markpreston
Thanks Dave,Originally Posted by Dave_Bechtel
At least I now know what you were concerned about.
Regards,
Mark

Lot of 2 32GB (64GB total) SKhynx 2Rx4 PC4-2400T-AB1-11 HMA84GR7MFR4N-UH MEMORY
$299.99
Samsung 16GB DDR4 2400MHz PC4-2400T 19200 ECC Server Memory RAM M393A2G40EB1
$78.00
MICRON MTA36ASF4G72PZ-2G6E1 | 32GB PC4-2666V RDIMM Server RAM
$149.95
SMART(Micron)SafeStor 32GB(1X32GB) 1RX4 NN4-3200AA(DDR4) HPE Server Memory
$159.98
Samsung 64GB 4DRx4 PC4-2666V LD2 DDR4 ECC Server RAM Memory M386A8K40BM2-CTD7Y
$299.00
USB 3.0 Flash Drive 32GB 64GB 128GB Memory Stick Thumb Stick Lot Pack
$826.09
Kingston 32GB 64GB 128GB 256GB USB 3.0 Flash Drive Thumb Memory Stick Pen lot
$285.90
Samsung 32GB 2Rx4 PC4 2400T -RA1-11-MC0 M393A4K0BB1-CRC4Q M (SET OF 4)
$670.99
x4 Intel 128GB NMB1XXD128GPS Optane Memory 200 Series PMEM Module 3200 DDR4 RAM
$329.99
1/ 10/ 100pcs USB 2.0 2GB, 4GB ,8GB ,16GB ,32GB ,64GB 128GB USB Flash Drives Lot
$202.50