一文读懂Linux运维常用命令之用户管理

其他相关博文:

一文读懂Linux运维常用命令之文件管理(上)

一文读懂Linux运维常用命令之文件管理(下)

目录

一、用户组管理

1、groupadd

2、groupdel

二、用户管理

1、useradd

(1)、创建普通用户

(2)、创建匿名用户

2、userdel

3、usermod

三、密码管理

1、passwd

(1)、设置用户密码

(2)、用户账号安全管理

2、chage

(1)、列出用户newuser的密码时效信息

(2)、配置用户newuser在30天内不得修改密码

(3)、配置用户newuser的密码最大有效期为90天

(4)、配置用户newuser的密码永不过期

(5)、配置用户newuser的密码过期前7天提醒用户

(6)、配置用户newuser的账号过期日期为2025-03-01

(7)、配置用户newuser的账号最后一次修改密码的日期为2025-02-22

(8)、配置用户newuser的密码到期5天后禁用该账号

四、其他相关命令

1、su

(1)、切换用户newuser

(2)、切换用户newuser但不改变用户环境变量

(3)、切换至用户newuser且加载该用户环境变量

(4)、切换至用户newuser执行ls命令后退出该用户

2、sudo

(1)、配置用户newuser允许执行sudo命令

(2)、用户newuser使用sudo命令执行“ls /root”

(3)、使用匿名用户mongod启动MongoDB服务


 更多精彩博文详见:

《Linux系统应用运维》专栏总目录(持续更新)

一、用户组管理

1、groupadd

groupadd命令用来新建用户组,语法格式如下:

groupadd [-g] gid groupname

  • -g:指定新建用户组的GID,该GID必须唯一。
  • gid:指用户组的GID的值。
  • groupname:指用户组的名称。

新建一个名为ywuser的用户组,指定GID为1024。

[root@node01 ~]# groupadd -g 1024 ywuser
[root@node01 ~]# more /etc/group | grep ywuser --color

2、groupdel

groupdel命令用于删除用户组,语法格式如下:

groupdel groupname

  • groupname:指用户组的名称。

删除一个名称为ywuser的用户组。

[root@node01 ~]# groupdel ywuser
[root@node01 ~]# more /etc/group | grep ywuser --color


二、用户管理

1、useradd

useradd命令用来新建用户,语法格式如下:

useradd [-u uid] [-g gid] [-m] [-M] [-d home] [-s shell] [-c comment] [-e expire] name

  • -u uid:指定该用户的UID,该UID必须唯一。通常UID的取值范围是0~65535,0是root用户的UID,普通用户的UID从500开始。
  • -g gid:指定该用户所属用户组的GID,或者所属用户组的名称。
  • -m:指定创建该用户的home目录。
  • -M:指定不创建该用户的home目录,与-m互斥使用。
  • -d home:指定该用户的home目录路径。
  • -s shell:指定该用户的默认shell。
  • -c comment:指定该用户的注释信息。
  • -e expire:指定该用户的账号过期时间,日期的指定格式为MM/DD/YY。
  • name:指定该用户的名称。

(1)、创建普通用户

创建一个名称为newuser的用户:

该用户UID=1001,GID=1024,home路径= /home/newuser,默认shell为/bin/bash

账号过期时间为2025-02-28,账号注释为“my first user account”。

[root@node01 ~]# useradd -u 1001 -g 1024 -m -d /home/newuser -s /bin/bash -e 2025-02-28 -c "my first user account" newuser

[root@node01 ~]# cat /etc/passwd | grep newuser --color

[root@node01 ~]# cat /etc/shadow | grep newuser --color

[root@node01 ~]# ll /home

(2)、创建匿名用户

匿名用户无法登录shell进行操作,通常用于运行某个应用程序。

创建一个名为mongod的匿名用户:

该用户UID=1010 ,GID=1005,不创建home目录,默认shell为/sbin/nologin,无法登录。

[root@node01 ~]# useradd -u 1010 -g 1005 -M -s /sbin/nologin mongod
[root@node01 ~]# cat /etc/shadow | grep mongod --color
[root@node01 ~]# cat /etc/passwd | grep mongod --color

2、userdel

userdel命令用于删除用户,语法格式如下:

userdel username

  • username:指用户的名称。

删除一个名称为ZX_test01的用户

[root@node01 ~]# userdel ZX_test01
[root@node01 ~]# cat /etc/passwd | grep ZX_test01 --color

3、usermod

usermod命令用来修改用户的账户属性信息,语法格式如下:

usermod [-u uid] [-g group] [-d home目录 -m] [-s shell] [-c 注释] [-l 新名称]

                [-f 失效日期] [-e 过期日期] [-L | -U] name

  • -u:指定用户新的UID
  • -g:指定用户新的用户组
  • -d:指定用户新的home路径
  • -s:指定用户新的shell
  • -c:指定用户新的注释
  • -l:指定用户新的用户名称
  • -e:指定用户账号的过期日期
  • -L:锁定用户密码
  • -U:解除用户密码锁定
  • name:需要修改属性的用户

修改用户newuser的用户属性,uid=1008,gid=1005,用户名称为newuser02

[root@node01 ~]# usermod -u 1008 -g 1005 -l newuser02 newuser
[root@node01 ~]# cat /etc/passwd | grep newuser02 --color
[root@node01 ~]# cat /etc/shadow | grep newuser --color


三、密码管理

1、passwd

passwd命令用于设置或更改用户密码,还可以用于用户账号安全管理。

(1)、设置用户密码

1)超级管理员用户设置普通用户密码

语法格式如下:

passwd username

  • username:指需要更改密码的用户

root用户设置普通用户newuser的密码

[root@node01 ~]# passwd newuser

2)普通用户设置自己的密码

语法格式如下:

passwd

  • 直接在该普通用户shell下执行passwd命令即可,无需其他参数。

普通用户newuser设置自己的密码

[newuser@node01 ~]$ passwd 

(2)、用户账号安全管理

passwd命令用于用于用户账号安全管理,语法格式如下:

passwd [options] [username]

  • -d:删除该用户的密码。
  • -l:锁定用户,该用户无法登录。
  • -u:解锁用户,该用户恢复登录。
  • -x <天数>:设置该用户的密码有效时限。
  • -w <天数>:设置在密码过期前多少天开始提醒用户。
  • -i <天数>:设置密码过期后多少天禁用该用户。
  • -e:强制用户在下次登录时修改密码。
  • -S:显示用户密码状态相关的信息。

上述参数只有拥有系统管理权限的用户执行。;

示例如下:

1)锁定用户newuser

[root@node01 ~]# passwd -l newuser

newuser用户无法登录

[elasticsearch@node01 ~]$ su - newuser

2)解锁用户newuser

[root@node01 ~]# passwd -u newuser

newuser用户恢复登录

[elasticsearch@node01 ~]$ su - newuser

3)强制用户在下次登录时修改密码

[root@node01 ~]# passwd -e newuser

[elasticsearch@node01 ~]$ su - newuser

4)删除用户的密码

[root@node01 ~]# passwd -d newuser

删除密码后,不需要输入密码即可登录该用户shell

[elasticsearch@node01 ~]$ su - newuser

5)其他参数执行

[root@node01 ~]# passwd -x 30 newuser

[root@node01 ~]# passwd -w 7 newuser

[root@node01 ~]# passwd -i 3 newuser

[root@node01 ~]# passwd -S newuser

2、chage

chage命令用于账号密码的时效管理,可以设置账号有效期、密码有效期等。

语法格式如下:

chage [options] [username]

  • -l:列出用户密码时效信息。
  • -m:配置用户多少天内不得更改密码。
  • -M:配置用户密码有效期最大天数。
  • -W:密码到期前提示
  • -E:账号到期时间
  • -d:上一次更改日期,0表示下次登录强制修改密码
  • -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

(1)、列出用户newuser的密码时效信息

[root@node01 ~]# chage -l newuser

(2)、配置用户newuser在30天内不得修改密码

[root@node01 ~]# chage -m 30 newuser

[root@node01 ~]# chage -l newuser

(3)、配置用户newuser的密码最大有效期为90天

[root@node01 ~]# chage -M 90 newuser
[root@node01 ~]# chage -l newuser

(4)、配置用户newuser的密码永不过期

[root@node01 ~]# chage -M -1 newuser
[root@node01 ~]# chage -l newuser

(5)、配置用户newuser的密码过期前7天提醒用户

[root@node01 ~]# chage -W 5 newuser
[root@node01 ~]# chage -l newuser

(6)、配置用户newuser的账号过期日期为2025-03-01

[root@node01 ~]# chage -E 2025-03-01 newuser
[root@node01 ~]# chage -l newuser

(7)、配置用户newuser的账号最后一次修改密码的日期为2025-02-22

[root@node01 ~]# chage -d 2025-02-22 newuser 
[root@node01 ~]# chage -l newuser

(8)、配置用户newuser的密码到期5天后禁用该账号

[root@node01 ~]# chage -I 5 newuser
[root@node01 ~]# chage -l newuser

由上图可见,newuser用户的密码在2025-04-23过期,则该用户账号将在5天后即2025-04-28禁用。


四、其他相关命令

1、su

su命令主要用于切换用户,语法格式如下:

su [option] [username]

  • -:加载切换后的用户环境变量并进入该用户的home目录
  • -c command:切换为用户username并执行指令(command)后再切回原来用户
  • -m: 执行 su 时不改变环境变数

(1)、切换用户newuser

[elasticsearch@node01 data]$ su newuser

切换前后用户当前路径不变

(2)、切换用户newuser但不改变用户环境变量

[elasticsearch@node01 data]$ su -m newuser

(3)、切换至用户newuser且加载该用户环境变量

[elasticsearch@node01 data]$ su - newuser

切换用户后进入newuser用户的home路径

(4)、切换至用户newuser执行ls命令后退出该用户

[elasticsearch@node01 data]$ su -c ls newuser

2、sudo

        sudo命令用于以另一个用户的身份去执行命令,默认是使用超级用户或者root用户执行。在配置文件/etc/sudoers中,设置允许执行sudo命令的用户。

        另外一个常用的方式,是通过sudo命令,来使用匿名用户运行应用程序。

(1)、配置用户newuser允许执行sudo命令

[root@node01 ~]# echo 'newuser ALL=(ALL) PASSWD:ALL' >> /etc/sudoers

(2)、用户newuser使用sudo命令执行“ls /root”

[newuser@node01 ~]$ sudo ls /root

列出了root用户home路径下的文件。

(3)、使用匿名用户mongod启动MongoDB服务

[root@node01 data]# sudo -u mongod /data/mongodb/mongodb_27017/bin/mongod -f /data/mongodb/mongodb_27017/mongodb.conf

可见,MongoDB服务的启动用户为mongod


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野熊佩骑

您的鼓励是我持续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值