• 【linux】普通用户创建删除口令管理等用户管理


    1、背景

    linux操作系统是一个多用户多任务的分时操作系统。
    任何一个要使用系统资源的用户,首先需要向管理员申请账户,然后登录该账户进入操作系统。

    用户在系统中是分角色的,角色的不同,权限和所完成的任务也不同;
    用户的角色是通过UID和GID识别的;
    其中一个UID是唯一标识一个系统用户的账号。
    用户账户分三类:

    超级用户root(0)
    程序用户(1~499)
    普通用户(500~65535)
    
    • 1
    • 2
    • 3

    关于用户的说明:
    超级用户:

    超级用户即root用户,其UID和GID均为0。
    每台unix/linux操作系统中都是唯一且真实存在的!
    拥root用户拥有最高的管理权限,所以生产环境一般是禁止使用root用户!
    
    • 1
    • 2
    • 3

    程序用户:

    程序用户并不是真实的用户,他们是协助系统管理的例如系统默认的bin、adm、nodoby、mail用户等。
    
    • 1

    普通用户:

    相对于root超级用于而言的其它用户,普通用户可以创建很多个,一般是在root超级与用户下添加的。
    
    • 1

    以上是用户的介绍,除了用户概念之外还有用户组的概念。
    linux系统中的用户组(group)就是具有相同特性的用户(user)集合;
    将用户分组是linux系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,简化了管理工作。
    用户和用户组的对应关系有:一对一、一对多、多对一。

    一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。比如,root。
    一对多:即一个用户可以存在多个组中,这个用户就具有这些组。
    多对一:即多个用户可以存在一个组中,这些用户这些组的共同权限。
    
    • 1
    • 2
    • 3

    2、创建普通用户

    创建普通用户,就是在/etc/passwd文件中为新用户增加一条记录,
    同时更新其他系统文件如/etc/shadow, /etc/group等。

    一般是在root用户下创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。

    linux系统添加新的用户账号使用 useradd 命令,其语法如下:
    useradd 选项 用户名
    参数说明:

    选项:
    -c comment 指定一段注释性描述。
    -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    -g 用户组 指定用户所属的用户组。
    -G 用户组,指定用户所属的附加组(对应上述的一对多)。
    -s Shell文件,指定用户的登录Shell。
    -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
    
    用户名:指定新账号的登录名。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    示例:

    useradd -d /home/jn537 -m jn537
    
    • 1

    此命令创建了一个用户jn537,其中-d和-m选项用来为登录名jn537产生一个主目录 /home/jn537(/home为默认的用户主目录所在的父目录)。

    如下创建用户,并指定口令:

    root@jn10010537:~# useradd jn
    root@jn10010537:~# passwd jn
    Enter new UNIX password: 
    Retype new UNIX password: 
    passwd: password updated successfully
    root@jn10010537:~# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例2:

    useradd -s /bin/sh -g main_group –G tack_jn1,tack_jn2,root jn536
    
    • 1

    此命令新建了一个用户jn536,该用户的登录Shell是 /bin/sh,它属于main_group用户组,同时又附加属于tack_jn1,tack_jn2,root用户组,其中main_group用户组是其主组。
    创建用户组:groupadd group

    3、删除普通用户

    删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,
    必要时还删除用户的主目录。

    如果一个用户的账号不再使用,可以从系统中删除。

    删除一个已有的用户账号使用userdel命令,其格式如下:
    userdel 选项 用户名
    常用的选项是 -r,它的作用是把用户的主目录一起删除,具体如下:

    root@jn10010537:/home# userdel  -h
    Usage: userdel [options] LOGIN
    
    Options:
      -f, --force                   force removal of files,
                                    even if not owned by user
      -h, --help                    display this help message and exit
      -r, --remove                  remove home directory and mail spool
      -R, --root CHROOT_DIR         directory to chroot into
          --extrausers              Use the extra users database
      -Z, --selinux-user            remove any SELinux user mapping for the user
    
    root@jn10010537:/home# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    4、修改普通用户

    修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
    修改已有用户的信息使用usermod命令,其格式如下:
    usermod 选项 用户名

    具体如下:

    root@jn10010537:/home# usermod -h
    Usage: usermod [options] LOGIN
    
    Options:
      -c, --comment COMMENT         new value of the GECOS field
      -d, --home HOME_DIR           new home directory for the user account
      -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
      -f, --inactive INACTIVE       set password inactive after expiration
                                    to INACTIVE
      -g, --gid GROUP               force use GROUP as new primary group
      -G, --groups GROUPS           new list of supplementary GROUPS
      -a, --append                  append the user to the supplemental GROUPS
                                    mentioned by the -G option without removing
                                    him/her from other groups
      -h, --help                    display this help message and exit
      -l, --login NEW_LOGIN         new value of the login name
      -L, --lock                    lock the user account
      -m, --move-home               move contents of the home directory to the
                                    new location (use only with -d)
      -o, --non-unique              allow using duplicate (non-unique) UID
      -p, --password PASSWORD       use encrypted password for the new password
      -R, --root CHROOT_DIR         directory to chroot into
      -s, --shell SHELL             new login shell for the user account
      -u, --uid UID                 new UID for the user account
      -U, --unlock                  unlock the user account
      -v, --add-subuids FIRST-LAST  add range of subordinate uids
      -V, --del-subuids FIRST-LAST  remove range of subordinate uids
      -w, --add-subgids FIRST-LAST  add range of subordinate gids
      -W, --del-subgids FIRST-LAST  remove range of subordinate gids
      -Z, --selinux-user SEUSER     new SELinux user mapping for the user account
    
    root@jn10010537:/home# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    5、口令passwd管理

    用户账号刚创建时没有口令,但是被系统锁定,无法使用。
    必须为其指定口令后才可以使用,即使是指定空口令。

    超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
    命令的格式为:passwd 选项 用户名

    详细参看help文档如下:

    root@jn10010537:~# passwd -h
    Usage: passwd [options] [LOGIN]
    
    Options:
      -a, --all                     report password status on all accounts
      -d, --delete                  delete the password for the named account
      -e, --expire                  force expire the password for the named account
      -h, --help                    display this help message and exit
      -k, --keep-tokens             change password only if expired
      -i, --inactive INACTIVE       set password inactive after expiration
                                    to INACTIVE
      -l, --lock                    lock the password of the named account
      -n, --mindays MIN_DAYS        set minimum number of days before password
                                    change to MIN_DAYS
      -q, --quiet                   quiet mode
      -r, --repository REPOSITORY   change password in REPOSITORY repository
      -R, --root CHROOT_DIR         directory to chroot into
      -S, --status                  report password status on the named account
      -u, --unlock                  unlock the password of the named account
      -w, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS
      -x, --maxdays MAX_DAYS        set maximum number of days before password
                                    change to MAX_DAYS
    
    root@jn10010537:~# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
  • 相关阅读:
    kubernetes 起几个节点,就会有几个flannel pod
    Python 在Word中创建表格并填入数据、图片
    VMware workstation 16 安装与配置
    基于matlab实现AUTOSAR软件开发---答疑1
    程序批量下载图片不完整解决方案for Python
    【大话云原生】kubernetes灰度发布篇-从步行到坐缆车的自动化服务升级
    【大数据处理技术】实验12(新建文件夹)
    C#版Facefusion ,换脸器和增强器
    Adobe Illustrator 2024 v28.4.1 (macOS, Windows) - 矢量绘图
    map-reduce中的组件
  • 原文地址:https://blog.csdn.net/jn10010537/article/details/126439989