Changeset 492 for branches/scripts
- Timestamp:
- Oct 25, 2010, 4:56:54 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/scripts/user/usermod.cmd
r299 r492 1 1 /* UserMod script for Samba Server for eCS (OS/2) */ 2 Version = '2. 2.1'3 /* Copyright (C) netlabs.org 2007-20092 Version = '2.3.0' 3 /* Copyright (C) netlabs.org, Herwig Bauernfeind 2007-2010 4 4 5 5 This program is free software; you can redistribute it and/or modify … … 62 62 UserExists = _UserIsValid(User) 63 63 select 64 when mode = "F" & user <> "" then do 65 say 'Must not specify user when fixing home directories!' 66 exit 247 67 end 64 68 when mode = "P" & \UserExists then do 65 69 say 'User "'User'" is invalid - cannot set primary GID!' … … 90 94 exit 254 91 95 end 92 when mode = "?" | mode = "H" | arg(1) = "/?" | (User = "" & mode <> "" ) then do96 when mode = "?" | mode = "H" | arg(1) = "/?" | (User = "" & mode <> "" & mode <>"F") then do 93 97 if (User = "" & mode <> "" & mode <> "?" & mode <> "H") then say "Ambiguos commandline. Check syntax!" 94 98 say … … 97 101 say 'Rename a kLIBC user: usermod -r "oldusername" "newusername"' 98 102 say 'Set user''s primary GID: usermod -p "username" "group"' 103 say 'Fix home directories: usermod -f' 99 104 say 100 105 say 'usermod without parameters just rewrites kLIBC password database' … … 109 114 when mode = "R" then call _UserRename 110 115 when mode = "P" then call _SetPrimaryGID 116 when mode = "F" then call _FixHomes 111 117 otherwise nop 112 118 end … … 378 384 _UserAdd: /* add a user to master.passwd STEMS and group STEMS */ 379 385 /* Minimum UID that a user can obtain */ 380 call beep 880, 50381 386 MinUID = 100 382 387 if translate(User) = "ROOT" then MinUID = 0 … … 403 408 pwchange.I = '0' /* dummy value */ 404 409 deact.I = '0' /* dummy value */ 405 if \MachineAccount then do 410 if \MachineAccount then do /* Human users */ 406 411 if uid.I = 0 then do 407 412 if Group512 <> 0 then gid.I = 512; else gid.I = 0 … … 411 416 then gid.I = 513; else gid.I = NextUID /* GID must be UID for guest account */ 412 417 end 413 gecos.I = User /* not really appropriate, but better than a dummy value */414 home.I = '/nonexistent' /* a suitable default for OS/2 should be added here*/415 shell.I = '/usr/sbin/nologin' /* dummy value */416 end 417 else do 418 gecos.I = User /* not really appropriate, but better than a dummy value */ 419 home.I = _Home(User) /* make sure %HOME%\User is created */ 420 shell.I = '/usr/sbin/nologin' /* dummy value */ 421 end 422 else do /* Machine accounts */ 418 423 if Group515 <> 0 then gid.I = 515; else gid.I = NextUID /* Should be group ID (GID) !!! */ 419 424 gecos.I = 'Machine account' … … 499 504 end 500 505 return 506 507 _Home: procedure 508 user = arg(1) 509 curhome = value("HOME",,"OS2ENVIRONMENT") 510 if curhome = "" then do 511 curhome = SysBootDrive()||'\HOME' 512 ok = SysMkDir(Curhome) 513 say 514 say 'WARNING! %HOME% not set properly, assuming "'curhome'"' 515 say 'Add SET HOME='curhome'\default to your CONFIG.SYS.' 516 curhome = curhome||'\' 517 end 518 home = filespec("D",curhome)||filespec("P",curHome)||user 519 ok = SysMkDir(home) 520 home = translate(home,'$/',':\') 521 return home 522 523 _FixHomes: 524 say 'Checking home for 'username.0' users.' 525 maxulen = 0 526 maxhlen = 0 527 do I = 1 to username.0 528 ulen = length(username.I) 529 if ulen > maxulen then maxulen = ulen 530 hlen = length(home.I) 531 if hlen > maxhlen then maxhlen = hlen 532 end 533 534 do I = 1 to username.0 535 if pos('$',username.I) = 0 then do /* do not touch machine accounts */ 536 os2home = translate(left(home.I,2),':','$')||translate(substr(home.I,3),'\','/') 537 call charout ,'User: 'left(username.I,maxulen)' Home: 'left(os2home,maxhlen)' Status: ' 538 if VRFileExists(os2home) = 0 then do 539 oldhome = home.I 540 home.I = _Home(Username.I) 541 os2home = translate(left(home.I,2),':','$')||translate(substr(home.I,3),'\','/') 542 if VRFileExists(os2home) = 0 then do 543 say 'Could not fix home - reverting...' 544 home.I = oldhome 545 end 546 else say 'Fixed.' 547 end 548 else say 'OK.' 549 end 550 else do 551 say 'User: 'left(username.I,maxulen)' Home: 'left(home.I,maxhlen)' Status: Machine account.' 552 end 553 end 554 say 'Ready, rewriting database now.' 555 return
Note:
See TracChangeset
for help on using the changeset viewer.