Linux系统支持多个用户在同一时间内对系统的操作互不影响,其根本在于不同用户拥有不同的权限,且只能在自己的权限内进行工作。
用户与用户组的关系
一个用户可以属于一个组中,一对一
一个用户可以存在多个用户组中,有多个用户组的共同权限 一对多的关系
一个组中有多个用户 一对多关系
多个用户存在多个组中 多对多
UID 在/etc/passwd 可以找到对应用户名 GID在/etc/groud 可以找到对应的群组名
每个字段代表的含义:以:为分隔符
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell
用户名:root
密码:x 加密显示 真正的密码存放在/etc/shadow中
UID:0 超级用户 1-499是系统用户 500-65535是普通用户
GID:初始组和附加组
每个字段对应的含义:
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段 (目前了解能够看懂就可以)
组名:密码:GID:该用户组中的用户列表 (目前了解能够看懂就可以)
组用户的密码信息存储在 /etc/gshadow 文件
组名:加密密码:组管理员:组附加用户列表(目前了解能够看懂就可以)
一个用户可以所属于多个附加组,但只能有一个初始组,初始组是在创建用户时,系统默认创建的。
/etc/login.defs文件用于在创建用户时,对用户的一些基本属性做默认设置,如指定用户UID和GID的范围,用户的过期时间、密码的最大长度等等
添加新的用户账号 ,使用 useradd命令,其语法如下: useradd 选项 用户名 其中各选项含义如下: -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 指定用户的uid,如果同时有-o选项,则可以重复使用其他用户的标识号。 -m 建立用户时强制建立用户的家目录,在建立系统用户时,系统默认是带有-m useradd –d /usr/sam -m sam -d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录) useradd -s /bin/sh -g group –G adm,root -m gem 此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
/etc/default/useradd文件
可通过useradd -D -s /bin/csh 修改该文件的内容,可以根据需求来定制默认新用户。
passwd [选项] 用户名 S:查询用户密码的状态,也就是 /etc/shadow 文件中此用户密码的内容。仅 root 用户可用; -l:暂时锁定用户,该选项会在 /etc/shadow 文件中指定用户的加密密码串前添加 "!",使密码失效。仅 root 用户可用; -u:解锁用户,和 -l 选项相对应,也是只能 root 用户使用; --stdin:可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用; -n 天数:设置该用户修改密码后,多长时间不能再次修改密码,也就是修改 /etc/shadow 文件中各行密码的第 4 个字段; -x 天数:设置该用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段; -w 天数:设置用户密码过期前的警告天数,对于 /etc/shadow 文件中各行密码的第 6 个字段; -i 日期:设置用户密码失效日期,对应 /etc/shadow 文件中各行密码的第 7 个字段。 当以root用户修改lamp普通用户的密码可以使用如下命令: passwd lamp 普通用户只能使用passwd命令修改自己的密码
usermod [选项] 用户名 -c 用户说明:修改用户的说明信息,即修改 /etc/passwd 文件目标用户信息的第 5 个字段; -d 主目录:修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径; -e 日期:修改用户的失效曰期,格式为 "YYYY-MM-DD",即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段; -g 组名:修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID); -u UID:修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID); -G 组名:修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件; -l 用户名:修改用户名称; -L:临时锁定用户(Lock); -U:解锁用户(Unlock),和 -L 对应; -s shell:修改用户的登录 Shell,默认是 /bin/bash。 usermod -L lamp usermod -U lamp usermod -G root lamp usermod -c "tets" lamp usermod -d /xx/xxx lamp
chage [选项] 用户名 -l:列出用户的详细密码状态; -d 日期:修改 /etc/shadow 文件中指定用户密码信息的第 3 个字段,也就是最后一次修改密码的日期,格式为 YYYY-MM-DD; -m 天数:修改密码最短保留的天数,也就是 /etc/shadow 文件中的第 4 个字段; -M 天数:修改密码的有效期,也就是 /etc/shadow 文件中的第 5 个字段; -W 天数:修改密码到期前的警告天数,也就是 /etc/shadow 文件中的第 6 个字段; -i 天数:修改密码过期后的宽限天数,也就是 /etc/shadow 文件中的第 7 个字段; -E 日期:修改账号失效日期,格式为 YYYY-MM-DD,也就是 /etc/shadow 文件中的第 8 个字段。 chage命令可以令用户在第一次登录后,必须先修改密码,并利用新密码登录系统,此用户才能正常使用。
userdel -r 用户名 删除用户的同时删除用户的家目录
who 查看用户登录信息
su [选项] 用户名 -:当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。 -l:同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号。 -p:表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)。 -m:和 -p 一样; -c 命令:仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令 su - root qcj->root su -l qcj root->qcj su -c "useradd lamp1" root 不切换成root,但是执行useradd命令添加lamp1用户 exit 会退出切换的环境
groupadd 选项 用户组 groupadd -g 101 group2 此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101 groupdel 用户组 groupmod 选项 用户组 groupmod -g 102 group2 此命令向系统中修改了组group2,同时指定新组的组标识号是102 groupmod –g 10000 -n group3 group2 此命令将组group2的标识号改为10000,组名修改为group3。