[Coco] setuid? wasRe: Telnet to your CoCo.. and invite 6 of your friends

Aaron Wolfe aawolfe at gmail.com
Sun Nov 29 08:08:36 EST 2009


The OS9 F$SUser works as described in the docs.  It will let you
become any user you'd like.  I wrote a tiny (41 bytes in module form)
'su' command to verify, the relevant code is:

            ldy		#0				;lets be user 0
            os9		F$SUser

            ldd		#$1101
            leax	        shell,pcr
            os9		F$Chain			;chain to shell

An example of use:

NitrOS-9/6309 Level 2 V3.2.9 on the Tandy Color Computer 3  2009/11/29 08:02:27


User name?: aaron
Password: test

Process #04 logged on   2009/11/29 08:02:33
Welcome!

Welcome to NitrOS-9 Level 2!


Shell+ v2.2a 09/11/29 08:02:33

{T1|04}/DD:procs

         User                     Mem Stack
Id  PId Number  Pty Age Sts Signl Siz  Ptr   Primary Module
--- --- ------- --- --- --- ----- --- ----- ----------------
  4   3     1   128 128 $80    0   31 $5DDE Shell
  5   4     1   128 128 $80    0   31 $1EF1 Procs

{T1|04}/DD:su

Shell+ v2.2a 09/11/29 08:02:45

{T1|05}/DD:procs

         User                     Mem Stack
Id  PId Number  Pty Age Sts Signl Siz  Ptr   Primary Module
--- --- ------- --- --- --- ----- --- ----- ----------------
  2   1     0   128 131 $80    0   31 $64DE Shell
  3   2     0   128 131 $80    0   31 $61DE Tsmon
  5   4     0   128 128 $80    0   31 $5BDE Shell
  6   5     0   128 128 $80    0   31 $1EF1 Procs

{T1|05}/DD:




On Sun, Nov 29, 2009 at 3:44 AM, Willard Goosey <goosey at virgo.sdc.org> wrote:
> On Sat, Nov 28, 2009 at 08:37:21PM -0800, Wayne Campbell wrote:
>
>>OS-9 allows you to set access permissions based on the attributes of
>>the file/folder/program. In order for a user to use a program, they
>>have to have permission to access the directory, and the file and/or
>>program to use it.
>>
> True.  The filesystem's security seems to work fine.
>
>> With this in mind, one can establish a userlevel that makes it
>> possible to prevent users with lower access levels from using or
>> accessing things requiring higher access levels. Is this not the
>> case with OS-9?
>
> Actually, that's the part we're trying to figure out... ;-)
>
> Just like in UNIX there's a setuid() system call.  If it makes even a
> reasonable attempt to be secure (only user 0 is allowed to setuid)
> then we're pretty much OK.
>
> However, Tandy's documentation says it doesn't.  It claims any user
> can setuid to any other user-number.
>
> So, I tried to test this with a C version of su(1) from Rainbow.  The
> binary was corrupt, so I had to recompile it... And it worked
> properly.  User 0 can setuid to any user number, but other users aren't
> allowed to.
>
> Just to make this further ambiguous, the Microware C manual says that
> setuid() only works for user 0.  The manual for Kreider C lib agrees,
> but provides asetuid(), which succeeds even if you aren't user 0!
>
> Someone's going to have to either try an assembly version of su or
> read the source.
>
> And not me (at least not tonight)!  I've got other things to hack
> tonight.  Starting with the dished. :-(
>
> Willard
> --
> Willard Goosey  goosey at sdc.org
> Socorro, New Mexico, USA
> I search my heart and find Cimmeria, land of Darkness and the Night.
>  -- R.E. Howard
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>



More information about the Coco mailing list