Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , 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 Subject: chsh To: cygwin AT cygwin DOT com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-2041326377-1049575741=:150" 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--