linux下添加删除,修改,查看用户和用户组
一、组操作
1、创建组:
1 | groupadd test #<strong>增加一个test组</strong> |
2、修改组
1 | groupmod -n test2 test #将test组的名子改成test2 |
3、删除组
1 | groupdel test2 #删除 组test2 |
4、查看组
a),查看当前登录用户所在的组 groups,查看apacheuser所在组groups apacheuser
b),查看所有组 cat /etc/group
c),有的linux系统没有/etc/group文件的,这个时候看下面的这个方法
cat /etc/passwd |awk -F [:] '{print $4}' |sort|uniq | getent group |awk -F [:] '{print $1}'
这里用到一个命令是getent,可以通过组ID来查找组信息,如果这个命令没有的话,那就很难查找,系统中所有的组了.
usermod:用来修改用户帐号的各项设定。
语法
1 | usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号] |
1 2 3 4 5 6 7 8 9 10 11 12 13 | 参数说明: -c<备注> 修改用户帐号的备注文字。 -d登入目录> 修改用户登入时的目录。 -e<有效期限> 修改帐号的有效期限。 -f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。 -g<群组> 修改用户所属的群组。 -G<群组> 修改用户所属的附加群组。 -l<帐号名称> 修改用户帐号名称。 -L 锁定用户密码,使密码无效。 -s<shell> 修改用户登入后所使用的shell。 -u<uid> 修改用户ID。 -U 解除密码锁定。 |
5、添加用户至用户组
1 | usermod -g usergroup user |
6、将用户移出用户组
gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow的管理工具,用于指定要管理的工作组。
选项详解:
1 2 3 4 5 6 7 8 9 10 11 | -a : 添加用户到组 -d : 从组删除用户 -A:指定管理员 -M:指定组成员和-A的用途差不多; -r:删除密码; -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。 |
1 | gpasswd -a userA groupB // 将userA添加到groupB用户组里面gpasswd -a userA groupA // 将userA设置为groupA的群组管理员 |
注意:添加用户到某一个组可以使用 usermod -G groupB userA 这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉,
所以想要添加一个用户到一个组,同时保留以前添加的组时,请使用gpasswd这个命令来添加操作用户。
二,用户操作
1、增加用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@krlcgcms01 mytest] # useradd --help Usage: useradd [options] LOGIN Options: -b, --base- dir BASE_DIR 设置基本路径作为用户的登录目录 -c, --comment COMMENT 对用户的注释 -d, --home- dir HOME_DIR 设置用户的登录目录 -D, --defaults 改变设置 -e, --expiredate EXPIRE_DATE 设置用户的有效期 -f, --inactive INACTIVE 用户过期后,让密码无效 -g, --gid GROUP 使用户只属于某个组 -G, -- groups GROUPS 使用户加入某个组 -h, --help 帮助 -k, --skel SKEL_DIR 指定其他的skel目录 -K, --key KEY=VALUE 覆盖 /etc/login .defs 配置文件 -m, --create-home 自动创建登录目录 -l, 不把用户加入到lastlog文件中 -M, 不自动创建登录目录 -r, 建立系统账号 -o, --non-unique 允许用户拥有相同的UID -p, --password PASSWORD 为新用户使用加密密码 -s, --shell SHELL 登录时候的shell -u, --uid UID 为新用户指定一个UID -Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping |
1 2 3 | root登录 useradd –d /kk/sam -m jiang 此命令创建了一个用户jiang,并将创建一个sam目录作为jiang的用户目录 passwd jiang #增加用户jiang,不要忘了给他设置密码,不然不能登录的。 |
当你添加一个新用户之后应为它创建一个家目录,否则
创建用户家目录:
2、修改用户
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 33 34 35 36 37 38 39 40 41 42 43 44 | usermod - 修改一个用户账户 大纲 usermod [选项] 登录 描述 usermod 修改系统账户文件和在命令行上指定的相关更改。 选项 usermod 可以接受的选项有: -a 将用户添加到附加组。只能和 -G 选项一起使用。 -c 用户密码文件中注释字段的新值。通常使用 chfn(1) 工具对其进行修改。 -d 设置用户的新登录目录。如果给了 -m 选项,当前主目录的内容将会移动到新主目录中,如果不存在,则创建。 -e 用户账户将被禁用的日期。日期以 YYYY-MM-DD 格式指定。此选项需要一个 /etc/passwd 文件。如果没有,将会创建一条 /etc/shadow 项目。 -f 密码过期之后,账户被彻底禁用之前的天数。0 表示密码过期时,立即禁用账户;-1 表示不使用这个功能。此选项需要一个 /etc/passwd 文件。如果没有,将会创建一条 /etc/shadow 项目。 -g 用户的新初始登录组的组名或数字代号。此组必须存在。用户主目录中,属于原来的主组的文件将转交新组所有。主目录之外的文件所属的组必须手动修改。 -G 用户还属于的附加组列表。组之间使用逗号分隔,没有空格。这些组需要遵守和 -g 选项中给的组同样的限制。 如果用户当前是一个组的成员,而这个组没有列在这里,用户将被从那个组里便删除。这个行为可以通过 -a 选项修改,这使用户追加到给出的附加组列表中。 -l 用户的名称将会从 LOGIN 修改为 NEW_LOGIN。不会更改别的任何东西。特别是,用户的主目录名和邮件池也需要手动修改以和新登录名对应。 -L 锁定用户的密码。这会在用户加密的密码之前放置一个“!”,可以快速禁用密码。您可以和 -p 或 -U 配合使用此选项。 注意:如果希望锁定账户(不仅仅是通过密码访问),您也需要设置 EXPIRE_DATE 为 1。 -m 将用户的主目录移动到新位置。这个选项只有和 -d (或 --home) 选项组合使用时才有效。 usermod 会改写文件的属主并复制模式、ACL 和扩展属性,但是稍后也可能需要手动修改。 -o 使用 -u 选项时,可以将用户 ID 改为非唯一的值。 -p 已经加密过的密码,就像 crypt (3) 返回的那样。注意:不推荐使用这个选项,因为密码(或加密过的密码)会被用户通过列出这个过程而看到。 密码将会写到本地的 /etc/passwd 或 /etc/shadow 文件。这可能会与您的机器有所不同,这根据 PAM 配置中的密码数据库配置而定。 -s 用户的新登录 shell 的名称。将此字段设置为空会让系统选择默认的登录 shell。 -u 用户 ID 的新数值。这个值必须是唯一的,除非使用了 -o 选项,必须是非负值。 |
1 | usermod -d /home/test -G test2 test #将test用户的登录目录改成/home/test,并加入test2组,注意这里是大G。<br>gpasswd -a test test2 #将用户test加入到test2组<br>gpasswd -d test test2 #将用户test从test2组中移除 |
3、删除用户
1 | userdel test #将test用户删除 |
4,查看用户
a、查看当前登录用户:w
b、查看自己的用户名:who
c、查看单个用户信息:finger id
d、查看用户登录记录
1 | lastb # 查看登录不成功的用户记录 |
e、查看所有用户:cat /etc/passwd |awk -F \: '{print $1}' 或 cut -d : -f 1 /etc/passwd
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)