linux用户分类
root:类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root
用户登录系统
普通用户:一般只在用户自己的宿主目录中有完全权限
程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin
、daemon、ftp、mail等
复制代码
用户账号文件
用户账号信息保存于/etc/passwd
中,每一行对应一个用户的账号记录,每行有7个字段,以冒号作为分隔符 用户名:密码:uid:gid:用户全名:宿主目录:登录shell信息
# /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
中
/etc/shadow每行对应一个密码记录,每行有九个字段,以冒号作为分隔符
字段1:用户帐号的名称
字段2:加密的密码字串信息
字段3:上次修改密码的时间(距离1970.1.1)
字段4:密码的最短有效天数,默认值为0
字段5:密码的最长有效天数,默认值为99999
字段6:提前多少天警告用户口令将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
复制代码
组账号文件
与用户帐号文件相类似
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
group文件内的最后一个字段中列出属于该组的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号分隔
复制代码
组帐号:
基本组(私有组,主要组)
当创建一个新的用户账户时,如果没有指定该用户属于哪一个组群,那么Linux就会创建一个和该用户同名的组群,这个组群就是私有组群,在这个私有组群中只包含这个用户 每个用户有且仅有一个基本组
附加组(公共组,补充组)
可以包含多个用户账户, 一个用户账户只能属于一个基本组, 可以属于多个附加组 属于本组补充组成员的用户列在/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]
复制代码