root:相似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root
用户登陆系统
普通用户:通常只在用户本身的宿主目录中有彻底权限
程序用户:用于维持系统或某个程序的正常运行,通常不容许登陆到系统。例如:bin
、daemon、ftp、mail等
复制代码
用户帐号信息保存于/etc/passwd
中,每一行对应一个用户的帐号记录,每行有7个字段,以冒号做为分隔符 用户名:密码:uid:gid:用户全名:宿主目录:登陆shell信息
linux
# /etc/passwd的字段:
user@computer: $ head -n 1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
复制代码
uid: 用户标识号, root的uid固定为0
gid: 组标识号,root的gid固定为0
程序用户的uid、gid: 1~999
普通用户/组使用的uid、gid:1000~60000
复制代码
通常/etc/passwd的第二个字段会以x占位符的形式出现,真正的密码存储于/etc/shadow
中shell
/etc/shadow每行对应一个密码记录,每行有九个字段,以冒号做为分隔符
字段1:用户账号的名称
字段2:加密的密码字串信息
字段3:上次修改密码的时间(距离1970.1.1)
字段4:密码的最短有效天数,默认值为0
字段5:密码的最长有效天数,默认值为99999
字段6:提早多少天警告用户口令将过时,默认值为7
字段7:在密码过时以后多少天禁用此用户
字段8:账号失效时间,默认值为空
字段9:保留字段(未使用)
复制代码
与用户账号文件相相似bash
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息
group文件内的最后一个字段中列出属于该组的用户成员(通常不包括基本组对应的用户账号),多个成员之间以逗号分隔
复制代码
当建立一个新的用户帐户时,若是没有指定该用户属于哪个组群,那么Linux就会建立一个和该用户同名的组群,这个组群就是私有组群,在这个私有组群中只包含这个用户 每一个用户有且仅有一个基本组ui
能够包含多个用户帐户, 一个用户帐户只能属于一个基本组, 能够属于多个附加组 属于本组补充组成员的用户列在/etc/group中加密
若是把一个用户加入到root组群,那么这个用户就能够浏览root用户主目录的文件;
若是root用户把把某个文件的读写执行权限放开,root组群的全部用户就能够修改次文件;
若是是可执行的文件,root组群的用户也能够执行。
复制代码
# useradd 添加用户
useradd [options] username
经常使用选项:
-u 指定用户ID
-G 指定用户的附属组(补充组)
-s 指定用户登入后所使用的shell
-d 设置登陆时使用的主目录
-M 不创建用户主目录
-g 主要组群名(该组群必须是现有存在的组群)
user@computer: ~$ useradd -u 4000 susa # 建立一个名为susa的用户,用户id为4000
user@computer: ~$ useradd -s /bin/ksh user1 # 建立用户user1,并设置该用户的shell类型为/bin/ksh
user@computer: ~$ useradd -g root manager # 建立用户manager, 并指定该用户是属于组群root的成员
user@computer: ~$ useradd –d /home/user0 user0 # 建立用户user0,并设置该用户主目录为/home/user0
user@computer: ~$ useradd –M –s /sbin/nologin user3 # 新增user3用户,不为用户创建并初始化宿主目录,用户不容许登录到系统的shell
复制代码
# passwd 配置用户密码
passwd [options] username
-l 锁定用户密码
-u 解锁用户密码
-d 删除用户密码
user@computer: ~$ passwd susa # 修改susa的密码
更改用户susa的密码:
新的密码:
从新输入新的密码:
passwd:全部的身份验证令牌已经更新
user@computer: ~$ passwd -l susa # 锁定susa的密码,用户user锁住后不能登陆到系统,可是可使用su命令从其余用户切换
user@computer: ~$ passwd -u susa # 解锁susa的密码
user@computer: ~$ passwd -d susa # 删除susa的密码
复制代码
# usermod 编辑用户帐号属性
usermod [选项] 用户名
经常使用选项:-u、-s
-s 修改用户登入后所使用的shell
-u 修改用户ID
复制代码
# userdel 删除用户账号:
userdel [-r] 用户名
-r 同时删除用户及主目录
复制代码
# change 改变用户密码期限:
chage [选项] 用户账号名
user@computer: ~$ chage –M 45 username # 设置密码在45天后过时
经过date命令计算将来的日期
date –d "+45 days" # 45天后过时
chage –E YYYY-MM-DD username # 密码过时的时间
chage –d 0 username # 强制用户在再次登陆时更新密码
复制代码
# groupadd 添加组帐号:
groupadd [-g] 组账号名
复制代码
# groupmod 组成员管理:
groupmod [选项] 组账号名
复制代码
# groupdel 删除组账号:
groupdel 组账号名
复制代码
# id 查询用户身份标识
id [username]
user@computer: ~$ id root # 查询root的uid,gid和组成员
uid=0(root) gid=0(root) groups=0(root)
若不指定用户名,则显示当前用户的帐号信息
复制代码
# groups 显示指定用户帐户的组群成员身份
groups [用户名]
复制代码
# su 切换到其余帐户进行登陆
su [options] [user]
复制代码