[OT] Re: echo $EUID

2002-04-04 Thread David Champion

* On 2002.04.02, in <[EMAIL PROTECTED]>,
*   "Mark J. Reed" <[EMAIL PROTECTED]> wrote:
> On Tue, Apr 02, 2002 at 11:27:31PM -0500, Mark J. Reed wrote:
> > /usr/xpg4/bin/id -u
> To expand upon this:
> 
> When SunOS becamse Solaris, its base moved from BSD (Berkeley's
> UNIX-based OS) to System V (official UNIX from AT&T).  
> For compatibility with System V applications (and with the POSIX standard),
> they had to give all of the standard commands in /bin (or /usr/bin)
> the System V semantics.
> 
> However, the older behavior was in many cases superior, and those commands
> have been retained in /usr/xpg4.  I tend to prefer the XPG version of
> most commands, so I have /usr/xpg4 before /usr/bin in my PATH.

Close -- the BSD commands were retained[1] in /usr/ucb. /usr/xpg4
contains editions which are compliant with the X/Open Portability Guide,
version 4. In general, I find that where XPG4 favors one predecessor
over the other, it's SVR4. 

XPG4 was created by X/Open[2] as a multi-vendor effort to standardize
various implementations of UNIX, both SVR4- and BSD-based. But as all
the major commercial participants at the time were already focused on or
were shifting toward SVR3 or SVR4, that's where the focus of XPG lay,
too.

Sun was actually central to all this: it was their collaboration with
UNIX System Laboratories that created SVR4.0, and their technical and
business interest in their BSD roots that assured the integration of
BSD components into System V. I believe that Sun is the only vendor
with full source-code rights to SVR4 besides SCO, who still owned UNIX
last time I checked. There are other licensees, but Sun has a lifetime
membership, so to speak, and can legally redistribute SVR4.0 source
code.

All IIRC, of course. I try to follow the sordid history, but I'm not
sure that I really rate even as high as amateur.

Sven, I deleted your Cc: for you.

--
[1] for compatibility purposes, though, not because of some perceived
superiority. Solaris has tried to provide run-time and compile-time
compatibility to SunOS 4.1[.4], and providing a /usr/ucb version of
common shell tools is integral to that effort.

[2] now The Open Group, who owned UNIX(tm) for a while.

-- 
 -D.[EMAIL PROTECTED]NSITUniversity of Chicago



Re: echo $EUID

2002-04-03 Thread Tim Kennedy


On Wed, 03 Apr 2002, Shawn McMahon wrote:

> I suggested we install GNU ps, but nobody in management wanted to hear that.
> 

I feel blessed.  I have two species of management.  The first kind
wouldn't recognize a server if it reached out and smacked them.
The second species wants to sound like they know what's going on, but
really has no idea what's going on, so when I suggest something, they
say "Hrmm.  Let me think about it."  
Then they come back a few hours later and say "I think you're on to
something.  Go for it."

we install GNU stuff in /usr/local since Solaris doesn't have anything
in there by default.  Then to each their own, as they set up their
shell.  You have /usr/xpg4/bin, /usr/bin, /usr/local/bin, as you prefer.

Cheers,

-Tim


-- 
"He's God. He's flighty. First it's a garden, then there's apples, but you 
can't EAT the apples, and there's a man and a women, but they can't bump 
uglies, and then, ah the hell with it, it's cities and smog and wars and 
shit and he's off resting on the seventh day anyway." --Jeff



msg26589/pgp0.pgp
Description: PGP signature


Re: echo $EUID

2002-04-03 Thread Shawn McMahon

begin  quoting what Mark J. Reed said on Wed, Apr 03, 2002 at 08:18:57AM -0500:

> You can also put two 'w's on /usr/ucb/ps and get the full command line of
> every process,

Nope; it has a cutoff after a certain number of characters, and there's
nothing you can do about it.

We ran into this problem when one of our developers wrote an application
on Linux that did a "ps" and looked for a string, when the process in
question was in an extremely long path and was run with the full path
name.  When he ported it to Solaris, it wouldn't work, even with
/usr/ucb/ps, because of the cutoff.

I suggested we install GNU ps, but nobody in management wanted to hear that.




msg26582/pgp0.pgp
Description: PGP signature


Re: echo $EUID

2002-04-03 Thread Mark J. Reed

On Wed, Apr 03, 2002 at 08:12:00AM -0500, Shawn McMahon wrote:
> Don't assume, however, that "BSD" style necessarily is 100% the same
> as GNU style.
> 
> ps being the example, yet again; the "w" option doesn't show as much stuff
> as you can get with two "w"s on GNU ps.
You can also put two 'w's on /usr/ucb/ps and get the full command line of
every process, but the point is a good one.  The GNU/Linux versions of
commands are neither System V nor BSD, but a separate animal inspired
to various degrees by each of the traditions.

-- 
Mark REED| CNN Internet Technology
1 CNN Center Rm SW0831G  | [EMAIL PROTECTED]
Atlanta, GA 30348  USA   | +1 404 827 4754 
--
Military intelligence is a contradiction in terms.
-- Groucho Marx



Re: echo $EUID

2002-04-03 Thread Shawn McMahon

begin  quoting what Mark J. Reed said on Tue, Apr 02, 2002 at 11:35:25PM -0500:
> 
> In cases where there was an even wider divergence between the
> BSD and System V commands (the ps(1) command being the most infamous
> example), you may find the BSD version in /usr/ucb (this is analogous to
> but reversed from the old SunOS case, where the System V versions were
> in /usr/5bin).

Don't assume, however, that "BSD" style necessarily is 100% the same
as GNU style.

ps being the example, yet again; the "w" option doesn't show as much stuff
as you can get with two "w"s on GNU ps.




msg26577/pgp0.pgp
Description: PGP signature


Re: echo $EUID

2002-04-02 Thread Mark J. Reed

On Tue, Apr 02, 2002 at 11:27:31PM -0500, Mark J. Reed wrote:
> /usr/xpg4/bin/id -u
To expand upon this:

When SunOS becamse Solaris, its base moved from BSD (Berkeley's
UNIX-based OS) to System V (official UNIX from AT&T).  
For compatibility with System V applications (and with the POSIX standard),
they had to give all of the standard commands in /bin (or /usr/bin)
the System V semantics.

However, the older behavior was in many cases superior, and those commands
have been retained in /usr/xpg4.  I tend to prefer the XPG version of
most commands, so I have /usr/xpg4 before /usr/bin in my PATH.

In cases where there was an even wider divergence between the
BSD and System V commands (the ps(1) command being the most infamous
example), you may find the BSD version in /usr/ucb (this is analogous to
but reversed from the old SunOS case, where the System V versions were
in /usr/5bin).

Note that not all Solaris installs have these packages; I've found
that more have /usr/xpg4 than /usr/ucb.

-- 
Mark REED| CNN Internet Technology
1 CNN Center Rm SW0831G  | [EMAIL PROTECTED]
Atlanta, GA 30348  USA   | +1 404 827 4754 
--
Now I lay me down to sleep
I pray the double lock will keep;
May no brick through the window break,
And, no one rob me till I awake.



Re: echo $EUID

2002-04-02 Thread Mark J. Reed

On Wed, Apr 03, 2002 at 05:55:25AM +0200, Sven Guckes wrote:
> * Matthew D. Fuller <[EMAIL PROTECTED]> [2002-03-27 11:50]:
> > .. I end up having to work around Solaris'
> > braindamage in a number of ways.
> > For instance, on every OTHER OS (including
> > pre-Solaris-renaming SunOS, HP/UX 9, NeXT Mach),
> > I can use "id -u" to get the EUID.  Solaris?
/usr/xpg4/bin/id -u

-- 
Mark REED| CNN Internet Technology
1 CNN Center Rm SW0831G  | [EMAIL PROTECTED]
Atlanta, GA 30348  USA   | +1 404 827 4754 
--
186,282 miles per second:
It isn't just a good idea, it's the law!



Re: echo $EUID

2002-04-02 Thread Sven Guckes

* Matthew D. Fuller <[EMAIL PROTECTED]> [2002-03-27 11:50]:
> .. I end up having to work around Solaris'
> braindamage in a number of ways.
> For instance, on every OTHER OS (including
> pre-Solaris-renaming SunOS, HP/UX 9, NeXT Mach),
> I can use "id -u" to get the EUID.  Solaris?
> setenv EUID `id | sed "s/[a-z\(\)\=]//g" | awk '{print $1}'`
> 
> Yippie.  Yeah, I could use cut(1) and do
> it a bit more efficiently probably, but...

won't "sed" suffice?  let's see..

  $ uname -a
  SunOS ritz 5.8 Generic_108528-13 sun4u sparc
  $ id
  uid=10077(guckes) gid=10025(emailer) groups=10025(emailer),10365(hacker),..

so we just need the first number before the first space.
easy:

  $ id | sed -e 's/^uid=\([0-9][0-9]*\).*/\1/'`
  10077

"works for me"

of course this is much easier with the ZShell:

  $ echo $EUID
  10077

ZShell rules! :-)

Sven

-- 
Sven Guckes [EMAIL PROTECTED]
ZSH HomePage:   http://www.zsh.org
latest version: zsh-4.0.4 [011024]