Date: Mon, 21 Jul 2003 22:31:44 -0600 (CST) From: Ryan Thompson <ryan@sasknow.com> To: "Gerald S. Stoller" <gs_stoller@hotmail.com> Cc: freebsd-questions@freebsd.org Subject: Re: set user-id Message-ID: <20030721222719.Q31748-100000@ren.sasknow.com> In-Reply-To: <Sea1-F31zp2IZuSTOk00001963b@hotmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Gerald S. Stoller wrote to freebsd-questions@freebsd.org: > FreeBSD 4.3-RELEASE FreeBSD 4.3-RELEASE #0: Sat Apr 21 10:54:49 GMT > 2001 jkh@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@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030721222719.Q31748-100000>