服务器多人乱操作?Linux 用户 组管理一次性拿捏

📅 发布时间:2026/7/19 2:31:09
服务器多人乱操作?Linux 用户  组管理一次性拿捏 Linux 用户和组管理用户和组介绍用户介绍用户帐户是系统安全的基础。 系统上的每个进程运行程序都以特定用户身份运行。 每个文件都有一个特定用户作为其所有者。 文件所有权有助于系统对文件用户实施访问控制。正在运行的进程关联的用户确定该进程可访问的文件和目录。用户使用username标识并使其更易于使用。在内部系统通过分配给它们的唯一标识号用户ID或UID来区分用户帐户。 如果用户使用用户帐户则通常会为其分配一个密码用户在登录时将使用该密码来证明他们是实际的授权用户。用户帐户主要有三种类型superuser用于管理系统用户名称为rootUID为0对系统具有完全访问权限。system users系统具有系统用户帐户由提供支持服务的进程使用。 这些进程或守护进程通常不需要以超级用户身份运行。 它们是非特权帐户用户保护自己文件和其他资源。系统用户帐户不用于交互方式登录系统。regular users大多数用户拥有常规用户帐户用于日常工作。passwd 文件/etc/passwd文件保存操作系统登录用户信息。每行包含一个登录用户信息以冒号分隔七个域。格式name:password:UID:GID:GECOS:directory:shell例[cywcentos7 ~15:54:59]$grepcyw /etc/passwd#查看用户当前信息cyw:x:1000:1000:cyw:/home/cyw:/bin/bash解析name用户登录名password用户密码以x表示UID用户IDGID用户主组IDGECOS用户描述信息通常为用户的真实姓名directory用户主目录启动shell时的工作目录默认位于/home/usernameshell用户打开终端时运行的程序默认是shell。对于system user它的shell是/sbin/nologin。例[cywcentos7 ~16:57:35]$greppostfix /etc/passwd postfix:x:89:89::/var/spool/postfix:/sbin/nologin /etc/passwd:postfix:x:89:89::/var/spool/postfix:/sbin/nologin grep: postfix:x:89:89::/var/spool/postfix:/sbin/nologin: 没有那个文件或目录group 文件**组是用户的集合组中用户继承组权限。**与用户一样组具有组名称以使其更易于使用。系统通过分配给它们的唯一标识号组ID或GID来区分组。/etc/group文件保存操作系统组信息。每行包含一个组信息以冒号分隔4个域。格式group_name:password:GID:user_list例[cywcentos7 ~16:57:55]$grepwheel /etc/group wheel:x:10:解析group_name组名称password组密码用x表示GID组ID唯一表示组user_list作为补充的成员组的类型主要组每个用户只有一个主要组/etc/passwd 文件中的GID编号定义。 默认情况下**用户创建的新文件组所有者为用户的主要组。**通常在创建新的常规用户时会创建一个与该用户同名的新组。该组用作新用户的主要组该用户是此用户专用组的唯一成员有助于简化文件权限管理。补充组用户还可以拥有补充组。 补充组的成员资格由/etc/group文件确定。 根据用户的任何组是否具有访问权限授予用户访问权限的权限。例如如果用户user01具有主要组user01和补充组wheel和webadmin则该用户可以读取这三个组中任何一个组可读的文件。# 查看用户信息[cywcentos7 ~16:58:52]$iduid1000(cyw)gid1000(cyw)组1000(cyw)环境unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023# 查看用户 uid[cywcentos7 ~17:01:59]$id-ucyw1000本地用户管理whoami 命令作用查看当前终端中登录的用户[cywcentos7 ~17:02:35]$whoamicyw[cywcentos7 ~17:05:11]$su-lroot 密码 上一次登录五7月1716:39:58 CST 2026pts/0 上[rootcentos7 ~17:05:22]# whoamirootwho 和 w 命令作用查看当前系统中所有终端上登录的用户以及用户登录的时间[cywcentos7 ~17:07:43]$whoroot :02026-07-1717:09(:0)cyw pts/02026-07-1717:07(10.1.8.1)cyw pts/12026-07-1717:07(10.1.8.1)[cywcentos7 ~17:09:47]$ w17:09:57 up3:40,3users, load average:1.71,0.45,0.19USERTTY FROM LOGIN IDLE JCPU PCPU WHAT root :0 :017:09 ?xdm?1:130.23s /usr/libexec/gnome-sessio cyw pts/010.1.8.117:075.00s0.07s0.04s w cyw pts/110.1.8.117:072:370.05s0.24s sshd: cyw[priv]users 命令作用查看当前系统中所有终端上登录的用户名[cywcentos7 ~17:11:13]$userscyw cyw rootuseradd 命令作用创建用户#创建用户user01[rootcentos7 ~17:13:29]# useradd user01[rootcentos7 ~17:13:50]# grep user01 /etc/passwduser01:x:1001:1001::/home/user01:/bin/bash#创建用户user02[rootcentos7 ~17:14:50]# useradd -u 8888 -d /opt/user02 -c user for software manage -g wheel -s /sbin/nologin user02#注释# -u uid# -d 用户的家目录# -c 描述信息# -g 用户的主组# -s 用户shell程序[rootcentos7 ~17:17:10]# grep user02 /etc/passwduser02:x:8888:10:userforsoftware manage:/opt/user02:/sbin/nologin[rootcentos7 ~17:17:33]# ls -d /opt/user02//opt/user02/# 创建一个没有密码的账户该用户在图形化界面中可以直接登录[rootcentos7 ~17:17:58]# useradd -p tom新用户家目录中的文件来源于/etc/skel/目录。创建用户的时候用户属性默认参数配置在/etc/login.defs文件。[rootcentos7 ~17:21:29]# vim /etc/login.defs#QMAIL_DIR MaildirMAIL_DIR /var/spool/mail#MAIL_FILE .mail# Password aging controls:## PASS_MAX_DAYS Maximum number of days a password may be used.# PASS_MIN_DAYS Minimum number of days allowed between password changes.# PASS_MIN_LEN Minimum acceptable password length.# PASS_WARN_AGE Number of days warning given before a password expires.#PASS_MAX_DAYS99999PASS_MIN_DAYS0PASS_MIN_LEN5PASS_WARN_AGE7## Min/max values for automatic uid selection in useradd#UID_MIN1000UID_MAX60000# System accountsSYS_UID_MIN201SYS_UID_MAX999## Min/max values for automatic gid selection in groupadd#GID_MIN1000GID_MAX60000# System accountsSYS_GID_MIN201SYS_GID_MAX999...usermod 命令作用修改用户属性# -m 移动家目录到新的位置[rootcentos7 ~17:27:05]# usermod user02 -u 1008 -md /home/user02 -s /bin/bash[rootcentos7 ~17:27:32]# grep user02 /etc/passwduser02:x:1008:10:userforsoftware manage:/home/user02:/bin/bash[rootcentos7 ~17:27:53]# ls -d /home/user02//home/user02/#进入 user02用户[rootcentos7 user0217:29:26]# su -l user02上一次登录五7月1717:29:06 CST 2026pts/0 上# 添加补充组如果没有-a选项则代表将补充组设置为user01原先的补充组就被覆盖了。[rootcentos7 user0217:30:12]# usermod -aG user01 user02[rootcentos7 user0217:30:25]# id user02uid1008(user02)gid10(wheel)组10(wheel),1001(user01)userdel 命令作用删除用户# 正常删除[rootcentos7 cyw 08:50:15]# useradd user03[rootcentos7 cyw 08:50:31]# userdel user03# 强制删除[rootcentos7 cyw 08:57:50]# userdel -f user02[rootcentos7 cyw 08:58:12]# id user02id: user02: no such user#注意[rootcentos7 cyw 09:20:18]# ls /home/cyw tom user01 user02 user03 wanho#/home/目录下仍有user02,user03#用rm -r无法删除[rootcentos7 cyw 09:20:26]# rm -r u*rm: 无法删除u*:没有那个文件或目录#需要检查/home/*和 /var/spool/mail/*目录下对应文件是否删除将这两个部分都删除后才算将用户完全删除[rootcentos7 cyw 09:20:41]# rm -fr /home/user02[rootcentos7 cyw 09:21:17]# ls /var/spool/mail/user02ls: 无法访问/var/spool/mail/user02: 没有那个文件或目录实践对用户进行增删改操作#创建 operator1 用户[rootcentos7 cyw 09:11:51]# useradd operator1#使用 id 验证 operator1 用户信息[rootcentos7 cyw 09:12:33]# id operator1uid8890(operator1)gid8890(operator1)组8890(operator1)#查看 /etc/passwd 中对应条目[rootcentos7 cyw 09:12:51]# grep operator1 /etc/passwdoperator1:x:8890:8890::/home/operator1:/bin/bash#密码设置为 redhat[rootcentos7 cyw 09:15:44]# passwd operator1更改用户 operator1 的密码 。 新的 密码 无效的密码 密码少于8个字符#输入密码过短再输一遍即可重新输入新的 密码 passwd所有的身份验证令牌已经成功更新。#修改 operator1 用户uid为1088[rootcentos7 cyw 09:16:03]# usermod -u 1088 operator1#修改 operator1 用户描述信息为Operator One[rootcentos7 cyw 09:17:37]# usermod -c Operator One operator1#将 wheel 组作为补充组添加给 operator1 用户[rootcentos7 cyw 09:17:52]# usermod -aG wheel operator1#查看 /etc/group 中对应条目[rootcentos7 cyw 09:18:22]# grep operator1 /etc/groupwheel:x:10:operator1 operator1:x:8890:#查看 id[rootcentos7 cyw 09:18:52]# id operator1uid1088(operator1)gid8890(operator1)组8890(operator1),10(wheel)#查看 /etc/passwd 中对应条目[rootcentos7 cyw 09:19:02]# grep operator1 /etc/passwdoperator1:x:1088:8890:Operator One:/home/operator1:/bin/bash#删除 operator1 用户[rootcentos7 cyw 09:19:48]# userdel -r operator1#检查是否删除成功[rootcentos7 cyw 09:20:18]# ls /home/cyw tom user01 user02 user03 wanho#用户已删除通过vim手动创建一个用户# 1 添加账户[rootcentos7 cyw 09:35:43]# vim /etc/passwd# 最后一行添加如下内容注意uid要在原有的基础上增加1zhangsan:x:1002:1002::/home/zhangsan:/bin/bash# 2 添加组[rootcentos7 cyw 09:40:27]# vim /etc/group# 最后一行添加如下内容zhangsan:x:1002:# 3 添加密码[rootcentos7 cyw 09:43:14]# vim /etc/shadow# 最后一行添加如下内容zhangsan:$6$e3uY3nq7$kieHl.ni3DoMiEw87gLI0l7AIEYdm/aoCL5sv9nCkO6zhkcL1RvEfH1TCKIeQENPw8F5ropDUuAQ6Fb/x13/G1:20648:0:99999:7:::#直接复制用户cyw的密码# 4 准备家目录[rootcentos7 cyw 09:45:51]# cp -r /etc/skel/ /home/zhangsan# 修改zhangsan家目录所属有zhangsan用户和组[rootcentos7 cyw 09:50:06]# chown zhangsan:zhangsan /home/zhangsan/[rootcentos7 cyw 09:50:16]# ll -d /home/zhangsan/drwxr-xr-x.3zhangsan zhangsan787月1809:46 /home/zhangsan/# 5 登录测试[rootcentos7 cyw 09:51:18]# ssh zhangsanlocalhostThe authenticity ofhostlocalhost (::1)cant be established. ECDSA key fingerprint is SHA256:7dcpZSnly4RZDtj6CwujeLrZCiEeHOuuABgRrgtP4w. ECDSA key fingerprint is MD5:67:19:cb:52:c7:4f:fc:25:e6:c3:ec:22:c3:61:73:ce. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added localhost (ECDSA) to the list of known hosts. zhangsanlocalhosts password:#密码与用户cyw相同[zhangsancentos7 ~ 09:52:08]$本地组管理groupadd 命令# 创建名称为 admin 的组[rootcentos7 ~10:09:52]# groupadd admin[rootcentos7 ~10:10:41]# grep admin /etc/groupprintadmin:x:997: admin:x:8890:# 创建名称为sysadmin的组组id为2000[rootcentos7 ~10:11:52]# groupadd sysadmin -g 2000# 验证[rootcentos7 ~10:12:10]# grep admin /etc/groupprintadmin:x:997: admin:x:8890: admin:x:2000:groupmod 命令修改组信息[rootcentos7 ~10:10:59]# groupmod --help用法groupmod[选项]组 选项: -g,--gidGID 将组 ID 改为 GID -h,--help显示此帮助信息并推出 -n, --new-name NEW_GROUP 改名为 NEW_GROUP -o, --non-unique 允许使用重复的 GID -p,--passwordPASSWORD 将密码更改为(加密过的)PASSWORD -R,--rootCHROOT_DIRchroot到的目录 -P,--prefixPREFIX_DIR prefix directory where are located the /etc/* files# 修改组名称[rootcentos7 ~10:18:54]# groupmod --new-name admins admin[rootcentos7 ~10:20:12]# grep admins /etc/groupadmins:x:2000:# 修改组id[rootcentos7 ~10:21:14]# groupmod -g 2002 admins# 验证[rootcentos7 ~10:21:40]# grep admins /etc/groupadmins:x:2002:groupdel 命令删除用户组[rootcentos7 ~10:23:01]# groupdel admins[rootcentos7 ~10:23:14]# grep admins /etc/group[rootcentos7 ~10:23:20]#groupmem 命令[rootcentos7 ~10:22:00]# groupmems --help用法groupmems[选项][动作]选项 -g,--groupgroupname 更改组 groupname而不是用户的组(只 root)-R,--rootCHROOT_DIRchroot到的目录 动作 -a,--addusername 将用户 username 添加到组成员中 -d,--deleteusername 从组的成员中删除用户 username -h,--help显示此帮助信息并推出 -p,--purge从组中移除所有成员 -l,--list列出组中的所有成员# 添加成员rootcentos7 ~10:25:22]# groupmems -gadmins -a cyw[rootcentos7 ~10:29:44]# groupmems -g admins -lcyw[rootcentos7 ~10:30:10]# id cywuid1000(cyw)gid1000(cyw)组1000(cyw),2002(admins)# 删除成员[rootcentos7 ~10:30:18]# groupmems -g admins -d cyw[rootcentos7 ~10:30:47]# groupmems -g admins -l[rootcentos7 ~10:30:51]## 清空组中所有成员[rootcentos7 ~10:30:51]# groupmems -g admins -a cyw[rootcentos7 ~10:31:13]# groupmems -g admins -p[rootcentos7 ~10:31:29]#实践#创建developer组组id为2000[rootcentos7 ~10:31:49]# groupadd developer -g 2000[rootcentos7 ~10:32:24]# grep developer /etc/groupdeveloper:x:2000: 修改developer组名称为developers组id为3000[rootcentos7 ~10:35:11]# groupmod --new-name developers developer创建developer1用户并添加到组developers[rootcentos7 ~10:35:52]# useradd developer1[rootcentos7 ~10:36:23]# groupmems -g developers -a developer1[rootcentos7 ~10:36:51]# groupmems -g developers -ldeveloper1#将developer1用户从组developers中删除[rootcentos7 ~10:37:36]# groupmems -g developers -d developer1[rootcentos7 ~10:38:02]# groupmems -g developers -l[rootcentos7 ~10:38:06]# #删除后在组内无法再查询到#删除组developers[rootcentos7 ~10:38:08]# groupdel developers[rootcentos7 ~10:38:26]# grep developers /etc/group[rootcentos7 ~10:38:45]#管理用户密码shadow 文件/etc/shadow文件保存操作系统登录用户密码信息。每行包含一个登录用户信息以冒号分隔九个域。示例[rootcentos7 ~10:39:54]# grep cyw /etc/shadowcyw:$6$e3uY3nq7$kieHl.ni3DoMiEw87gLI0l7AIEYdm/aoCL5sv9nCkO6zhkcL1RvEfH1TCKIeQENPw8F5ropDUuAQ6Fb/x13/G1:20648:0:99999:7:::解析login name用户登录名。encrypted password加密的密码。date of last password change上一次密码更改日期以距离1970-1-1过去的天数表示。设置为0强制用户下次登录时更改密码。minimum password age最小密码生命周期。设置为0密码可以随时更改。maximum password age最大密码生命周期。password warning period密码过期前提前多少天告警。设置为0不提示过期。password inactivity period密码过期后非活跃天数在期间密码仍可以使用。account expiration date账户过期时间以距离1970-1-1过去的天数表示。reserved field保留域。chage 命令[cywcentos7 ~10:46:07]$ chage-l用法chage[选项]登录 选项 -d,--lastday最近日期 将最近一次密码设置时间设为“最近日期” -E,--expiredate过期日期 将帐户过期时间设为“过期日期” -h,--help显示此帮助信息并推出 -I,--inactiveINACITVE 过期 INACTIVE 天数后设定密码为失效状态 -l,--list显示帐户年龄信息 -m,--mindays最小天数 将两次改变密码之间相距的最小天数设为“最小天数” -M,--maxdaysMAX_DAYSsetmaximum number of days before password change to MAX_DAYS -R,--rootCHROOT_DIRchroot到的目录 -W,--warndays警告天数 将过期警告天数设为“警告天数”# 查看用户密码信息[cywcentos7 ~10:46:13]$ chage-lcyw 最近一次密码修改时间 7月14,2026密码过期时间 从不 密码失效时间 从不 帐户过期时间 从不 两次改变密码之间相距的最小天数 0 两次改变密码之间相距的最大天数 99999 在密码过期之前警告的天数 7# 修改用户密码要求[rootcentos7 ~11:13:42]# chage -M 100 cyw[rootcentos7 ~11:14:51]# chage -l cyw最近一次密码修改时间 7月14,2026密码过期时间 10月22,2026密码失效时间 从不 帐户过期时间 从不 两次改变密码之间相距的最小天数 0 两次改变密码之间相距的最大天数 100 在密码过期之前警告的天数 7[rootcentos7 ~11:15:14]# chage -m 10 cyw[rootcentos7 ~11:16:17]# chage -l cyw最近一次密码修改时间 7月14,2026密码过期时间 10月22,2026密码失效时间 从不 帐户过期时间 从不 两次改变密码之间相距的最小天数 10 两次改变密码之间相距的最大天数 100 在密码过期之前警告的天数 7[rootcentos7 ~11:16:36]# chage -d 0 cyw# 验证[rootcentos7 ~11:17:09]# ssh cywlocalhostcywlocalhosts password: You are required to change your password immediately (root enforced) Last login: Sat Jul 18 10:08:30 2026 from 10.1.8.1 WARNING: Your password has expired. You must change your password now and login again! 更改用户 cyw 的密码 。 为 cyw 更改 STRESS 密码。 当前UNIX 密码 # 设置用户密码过期时间是过去的一个时间以便确保用户密码过期登录时强制用户更改密码 # 设置为1确保密码很久未改动 [rootcentos7 ~ 11:22:06]# chage -d 1 cyw [rootcentos7 ~ 11:24:08]# chage -E 1970-1-1 cyw [rootcentos7 ~ 11:24:34]# chage -l cyw 最近一次密码修改时间 1月 02, 1970 密码过期时间 4月 12, 1970 密码失效时间 从不 帐户过期时间 1月 01, 1970 两次改变密码之间相距的最小天数 10 两次改变密码之间相距的最大天数 100 在密码过期之前警告的天数 7 [rootcentos7 ~ 11:27:12]# ssh cywlocalhost cywlocalhosts password: Your account has expired;please contact your system administrator Authentication failed.usermod -p 更改用户密码# 更改cyw的密码与laowang一致[rootcentos7 ~14:04:40]# grep laowang /etc/shadowlaowang:$6$0y7mI11P$wQ2H1x3.EF1BnRyEuQpvL2bDLSo9TNwgg0TGDuOKdaYLKSR8jDMso.h3uOBSPz00rdWs/sYo5ZsiWHtjLQUaX.:20652:0:99999:7:::[rootcentos7 ~14:25:43]# usermod -p $6$0y7mI11P$wQ2H1x3.EF1BnRyEuQpvL2bDLSo9TNwgg0TGDuOKdaYLKSR8jDMso.h3uOBSPz00rdWs/sYo5ZsiWHtjLQUaX. cyw# 删除用户密码[rootcentos7 ~14:27:16]# usermod -p cywusermod -s 限定用户shell# 默认情况下root用户可以切换到任何用户而且不需要密码[rootcentos7 ~14:28:37]# su - laowang上一次登录六7月1814:03:18 CST 2026pts/1 上[laowangcentos7 ~14:29:22]$ 登出# 更改用户shell为 /sbin/nologin[rootcentos7 ~14:29:37]# usermod -s /sbin/nologin laowang[rootcentos7 ~14:30:51]# su - laowang上一次登录六7月1814:29:22 CST 2026pts/0 上 This account is currently not available.# 将用户shell改为/bin/bash[rootcentos7 ~14:31:03]# usermod -s /bin/bash laowang[rootcentos7 ~14:31:20]# su - laowang上一次登录六7月1814:31:03 CST 2026pts/0 上usermod -L 锁定用户密码等效于passwd -l[rootcentos7 ~17:19:14]# usermod -L laowang# 输入正确的密码也无法登录[cywcentos7 ~17:29:53]$su- laowang 密码 su: 鉴定故障usermod -U 解锁用户密码等效于passwd -u[rootcentos7 ~19:27:32]# usermod -U laowang[cywcentos7 ~19:29:04]$su- laowang 密码 上一次登录六7月1817:28:36 CST 2026pts/0 上 最后一次失败的登录六7月1817:30:02 CST 2026pts/1 上 最有一次成功登录后有1次失败的登录尝试。passwd -d 删除密码# 删除用户密码即可[rootcentos7 ~19:29:23]# passwd -d laowang清除用户的密码 laowang。 passwd: 操作成功#用户登录的时候输入用户名即可登录。设置账户过期等效于passwd -e# 设置账户过期时间为过去的某一个日期[rootcentos7 ~19:32:18]# usermod -e 2024-7-18 laowang#或者[rootcentos7 ~19:33:41]# chage -E 2024-7-18 laowang#验证[cywcentos7 ~19:34:47]$su- laowang 您的帐户已失效请与系统管理员取得联系 su: 用户帐户已失效增加一个 uid 为 0 的用户方法一# 将自己的用户id该为0此时laowanng用户可以行使root权限了[rootcentos7 ~19:42:37]# vim /etc/passwdlaowang:x:0:8891::/home/laowang:/bin/bash方法二#UID与root用户相同无法创建[rootcentos7 ~19:48:13]# useradd -u 0 laochenguseraddUID0并不唯一#添加-o选项强制执行[rootcentos7 ~19:57:17]# useradd -o -u 0 laocheng[rootcentos7 ~19:57:34]# id laochenguid0(root)gid0(root)组0(root)laocheng和 root 账户是两个不同的账户但是laocheng用户获得了root账户权限。其他 shell# 查看系统中 shell 清单[rootcentos7 ~19:58:02]# cat /etc/shells/bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/tcsh /bin/csh[rootcentos7 ~20:22:39]# ll /bin/sh /usr/bin/shlrwxrwxrwx.1root root47月1410:30 /bin/sh -bashlrwxrwxrwx.1root root47月1410:30 /usr/bin/sh -bash# 新增 tmux shell[rootcentos7 ~20:23:45]# yum install -y tmux[rootcentos7 ~20:28:07]# cat /etc/shells/bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/tcsh /bin/csh /usr/bin/tmux# 新增 c shell[rootcentos7 ~20:28:25]# yum install -y tcsh[rootcentos7 ~20:31:44]# ll /bin/csh /usr/bin/cshlrwxrwxrwx.1root root47月1410:43 /bin/csh -tcsh lrwxrwxrwx.1root root47月1410:43 /usr/bin/csh -tcshtmux 控制键 ctrlb:c新建一个会话N切换到N号会话例如数字1切换到1号会话。