Centos7&8创建及删除用户

时间:2021-11-3    作者:冰城心无泪    分类: Linux基础


个人的理解来,在Linux下,用户的种类分四种

  • 1 超级用户:root,最高权限。这没啥好说的,一不小心整崩系统的那种。
  • 2 服务用户:bin、ftp、sshd等,这类用户一般不用于登录使用,而是为了维持某个服务的运行,这类用户shell通常为/sbin/nologin,当然我们也可以创建此类用户。
  • 3 特权用户:此类用户一般为我们安装完系统后,为了安全考虑而创建的一种用户,属于sudo(whell)组,使用sudo命令输入用户本身密码即可拥有大部分权限,用于日常运维。
  • 4 普通用户:此类用户权限很低,只能在本用户主目录执行一些常用命令(touch、mkdir、rm、ping、tar等),无法使用yum安装或卸载应用。

    用户信息说明:

    用户基本信息:存储在 /etc/passwd 文件中;
    用户密码信息:存储在 /etc/shadow 文件中;
    用户群组基本信息:存储在 /etc/group 文件中;
    用户群组信息信息:存储在 /etc/gshadow 文件中;
    用户个人文件:主目录默认位于 /home/用户名;
    邮箱位于 /var/spool/mail/用户名;

    创建(useradd)用户的常用参数说明:

    -c 指定一段用户注释性描述,一般懒人很少写描述,比如我。
    -m 创建主目录,一般情况下,此参数不用加,Centos7&8创建用户时,会自动创建用户主目录。
    -M 不要自动建立用户的登入目录,一般是我们创建服务用户时用得到
    -d 指定用户主目录,此目录必须存在。
    -g 指定用户所属的用户组。Centos7&8创建用户时,会自动创建用户组。也可以在创建用户时用此参数直接指定用户组。
    -G 指定用户所属的附加组。Centos7&8创建用户时,用此参数可使用户同时属于多个组。
    -s Shell文件 指定用户的登录后使用的Shell。默认为/bin/bash。
    -u 用户号 指定用户的用户号,除非特殊需要,一般不用指定。当指定用户号后,不指定用户组时,默认新建的组号默认将与用户号相同。

    修改(usermod)用户的常用参数说明:

    -c 用户说明:修改用户的说明信息,即修改 /etc/passwd 文件目标用户信息的第 5 个字段,懒人一般用不到
    -d 主目录:修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径,特殊需要才改。
    -e 日期:修改用户的失效曰期,格式为 "YYYY-MM-DD",即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段;特殊需要才改。
    -g 组名:修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID);常用。
    -u UID:修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID);特殊需要才改。
    -G 组名:修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件;常用。
    -l 用户名:修改用户名称;不经常用。
    -L:临时锁定用户(Lock);不经常用。
    -U:解锁用户(Unlock),和 -L 对应;不经常用。
    -s shell:修改用户的登录 Shell,默认是 /bin/bash。不经常用。

    删除(userdel)用户的常用参数说明:

    -r 在删除用户的同时删除用户的家目录,若不加此参数,删除用户时只会删除用户,保留此用户主目录
    -f 强制删除用户,用与用户已登录时强制删除

    实例:

    root(拥有sudo权限的用户)下创建普通用户 putong 并为用户创建登录密码:

创建用户

    useradd putong

为用户创建登录密码

    passwd putong

root(拥有sudo权限的用户)下创建服务用户 fuwu(此类用户不用来本地或远程登录,无需设置密码):

    useradd fuwu -M -s /sbin/nologin

更改用户的shell,更改后,用户能够登录

    usermod -s /bin/bash fuwu

更改用户的shell,更改后,用户既不能登录,也不能用于启动任何服务(说白了就是啥也不让干,注意/bin/false与/sbin/nologin区别)

    usermod -s /bin/false fuwu

重点:作为服务器来说,我们一般是不建议root账户具有远程登录权限的,尤其是将服务器托管在IDC的,因为这对于服务器的安全性来说,是一个很大的弊端。因此,需要创建一个特权用户来进行运维工作。

方法 一、

创建用户,创建用户后,默认已创建了与该用户同名的用户组,且该用户默认属于此组

    useradd tequan

为特权用户设置密码

    passwd tequan

使用usermod命令将此用户添加到wheel组,其中开关-a表示附加用户帐户(经测试,Centos7&8此参数可不加),wheel组用户默认有sudo权限

CentOS7&8

    usermod -aG wheel tequan

Debian/Ubuntu

    usermod -aG sudo tequan

方法二、

创建特权用户并直接赋权(默认同时创建用户主目录:/home/tequan及登录的shell:/bin/bash)以下根据需要区分创建
用户只属于wheel组:

    useradd -g wheel tequan

用户同时属于wheel组及tequan组

    useradd -G wheel tequan

为特权用户设置密码

    passwd tequan

特例:允许特权用户在不输入用户密码的情况下运行sudo命令,

方法一 用visudo命令可直接编辑/etc/sudoers文件

    visudo

当然,用vi或者vim(需要安装)也可

    vi/vim /etc/sudoers

在文件末尾并添加以下行并保存:

    tequan  ALL=(ALL) NOPASSWD:ALL

方法二

将 “# %wheel ALL=(ALL) NOPASSWD: ALL” 一行前面的注释(#号)去掉,这样的话,属于wheel组的用户均可在不输入用户密码的情况下运行sudo命令(懒人做法,但是方便啊)

删除用户,以上面创建的特权用户为例:

删除特权用户但保留用户目录

    userdel tequan

删除特权用户一切信息

    userdel -r username

强制删除已登录用户但保留其主目录

    userdel -f username

强制删除用户一切信息,不管你是否登录

    userdel -rf username

查看用户信息(用户ID 所属组等)

    id username

查看wheel组内有哪些用户,其他组用法相同。

groupmems
参数说明
-g 组名
-l 列表list
-h 帮助

    groupmems -g wheel -l