目录
用户:useradd —— 添加用户
passwd —— 修改密码
usermod —— 修改用户权限
权限 :chmod
cgowdn
linux安全模型
—— authentication:认证,验证用户身份 用户名和密码
—— authorization:授权,不同的用户设置不同权限
—— accouting|audition:审计
用户账号和组账号概述
—— Linux 基于用户身份对资源访问进行控制
用户账号(通过用户的 uid 身份证进行识别):管理员:root 、0
程序用户:CentOS 6 == 1 -- 499 ;CentOS 7 == 1 -- 999 ,不登录的用户系统默认的情况是给程序使用的
普通用户:CentOS 6 == 500 -- 60000 这个值是可以调整的
mihuyo :用户名
x :密码占位符
1000 :uid
1000 :组 id
mihuyo :备注信息
/home/mihuyo :家目录的位置
/bin/bash :默认加载 shell 类型
shell :登录时运行的程序(如果空的,使用 /bin/sh)
如果设为不存在的执行(程序),用户不能通过 login (1)登录
用户账号文件
—— 保存用户的密码、账号的有效期等信息
—— 文件位置:/etc/shadow ;密码文件
/etc/passwd ;用户信息
—— 每一行对应一个用户的密码记录
useradd
—— 新建用户
—— 新建用户的属性
useradd | 作用 |
---|---|
-u | 指定用户的 uid 号,要求该 uid 号码未被其他用户使用 |
-M | 不建立宿主目录位置,即使 /etc/login.defs 系统配置中已设定要建立宿主目录 |
-s | 指定用户的登录 shell /sbin/nologin |
-r | 随机生成系统用户,创建系统用户 |
-d | 指定用户的宿主目录位置(当与 -M 一起使用时,不生效) |
-e | 指定用户的账户失效时间;可使用 YYYY-MM-DD 的日期格式 |
-g | 指定用户的基本组名(使用 gid 号) |
-G | 指定用户的附加组名(使用 gid 号) |
-c | 备注信息(新建用户的默认设置) |
命令举例
useradd 用户名 -u 2000 -M -s /sbin/nologin -r
—— 新建普通用户(编码范围:1000--60000 )并且不创建家目录
echo 123123 | passwd root --stdin
—— 更改用户 root 密码为 123123
—— --stdin :标准输入
补充命令
chage 用户名
—— 修改用户的年龄信息
例:
id 用户名
—— 显示用户的 uid gid 组
例:
passwd
—— 修改密码
passwd | 作用 |
---|---|
-d | 清空密码,不需要使用密码登录 |
-l | 锁定用户 |
-u | 解锁用户 |
-S | 查看用户是否被锁定 |
usermod
—— 对已有用户进行属性修改
usermod | 作用 |
---|---|
-l | 改名(格式:usermod -l 新名字 旧名字) |
-U | 锁定用户 |
-L | 锁定用户 |
-u | 指定用户的 uid 号,要求该 uid 号码未被其他用户使用 |
-M | 不建立宿主目录位置,即使 /etc/login.defs 系统配置中已设定要建立宿主目录 |
-s | 指定用户的登录 shell /sbin/nologin |
-r | 随机生成系统用户,创建系统用户 |
-d | 指定用户的宿主目录位置(当与 -M 一起使用时,不生效) |
-e | 指定用户的账户失效时间;可使用 YYYY-MM-DD 的日期格式 |
-g | 指定用户的基本组名(使用 gid 号) |
-G | 指定用户的附加组名(使用 gid 号) |
-c | 备注信息(新建用户的默认设置) |
删除用户
userdel -r 用户名
—— 删除用户,包括家目录一起删除
用户账号的初始配置文件
文件来源
—— 新建用户账号,从 /etc/skel 目录中复制而来
—— cat /etc/default/useradd
主要的用户初始配置文件
—— 开机启动运行:~/.bash_profile
~/.bashrc
—— 关机时运行:~/.bash_logout
组账号文件
与用户账号文件相类似
—— /etc/group :保存组账号基本信息
例:
添加删除组成员 gpasswd
—— 设置组账号密码(极少用),添加、删除组成员
—— 格式:gpasswd 选项 用户名 组
gpasswd | 作用 |
---|---|
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔 |
添加组账号 groupadd (附加组)
groupadd -g 组账号名
例:
删除组账号 groupdel
groupdel 组账号名
查询账号信息
groups 用户名
—— 查询用户所属的组
finger 用户名
—— 查询用户账号的详细信息
—— 需要安装
w、who、users
—— whoami :我是谁
文件/目录权限
文件默认为:666
目录默认为:777
读 r :能看里面的内容
写 w :可以修改里面的内容
执行 x :一般对程序而言(一般都是绿色的,允许运行程序);目录必须要有的权限,无论在什么情况下目录一定要有执行权限
—— 一个普通文件能不能被删除和这个文件本身的权限没关系,只和文件所在的目录权限有关
一个文件的权限需要区别三类人
-
文件的拥有者 属主
-
文件的拥有组 属组
-
其他人 other 其他人
r | w | x | 二进制转十进制 |
---|---|---|---|
0 | 0 | 1 | 1 |
0 | 1 | 0 | 2 |
1 | 0 | 0 | 4 |
设置文件和目录的权限 chmod
—— 格式:chmod [ugoa](u、g、o、a 分别表示属主、属组、其他用户、所有用户) [+-=](+、-、= 分别表示增加、去除、设置权限) [rwx](r、w、x 分别表示读、写、运行权限) 文件/目录名
chmod ###(三位十进制数) 文件/目录名
常用选项:
—— -R :递归修改指定目录下所有子项的权限(多个目录递归,只有最后一层的目录和文件生效)
chown
—— 修改文件的属主和属组
格式:chown 用户名:用户名 文件名
(只改属主:chown 用户名 文件/目录名)
(只改属组:chown :用户名 文件/目录名)
—— -R :递归更改属主/属组(多个目录递归只有最后一层的目录和文件生效)
umask
—— 决定了文件的落地的权限
三种特殊权限
suid
—— 让普通用户临时拥有该文件的属主的执行权限, suid 权限只能应用在二进制可执行文件(命
令)上,而且 suid 权限只能设置在属主位置上
sgid
—— sgid 权限一般应用在目录上,当一个目录拥有 sgid 权限时,任何用户在该目录下创建的文件
的属组都会继承该目录的属组
sticky
—— 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
/tmp
—— 文件夹的作用:所有用户的临时文件都存在这
—— 权限加了t:除了属主和超级管理员之外,其他人都不能删除,只能对文件夹有用
访问控制列表:ACL
ACL
—— Access Control List,实现灵活的权限管理
—— 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
—— CentOS7 默认创建的 xfs 和 ext4 文件系统具有 ACL 功能
—— CentOS7 之前版本,默认手工创建的 ext4 文件系统无 ACL 功能,需手动增加