Linux用户和用户组管理
参考网站:https://www.runoob.com/linux/linux-user-manage.html
注意:以下命令由于权限问题,常在前面加sudo提高权限。
添加一个账户
useradd 选项 用户名
useradd –d /home/sam -m sam #没有-d参数,则创建的用户无家目录
useradd -m username #在/home/目录下创建用户username
选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。不指明默认: / home/username
-g 用户组 指定用户所属的用户组。默认加入同名组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。如/sbin/nologin
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。选项可并列。
删除账号
userdel 选项 用户名
userdel -r sam #无-r参数则,无法删除用户的主目录。
常用的选项是 -r,它的作用是把用户的主目录一起删除
修改账号
usermod 选项 用户名
usermod -s /bin/ksh -d /home/z –g developer sam
将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer
选项:-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与
useradd命令中的选项一样,可以为用户指定新值。-l 改成新用户名。
用户口令(用户密码)的管理
用户账号刚刚建立时,无口令,但被系统锁定,无法使用。必须为其指定口令才可以使用,即使是空口令。超级用户可以为自己和他人设定口令,普通用户只能修改自己的口令。
passwd 选项 用户名
passwd sam //修改sam密码
passwd -S sam //查看sam的密码信息
- -l 锁定口令,即禁用账号,使其无法登录。
- -u 口令解锁。
- -d 使账号无口令。删除用户密码。
- p-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。只用passwd也是修改当前用户的密码。
Linux系统用户组的管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组管理包含:用户组的增加,删除和修改,实际操作对象时/etc/group文件。
增加一个新的用户组
groupadd 选项 用户组名称
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
删除一个已有的用户组
groupdel 用户组名称
groupdel group1
修改用户组的属性
groupmod 选项 用户组名称
groupmod -g 102 group2
将组group2的组标识号修改为102。
groupmod –g 10000 -n group3 group2
将组group2的标识号改为10000,组名修改为group3。//选项可并列
选项
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n 将用户组的名字改为新名字
用户在用户组之间的切换(一个用户可以同时属于多个用户组,为了获得其他用户组的权限)
与用户账号有关的系统文件
用户管理实际上是对系统文件进行修改。与用户和用户相关的的信息都存放在系统文件中,它们包含:/etc/passwd,/etc/shadow,/etc/group等。
/etc/passwd文件用户管理时最重要
该文件记录了每个用户的基本属性,且可读。
每行记录的格式如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
字段名称 | 说明 |
---|---|
用户名 | 不超过8字符,冒号不允许,点不好。 |
口令 | 大多linux系统使用了shadow技术,把加密后的明文存在/etc/shadow文件中。所以显示为一个字符x或* |
用户标识符 | 是一个整数。若几个用户名对应同一个用户标识符,系统内部将他们看作同一个用户,但他们可以由不同口令,主目录,登录shell。0是超级用户root的表示,linux中,1500是系统管理账号,50065535是普通用户的标识符。 |
组标识号 | 记录用户所属的用户组,它对应着/etc/group文件中的一条记录。 |
注释性描述 | 记录用户个人情况,如真实姓名,电话,住址等。无用。 |
主目录 | 是用户在登录到系统之后所处的目录。(注意:用户创建文件时,必须在主目录下面) |
登录shell | Shell是用户与Linux系统之间的接口,shell有多种,默认用sh做登录shell,即该字段为:/bin/sh。用户的登录shell可以是某个特定的程序,据此,可以限制用户只能运行特定的程序,程序运行结束时,用户就退出了系统。 |
/etc/group存放用户组的所有信息
组和用户是多对多的关系。用户属于多个组时,此文件记录用户所属的主组(登录时所属的默认组),其他组称附加组。用户切换到附加组用newgrp命令。
该文件记录的格式:
组名:口令:组标识号:组内用户列表
口令指该组口令。linux默认没有。为空,或者为x,*。组标识用于系统内部组的识别。
添加批量用户
添加单个用户用useradd,但添加大量用户不方便。
方法如下:
-
先编辑一个文本用户文件。
文本文件(user.txt)每行格式与/etc/passwd 格式一样。但每行中,用户名,UID,主目录不可一样。口令可空。如:
user001::600:100:user:/home/user001:/bin/bash user002::601:100:user:/home/user002:/bin/bash user003::602:100:user:/home/user003:/bin/bash user004::603:100:user:/home/user004:/bin/bash user005::604:100:user:/home/user005:/bin/bash user006::605:100:user:/home/user006:/bin/bash
2.以root身份执行命令newusers。从建立的文件中导入数据,创建用户。
sudo su //切换到root身份
newusers < user.txt //导入数据,创建新用户。用cat /etc/passwd 查看是否创建成功
3.执行命令pwunconv(非root身份)
4.编辑用户密码文件(passwd.txt)
格式为:
用户名:密码
例如:
user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456
5.以root身份运行chpasswd命令
chpasswd < passwd.txt
6.确定密码经编码写入/etc/passwd中后。执行pwconv命令。