一、用户账号和组账号概述
1、用户分类
- 超级用户:root用户是linux系统中默认的超级用户账号,类似于windows中administrator用户,一般维护系统才用root,日常处理用普通用户
- 普通用户:普通用户是由root用户或管理员创建,权限小,一般只在自己宿主目录中拥有完整权限
- 程序用户:安装程序时,会添加一些特定的低权限用户,这些用户不允许登陆系统而用于维持系统程序正常运行(自动创建用户)如:ftp用户;安装程序自动安装
2、 组账号(如果对组账号设置权限将适用于组内每一个成员)
- 将多个用户集中在一起称为组,每一个用户都至少拥有一个组,这个组称为基本组(或私有组),若该用户还在其他组中,则这些组称为该用户的附加组(或公共组)
3、UID(用户)和GID(组)
- UID为linux系统中每个用户的数字身份标识(用户识别号),每个用户UID号是唯一的,root用户账号UID号固定为0,程序UID号默认1-999,普通用户UID号1000-6000
- 与UID相似,不同的是GID为组账号身份标识,root用户账号UID号固定为0,程序UID号默认1-999,普通用户UID号1000-6000
二、用户账号管理
1、用户账号文件(与用户配置文件有两个)
- etc/passwd 存储用户基本信息
第一字段:用户账户名称,登陆系统使用识别名称
第二字段:经过加密的用户密码字串,或者密码占位符“x”
第三字段:用户账号UID
第四字段:所属基本组账号GID
第五字段:全用户名
第六字段:宿主目录
第七字段:登陆shell等信息,用户登陆完成后所在的默认工作目录 - /etc/shadow 存储用户密码信息
第一字段:用户账号名称
第二字段:哈希算法加密信息,如果为空则无需密码即可登陆
第三字段:上次修改密码时间,表示从1970年01月01日算起到最近一次修改天数
第四字段:密码最短有效天数,自本次修改多少天才能登陆,默认值为0,表示不进行限制
第五字段:密码最长有效天数,自本次修改多少天才能再次修改,默认99999,表示不进行限制
第六字段:提前多少天警告用户密码将过期,默认为7
第七字段:密码过期多少天禁用此用户
第八字段:账号失效时间,此字段指定用户作废多少天数,默认为空,表示账号永久使用
第九字段:保留字段,目前没有特定用途
2、添加、用户账号
- useradd 【选项】 用户名
创建用户信息存储在:etc/passwd(基本信息) etc/shadow(密码信息)
若未明确所属目录则在/home目录下自动创建与该账号同名宿主目录
若未明确所属组则自动创建与账号同名基本组,则默认保存在etc/group etc/gshadow
-u:指定用户UID号,要求该UID号不被其他用户使用
-d:指定用户宿主目录 (与-m使用时不生效)
-e:指定用户账号失效时间可使用 (年—月—日)的日期格式
-g:指定用户的基本组名 (或使用GID号)
-G:指定用户的附加组名 (或使用GID号)
-M:不建立宿主目录
-s:指定用户的登录shell - 为用户账号设置密码
Passwd 【用户名】
-d:清空指定用户密码,仅使用用户名即可登陆系统
-l:锁定用户账户
-S:查看用户账户的状态
-u:解锁用户账户 - uermod命令——修改用户账号属性
uermod 【选项】 用户名
-u:修改用户的UID号
-d:修改用户的宿主目录位置
-e:修改用户账户失效时间 可使用(年—月—日)的日期格式
-g:修改用户的基本组名(或使用GID号)
-G:修改用户的附加组名(或使用GID号)
-s:指定用户的登陆shell
-l:更改用户账号的登陆名称
-L:锁定用户账号
-U:解锁用户账号 - userdel命令——删除用户账号
-r 同时删除宿主目录 - 用户账号的初始配置文件
添加一个用户后,useradd命令会在该用户宿主目录中建立一些初始配置文件,这些文件来自账号模板目录etc/skel/,不过都是隐藏文件,常用的包括“bash_logout”、“bash_profile”、“bashrc”。
①“bash_profile”文件中命令将在该用户每次登陆时被执行
②“bashrc”文件中命令会在每次加载“/bin/Bsah”程序(包括登陆系统)时执行
③“bash_logout”文件中命令将在用户每次退出时被执行
三、组账号管理
- 组账号配置文件
/etc/group(组账号名称、GID号、组成员基本信息)
/etc/gshadow(组账号密码加密字符串等信息) - 添加组账号
groupadd 组名称 - 删除组账号
groupdel 组名称 - 添加用户到组
gpasswd -a 用户名 组名 - 将组用户删除
gpasswd -d 用户名 组名 - 修改组GID
groupmod -g GID号 修改组名 - 查看组内用户
[root@localhost ~]# cat gpasswd /etc/group - 查看组内特定用户
[root@localhost ~]# grep zhangsan /etc/group
wheel:×:10:benet,zhangsan
四、查询账号信息
- 查询用户账号所属组
groups 用户名 - 查询用户账号身份标识
Id 用户名
如:用户111所属UID号,组GID,以及所在的附加组ID号,输出结果中,GID和组(groups)部分第一个账号对应用户基本组,组部分的其他组账号为该用户附加组
五、管理目录和文件属性
- 第一个字母开头
—开头:普通文件
d开头:(目录)文件夹
b开头:设备文件(块设备)存储设备
c开头:设备文件(字符文件)字符文件
l开头:软连接文件(快捷方式) in -s 对象文件 创建名字 - 后面字母(2-10)
(—:没有权限)(r:可读权限【4】)(w:可写权限【2】)(x:执行权限【1】)
2~4:(user) 所有者权限
5~7:(group)所属组权限
8~10:(Other)其他用户权限 - 更改目录权限
Chmod:[-+=] [所属目录] - 更改目录所有者
Chown: 属主[:属组] [所属目录] - 更改目录所属目录
Chgrp: 属主[:属组] [所属目录]