Mail Archives: cygwin/2003/04/05/15:49:15
--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 -