用户和组
linux系统的用户管理
一,分类:
1.超级用户:具备超级管理权限(其权限不受系统限制)
2.普通用户: 具备普通管理权限(权限受限,但通过超级用户授权)
超级用户指的是:root
普通用户分成两类:
1,系统用户:该用户主要给系统应用,服务,程序使用
2,真实用户:该类用户有管理员创建,用于维护人员操作系统
区分用户
linux系统通过uid(用户编号)来区分用户身份
uid userid 用户编号:具有唯一性的特点
查询命令:id USERNAME
0为root(超级管理)
非0为普通用户
其中:
1-200 为保留用户,系统不会自动分配,自行使用。
201-999为系统用户(红帽6是前是1-499)
1000+为真实用户(红帽7 1000-6w 红帽6是500-6w)
题外话:计算机界最大的整数是65535
用户最多能创建到:4294967294
2^32-2
注意:
vim /etc/login.defs 查看真实用户uid的范围(大约在34行)
vim /etc/passwd 查看用户信息文件路径
二,用户管理命令
1,添加用户:
useradd USENAME
指定用户的uid
useradd -u UID USERNAME
useradd -r UID USERNAME(推荐)
2,删除用户:
userdel USERNAME 仅删除用户
userdel -r USERNAME 删除用与其家目录
3,修改用户:
usermod -l NEWNAME OLDNAME 改名
usermod -u UID USERNAME 修改id
用户管理命令详解(增删改查)
useradd 添加用户
语法:useradd USERNAME
useradd -u UID username 指定用户的id,如不指定,则会在最后的id上加1
useradd -ou UID username 指定用户的uid已经被使用,系统会提示错误,这个时候可以使用-o(与其他用户使用相同id o(over)覆盖前一个已有ID)
useradd -g GID username 指定用户初始群组,指定的id必须已经存在
useradd -G GID username 指定用户附属群组,指定的id必须已经存在
useradd -c “COMMON” username 指定用户描述,如果描述中有空格,需要通过引号括起
useradd -d /PATH/ username 指定用户的家目录,路径要写绝对路径(该目录不需要提前创建)
useradd -s /PATH/FILENAME username 指定用户的shell
useradd -M username 不自动创建家目录
“”可以消除用户间的空格,用来创建多个用户
vim /etc/default/useradd 用户添加默认文件
usermod 修改用户
语法:usermod [选项] username
usermod -u UID username 修改用户的id
usermod -l NEWNAME OLDNAME 修改用户名称
usermod -g GID username 修改用户初始群组
usermod -G GID username 修改用户附属群组
usermod -c “COMMON” username 修改用户描述
usermod -d /PATH/ username 修改用户的家目录
usermod -s /PATH/FILENAME username 修改用户的shell
查找
id 查看用户id等信息
语法:id username
三,用户密码
passwd
修改当前用户密码(如果是非root用户,需要输入用户的原密码,root用户不需要修改原密码)
仅root 可用的命令:
passwd USERNAME 修改指定用户密码,
passwd -d USERNAME 删除用户密码
passwd -l USERNAME 锁定用户,效果:无论该用户输入的密码是否正确都无法登录。下一条命令告诉你怎么解锁。
passwd -u USERNAME 解锁用户
usermod- L USERNAME =passwd -l USERNAME
usermod-U USERNAME =passwd -u USERNAME。如果不使用这两种还可以通过重新设置用户密码方式解锁,但是passwd的功能更强大
passwd -S USERNAME 查询用户密码状态
echo"PASSWROD"| passwd --stidin USENAME
非交互设置用户密码(可以一次到位,原命令需要步骤较长)
echo “nimei ” | passwd –stdin nidaye 参数会将前面输出文本,加密后设置成用户密码
用户密码文件路径:/etc/shadow
举例:root:$1$S8cqveod$vCExYDYPWKbQTE51jxi4D.:16444:0:99999:7:::
分割符号::
username:用户帐号
password:加密后的文本密码
last_changed:最后一次修改日期,没有直接显示日期,而是记录天数,从1970年1月1日始,至修改日
min_days:密码修改最小天数,假如该项为10,那就表示新密码生效后,十天内不可再修改
max_days:密码修改最大天数,假设该项为30,那就表示新密码生效后,30天内必须修改新密码
warnning:密码过期警告天数,假设该项为7,那么linux系统会在密码过期前7天开始提醒用户
expires:密码过期日期,需要从1970年1月1日算,如果该项为空,则表示密码用不会过期
disabled:帐号是否锁定,如果为0,则帐号被锁定,如果非0,则代表没锁定
四,配置文件:
用户信息配置文件:
vim /etc/passwd
显示内容举例:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
penndu:x:1000:1000:Penn Du:/home/penndu:/bin/bash
分割符号::
username 用户名称,用于登录,不允许用数字开头(实际上可以用,红帽6可以用数字)不建议使用大写的字母(为了不混淆),不允许使用特殊的符号 ^_^
x 密码,如果该位为空,则本地登录时无需验证密码(但不可以远程登录)如本位不为空,则系统会到/etc/shadows中查找该用户的密码
uid 用户编号,0为超级用户,非0都是普通用户,理论不允许id相同
gid 初始群组,与windows系统不用的是,windows是通过将用户添加到管理员群组内赋予权限,而linux需要将用户的uid改为0
common 用户描述
homedir 用户的家目录,需要指定绝对路径
shell 用户的shell,代表用户可以执行哪些命令(与用户的权限无关)
五,群组管理
群组分类
1,超级用户群组:名称为root的群组,且gid(group id群组编号)为0,超级用户群组并不具备管理权限,只是方便群组划分
2,系统用户群组:同系统用户相同,是为系统程序,服务提供群组划分
3,真实用户群组:同真实用户一样,是为维护人员,提供群组划分,如果该群组的名称,与用户名相同,我们可称之为私有群组
群组操作命令
groupadd 群组添加
语法:
groupadd 群组名称 添加一个群组
groupadd -g 1000 nimei 用指定的gid添加群组nimei
groupadd -r nimei 指定添加的群组为系统群组
群组信息文件路径:/etc/group
root:x:0:root
penn:x:500:
分割符号: :
groupname:存放群组名称,如果与用户名同名,一般为私有组
x:代表密码,所以说群组也是可以设置密码的,密码文件保存在/etc/gshadow
gid:不限制多用户使用同一个gid
members:群组成员,如有多个成员,需要使用英文逗号隔开
groupmod 群组修改
语法:groupmod -n mimi nimei 将nimei这个群组更名为mimi
groupdel 群组删除
语法:groupdel 群组名称 删除一个群组
gpasswd 修改群组密码
语法:gpasswd 群组名称 修改群组密码,可以使用-r参数删除群组的密码,也可使用-R参数来锁定群组密码
群组密码文件路径:/etc/gshadow
root:::root
分割符号::
groupname:群组名称
password:群组密码,当该项为!时,则代表该群组已经锁定
administrators:群组的管理员,一个群组可以有多个管理员,管理员之间用英文逗号隔开
members:群组成员名单,同/etc/group最后一个字段,成员之间用英文的逗号隔开
几个关键路径:
vim /etc/login.defs 查看真实用户uid的范围(大约在34行)
vim /etc/passwd 用户信息文件路径
vim /etc/shadow 用户密码文件路径
群组信息文件路径:/etc/group
群组密码文件路径:/etc/gshadow