目录
一、用户账号
1、用户账号概述
Linux基于用户身份对资源访问进行控制
用户账号
- 超级用户(root管理员,权限最高,ID为0)
- 普通用户(以CentOS7为例,UID在1-999(保留),创建账号从1000开始)
- 程序用户(伪用户,不能登录操作系统,只能正常运行服务,比如ftp和apache)
组账号
- 基本组(私有组)
- 附加组(公有组)
UID和GID
- UID(User IDentity,用户标识号)
- GID(Group IDentify,组标识号)
用户账号文件
/etc/passwd:保存用户名称,宿主目录等基本信息
root:x:0:0:root:/root:/bin/bash
从左往右顺序:root表示用户账号,x表示用户设有密码,0表示用户账号ID,0表示组账号ID,root表示用户说明,root表示宿主目录,/bin/bash表示登录shell二.
密码存贮/etc/shadow
etc/shadow:保存用户的账号、密码等有效信息 只有root有权限查看
kiva表示用户名
后面的乱码表示加密密码
两个:之间的空格表示最后一次修改的时间
0表示密码修改时间间隔
99999表示密码有效期
7表示密码需要修改前的警告天数
倒数第二个空格表示密码过期后的宽限天数
最后一个空格表示账号失效时间
二.账号管理
1.添加用户账号–useradd
命令格式:useradd [选项] + 要添加的账户名
选项 | 作用 |
-u | 指定用户的UID号,要求该UID号码未被其他用户使用 |
d | 指定用户的宿主目录位置(当与-M一起使用时,不生效)只能用绝对路径指定目录,且不需要事先创建目录 |
e | 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式 |
g | 指定用户的基本组名(或使用GID号),对应的组名必须已存在 |
-G | 指定用户的附加组名(或使用GID号),对应的组名必须已存在 |
-M | 不建立宿主目录。(一般用于系统用户账号) |
-s | 指定用户的登录Shell,(比如binbash为可登陆系统,IlsbinV/nologin和binfalse为禁止用户登陆系统) |
2.账户密码–passwd
root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。
普通用户却只能执行单独的“passwd"命令修改自己的密码。
命令格式:passwd [选项] +用户名
选项 | 功能 |
-d | 清空指定用户的密码,仅使用用户名即可登录系统 |
-l | 锁定用户账户,锁定的用户账号将无法再登录系统。(一定要事先设好密码) |
s | 查看用户账户的状态(是否被锁定). |
-u | 解锁用户账户 |
3.账户信息修改–usermod
命令格式:usermod [选项]+用户名
选项 | 作用 |
-u | 修改用户的UID号 |
-d | 修改用户的宿主目录位置 |
-e | 修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式 |
-g | 修改用户的基本组名(或使用GID号) |
-G | 修改用户的附加组名(或使用GID号) |
-M | 不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录 |
-s | 指定用户的登录Shell |
以上上面选项与useradd命令中的含义相同 | |
-l | 更改用户账号的登录名称格式: usermod-新名称旧名称 |
-L | 锁定用户账户 |
-u | 解锁用户账户 |
命令使用方法和useradd基本相同,锁定解锁账户与passwd也类似,不同在于passwd锁定的是/etc/passwd而usermod锁定的是/etc/shadow
4.账号删除–userdel
命令格式:userdel -r +用户名
5.修改账户密码有效期–chage
在前文中提到,用户密码存储在/etc/shadow中,并且字段中显示密码的有效期等信息,那么如何修改呢
chage [选项] +用户名
-d | 将最近—次密码设置时间设为"最近日期” |
-E | 过期日期将帐户过期时间设为"过期日期" |
-h | 显示此帮助信息并推出 |
-I(i) | lNACITVE过期INACTIVE天数后,设定密码为失效状态 |
-l | 显示账户年龄信息 |
-m | 将两次改变密码之间相距的最小天数设为"最小天数” |
-M | 将两次改变密码之间相距的最大天数设为"最大天数” |
-R | chroot到的目录 |
-w | 将过期警告天数设为"警告天数” |
创建普通账号并且对账号设置密码的最长有效30天;提前6天警告账号密码将过期 ,设置账户密码过期之后3天内禁用用户,账号失效时间10天
三.组账号概述
1.组账号分类
本组(私有组): 基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4段记录的即为该用户的基本组GID号。
附加组(公共组): 用户除了基本组以外,额外添加指定的组。
2.组标识(GID)
root用户账号的GID固定值0程序用户账号的GID默认为Centos7: 1~ 999普通用户的GID默认为Centos7: 1000~ 65535
3.组账号文件/etc/group
/etc/group:保存组帐号基本信息/etc/gshadow:保存组帐号的密码信息
字段1:组帐号的名称
字段2: 占位符“x”
字段3:组账号的GID号
字段4:组账号包含的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,"分隔
四.组账户管理
1.组账户添加–groupadd
命令格式:groupadd [-g Gid] +组账户名
2.组账户成员管理–gpasswd
命令格式:gpasswd [选项+用户名] +组名
选项 | 作用 |
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔*"(重新定义,不是追加)** |
3.组账户删除–groupdel
命令格式:groupdel + 组名
4.查询用户账号所属组–groups
命令格式:groups +用户名
五.文件/目录的权限及归属
在Linux文件系统的安全模型中,为系统中的文件赋予了两个属性:访问权限和文件所有者,简称**“权限”和“归属”**。其中访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用于账号)、属组(拥有该文件的组账号)。Linux系统根据文件和目录的访问权限、归属来对用户访问数据的过程进行控制。
-rw-r--r--. 1 root root 11160291 7月 24 17:38 etc.tar.gz
如上:第一个“-”表示的是文件类型:“-”表示普通文件,d为目录,b为块设备文件,c字符设备文件,l连接文件
“rw-”:代表文件所属的用户权限类型
“r–”:代表文件属组权限类型
“r–”:代理其他用户对文件的权限
第一个root:代表属主
第二个root:代表属组
1.设置文件/目录权限–chmod
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 4 | 2 | 4 | 2 | |||
权限分配 | 文件所有者 | 文件所属组 | 其他用户 | ||||||
八进制数表示 | 7 | 7 | 7 |
读取 r :允许查看文件的内容、显示目录列表 ;r=4
写入 w :允许修改文件内容,允许在目录中新建、移动、删除文件或子目录;w=2
可执行 x :允许运行程序、切换目录。x=1
常用选项:== -R==:递归修改指定目录下所有子项的权限(
“ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表文件组内的用户,“o”代表其他任何用户长度有用户(ugo的总和);“+ - =”表示设置权限的操作动作。“+”号代表增加权限,“-”号代表减少相应权限,“=”号代表仅设置对应的权限;
2.设置文件目录归属–chown
命令格式:
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
常用选项: -R:递归修改指定目录下所有子项的权限(包括目录中的文件)
3.unmask
设置目录和文件的默认权限;
指定目前用户在新建文件或目录时的权限默认值;
新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)
格式:umask查看: umaskumask设置: umask 000