set user-id
Ryan Thompson
ryan at sasknow.com
Mon Jul 21 21:31:45 PDT 2003
Gerald S. Stoller wrote to freebsd-questions at freebsd.org:
> FreeBSD 4.3-RELEASE FreeBSD 4.3-RELEASE #0: Sat Apr 21 10:54:49 GMT
> 2001 jkh at narf.osd.bsdi.com:/usr/src/sys/compile/GENERIC i386
>
> As root, I made a text file (named t ) that did
> something like
> echo $USER | tee xx
Please give complete examples. As posted, your example wouldn't run
without invoking sh(1) first. I'm assuming it was something like:
#!/bin/sh
echo $USER | tee xx
> and then had it set user-id (I did 'chmod 4755 t'). As a plain
> user, I made a directory that only root can write my current
> directory and then invoked t (by giving a path-name to it). It
> reported that the USER was the plain user and couldn't write into
> the directory. It appears that the set user-id didn't work, but I
> also checked t with ls -l and the permissions were rwsr-xr-x ,
> exactly like that of passwd and xterm (except maybe for the write
> permission of the owner).
> How do I get set user-id to work?
Your permissions are fine, but you're hitting a more subtle problem:
S*id bits don't work for interpreted scripts (denoted by the shebang,
#!), by design. If you'd compiled the equivalent example to a binary,
I'd expect it to work as you intended.
- Ryan
--
Ryan Thompson <ryan at sasknow.com>
SaskNow Technologies - http://www.sasknow.com
901-1st Avenue North - Saskatoon, SK - S7K 1Y4
Tel: 306-664-3600 Fax: 306-244-7037 Saskatoon
Toll-Free: 877-727-5669 (877-SASKNOW) North America
More information about the freebsd-questions
mailing list