File:  [NetBSD Developer Wiki] / wikisrc / tutorials / user_management.mdwn
Revision 1.11: download - view: text, annotated - select for diffs
Wed Sep 9 14:28:56 2020 UTC (4 months, 1 week ago) by kim
Branches: MAIN
CVS tags: HEAD
Use man template

**Contents**

[[!toc levels=2]]

#Preface

Before you start to do user and group management you must: 

1. For security reasons, create substitute user and name it as you like, here it is referred as _noroot_: 

[[!template id=programlisting text="""
# useradd -m -G wheel _noroot_
"""]]

2. Set password for _noroot_ user: 

[[!template id=programlisting text="""
# passwd _noroot_
"""]]

3. Exit and log in as _noroot_ user. 

4. Use the `su` command to obtain the root privileges for _noroot_: 
    
[[!template id=programlisting text="""
$ su
"""]]
    

5. Forget to use the `root` for maintenance or regular administration of the system. You free to find any secure and convenient spot for the root password be available upon your need. 

  
If your favorite user with login password is already assigned in the system and no need to create new one. Omit first steps from above. Do modify user information by adding _your no root user_ into the wheel group and `su` anytime per your desire: 
    
[[!template id=programlisting text="""
# usermod -G wheel _noroot_
"""]]
    

#**User**

The NetBSD maintains information in regard of each user who logs into, access system, runs processes on so forth. This include and not limited to: 
    
 - user name
 - password
 - group
 - base_dir
 - skel_dir
 - shell
 - class
 - homeperm
 - inactive
 - expire
    

The superuser called root has no limitations on its privileges. 

To limit user priveleges consider to set limits by: coredumpsize, cputime, filesize, quota, maxproc, memory, openfiles etc. 

`[[!template id=man name="user" section="8"]]` is frontend to the useradd, usermod, userinfo and userdel commands, it helps to manage users in the system. 

Use [[!template id=man name="id" section="1"]] to see user identity: 

    $ id
    

Use [[!template id=man name="w" section="1"]] to see who present and what they are doing: 

    $ w
    

Use [[!template id=man name="last" section="1"]] to see last logins: 


    $ last
    

##  [[!template id=man name="useradd" section="8"]]

To add user do: 
    
    user add [options] _user_
    

To add a user and create a new home directory: 
    
    # useradd -m _myuser_
    

Look into the NetBSD Guide [Chapter 5.6](http://netbsd.org/docs/guide/en/chap-boot.html#chap-boot-adding-users)

##  [[!template id=man name="userinfo" section="8"]]

To see user information do: 
    
    $ userinfo _myuser_
    

##  [[!template id=man name="usermod" section="8"]]

To modify existing user login do: 
    
    # user mod [options] _user_
    
    
    # usermod -C yes _username_             ; set Close lock on user account
    
    
    # usermod -C no _username_              ; unlock user account
    
    
    # usermod -G wheel _username_           ; add user to group _wheel_
    
    
    # usermod -s /sbin/nologin _username_   ; remove login shell
    
    
    # usermod -s /bin/sh _username_         ; set login shell
    
    
    # usermod -F _username_                 ; force user to change password
    

##  [[!template id=man name="userdel" section="8"]]

To remove a user from the system do: 
    
    # userdel _myuser_
    

##  [[!template id=man name="passwd" section="5"]]

To see a list of all users in the system do: 
    
    $ cat /etc/passwd
    

To edit _/etc/passwd_ file do: 
    
    # vipw
    

##  [[!template id=man name="chpass" section="1"]]

Use chpass, chfn, and chsh ([[!template id=man name="chpass" section="1"]]) to add or change user database information. 

To change the shell of _myuser_, for an exapmle to /bin/ksh: 
    
    # chpass -s /bin/ksh _myuser_
    

  


#  **Group**

To manage groups check `/etc/group` file which maintains name of each group, group id and list of users who is a group member. 

`[[!template id=man name="group" section="8"]]` is frontend to the groupadd, groupmod, groupinfo and groupdel commands, it helps to manage groups in the system. 

To add group do: 
    
    group add [options] _group_
    

To delete group do: 
    
    group del [options] _group_
    

To obtain group information do: 
    
    group info [options] _group_
    

To modify existing group do: 
    
    group mod [options] _group_
    

To remove user from the group you have to do `user del` and then add user again. 

##  [[!template id=man name="groupadd" section="8"]]

##  [[!template id=man name="groupdel" section="8"]]

##  [[!template id=man name="groupinfo" section="8"]]

##  [[!template id=man name="groupmod" section="8"]]

#  Other

##  [[!template id=man name="chmod" section="1"]]

##  [[!template id=man name="chown" section="8"]]

To change files/directory ownership: 
    
    #chown -R  myuser path 
    

Where myuser is the name of user and path is directory where files are located. 

##  [[!template id=man name="chgrp" section="1"]]

##  [[!template id=man name="chroot" section="8"]]

##  [[!template id=man name="quota" section="1"]]

Use quota to set users quotas per desire. 

#  See also

  * [[How to set up per-user timezones]]
  * How to [[Hide other user's processes]]
  * [[Userland version]]
  * [[The_NetBSD_System_Manager's_Manual#Users_and_Accounts_Management]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb