delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2003/04/05/15:49:15

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <20030405204901.2781.qmail@web21202.mail.yahoo.com>
Date: Sat, 5 Apr 2003 12:49:01 -0800 (PST)
From: AJ Reins <tbisp AT yahoo DOT com>
Subject: chsh
To: cygwin AT cygwin DOT com
MIME-Version: 1.0
Note-from-DJ: This may be spam

--0-2041326377-1049575741=:150
Content-Type: text/plain; charset=us-ascii
Content-Id: 
Content-Disposition: inline

I got bored this morning, so I slapped together a chsh (change shell) program.

A few design notes (in other words, it was designed to work this way, and they
are not bugs):
 1) The program will happily accept (and output) bad paths. So:
     chsh /boo/hoo
    will change the invokers shell to "/boo/hoo" in the output.
 2) chsh non-existant-user /bin/bash will do nothing. The user
    must exist in /etc/passwd, AND the spelling must match
    EXACTLY.
 3) The output (as in the case of mkpasswd) is to stdout. Redirect
    if you want to save the output.

Compile:
 gcc -o chsh chsh.c


__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more
http://tax.yahoo.com
--0-2041326377-1049575741=:150
Content-Type: application/octet-stream; name="chsh.c"
Content-Transfer-Encoding: base64
Content-Description: chsh.c
Content-Disposition: attachment; filename="chsh.c"

LyoKICogVGltZS1zdGFtcDogPFNhdCBBcHIgIDUgMDk6MTA6NTMgQ1NUIDIw
MDMgYWo+CiAqLwoKLyogQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLgogKgogKiBDaHNoIGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQK
ICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0
aW9uKQogKiBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogQ2hzaCBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVAogKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkKICogb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAq
CiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGFsb25nIHdpdGggQ2hzaDsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlCiAqIFNvZnR3YXJlIEZvdW5kYXRpb24sIDU5IFRlbXBsZSBQbGFjZSwg
U3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExIFVTQS4KICovCgojaW5jbHVk
ZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgkJLyogZm9yIHN0cmNt
cCgpIGFuZCBzdHJjcHkoKSAqLwojaW5jbHVkZSA8c3lzL3VuaXN0ZC5oPgkJ
LyogZm9yIGdldHVpZCgpICovCiNpbmNsdWRlIDxwd2QuaD4JCS8qIGZvciBw
d2VudCB1dGlscyBhbmQgc3RydWN0dXJlICovCgpjaGFyIG1lWzEyOF07Cgov
KgogKiBMb29rIHVwIHRoZSBjdXJyZW50IHVzZXIgaW4gdGhlIHBhc3N3b3Jk
IGRhdGFiYXNlLgogKi8KY2hhciAqCmxvb2tNZVVwKCkKewogICAgc3RydWN0
IHBhc3N3ZCAqY3VycmVudFBXOwoKICAgIGN1cnJlbnRQVz1nZXRwd3VpZChn
ZXR1aWQoKSk7CiAgICBzdHJjcHkobWUsIGN1cnJlbnRQVy0+cHdfbmFtZSk7
CiAgICByZXR1cm4obWUpOwp9CgovKgogKiBEdW1wIHRoZSBjdXJyZW50IGVu
dHJ5IGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBzdHJ1Y3R1cmUuCiAqLwp2
b2lkCmR1bXBQd0VudChzdHJ1Y3QgcGFzc3dkICpjdXJyZW50UFcsIGNoYXIg
Km5ld1NoZWxsKQp7CiAgICBpZihjdXJyZW50UFctPnB3X2NvbW1lbnQpCglw
cmludGYoIiVzOiVzOiVkOiVkOiVzOiVzOiVzOiVzXG4iLAoJICAgICAgIGN1
cnJlbnRQVy0+cHdfbmFtZSwKCSAgICAgICBjdXJyZW50UFctPnB3X3Bhc3N3
ZCwKCSAgICAgICBjdXJyZW50UFctPnB3X3VpZCwKCSAgICAgICBjdXJyZW50
UFctPnB3X2dpZCwKCSAgICAgICBjdXJyZW50UFctPnB3X2NvbW1lbnQsCgkg
ICAgICAgY3VycmVudFBXLT5wd19nZWNvcywKCSAgICAgICBjdXJyZW50UFct
PnB3X2RpciwKCSAgICAgICBuZXdTaGVsbCA/IG5ld1NoZWxsIDogY3VycmVu
dFBXLT5wd19zaGVsbCk7CiAgICBlbHNlCglwcmludGYoIiVzOiVzOiVkOiVk
OiVzOiVzOiVzXG4iLAoJICAgICAgIGN1cnJlbnRQVy0+cHdfbmFtZSwKCSAg
ICAgICBjdXJyZW50UFctPnB3X3Bhc3N3ZCwKCSAgICAgICBjdXJyZW50UFct
PnB3X3VpZCwKCSAgICAgICBjdXJyZW50UFctPnB3X2dpZCwKCSAgICAgICBj
dXJyZW50UFctPnB3X2dlY29zLAoJICAgICAgIGN1cnJlbnRQVy0+cHdfZGly
LAoJICAgICAgIG5ld1NoZWxsID8gbmV3U2hlbGwgOiBjdXJyZW50UFctPnB3
X3NoZWxsKTsKfQoKaW50Cm1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK
ewogICAgY2hhciAqbmFtZTsKICAgIGNoYXIgKm5ld1NoZWxsOwogICAgc3Ry
dWN0IHBhc3N3ZCAqY3VycmVudFBXOwoKICAgIHN3aXRjaChhcmdjKQoJewoJ
Y2FzZSAyOgoJICAgIG5hbWU9bG9va01lVXAoKTsKCSAgICBuZXdTaGVsbD1h
cmd2WzFdOwoJICAgIGJyZWFrOwoJY2FzZSAzOgoJICAgIG5hbWU9YXJndlsx
XTsKCSAgICBuZXdTaGVsbD1hcmd2WzJdOwoJICAgIGJyZWFrOwoJZGVmYXVs
dDoKCSAgICBmcHJpbnRmKHN0ZGVyciwidXNhZ2U6ICVzIFtuYW1lXSAvcGF0
aC90by9uZXcvc2hlbGxcbiIsYXJndlswXSk7CgkgICAgcmV0dXJuKDEpOwoJ
ICAgIGJyZWFrOwoJfQoKICAgIHNldHB3ZW50KCk7CiAgICBjdXJyZW50UFc9
Z2V0cHdlbnQoKTsKICAgIGRvIHsKCWlmKCFzdHJjbXAoY3VycmVudFBXLT5w
d19uYW1lLCBuYW1lKSkKCSAgICBkdW1wUHdFbnQoY3VycmVudFBXLG5ld1No
ZWxsKTsKCWVsc2UKCSAgICBkdW1wUHdFbnQoY3VycmVudFBXLE5VTEwpOwoJ
Y3VycmVudFBXPWdldHB3ZW50KCk7CiAgICB9IHdoaWxlKGN1cnJlbnRQVyAm
JiAoY3VycmVudFBXLT5wd191aWQgPj0gMCkgJiYgKGN1cnJlbnRQVy0+cHdf
Z2lkID49IDApKTsKICAgIGVuZHB3ZW50KCk7CgogICAgcmV0dXJuKDApOwp9
Cg==


--0-2041326377-1049575741=:150
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
--0-2041326377-1049575741=:150--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019