Linux用户身份与文件权限学习笔记
用户身份
- 管理员UID为0:系统的管理员用户
- 系统用户UID为1~999:服务程序会有独立的系统用户负责运行;防止被黑客入侵进行提权,并有效控制被破坏的范围
- 普通用户UID从1000开始:是由管理员创建的普通用户的UID默认是从1000开始的(即使前面有空置的UID)
UID(User IDentification):UID具有唯一性,可以通过UID进行区分用户的身份
GID(Group IDentification):可以把多个用户加入到一个组,方便分配权限
在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组被称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组。
useradd
useradd [选项] 用户名
# 创建新的用户
# 默认家目录保存路径:/home/用户名
# 默认Shell解释器路径:/bin/bash
# 默认会创建一个与该用户同名的基本用户组
groupadd
groupadd [选项] 组名
# 创建用户组
usermod
usermod [选项] 用户名
# 修改用户的属性
# 用户信息配置文件:/etc/passwd
passwd
passwd [选项] [用户名]
# 修改用户密码,国企时间,认证信息等
userdel
userdel [选项] 用户名
# 用于删除用户
# -f 强制删除用户
# -r 同时删除用户及家目录
文件权限与归属
在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符加以区分
常用的文件类型字符
字符 | 说明 |
---|---|
- | 普通文件 |
d | 目录 |
l | 链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
文件权限的字符与数字表示
权限分配 | 文件所有者 | 文件所有组 | 其他用户 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 | |||
字符表示 | r | w | x | r | w | x | r | w | x | |||
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
文件权限的数字表示法基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示
文件的特殊权限
SUID(u+s)
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
对象所有者具有x权限,则会是 小写s,否则是 大写字母S;例如:rwx => rws | rw- => rwS
SGID(g+s)
- SGID让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
- SGID在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
- 与SUID不同点在于执行程序的用户获取的不再是文件所有者的权限,而是获取到文件所属组的权限
对象所有组具有x权限,则会是 小写s,否则是 大写字母S;例如:rwx => rws | rw- => rwS
SBIT(o+t)
SBIT(Sticky Bit)特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件
对象 other位的执行(x)权限,如果具备x权限,则会替换成 小写t,否则会替换成 大写T
文件的隐藏属性
Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉
chattr
chattr [参数] 文件
# 设置文件的隐藏权限
# “+参数” : 将隐藏权限添加到文件上
# “-参数” : 将隐藏权限从文件上移除
# “=参数” :使它们成为文件唯一的属性
# symbolic mode is +-=[acdeijstuACDST]
lsattr
lsattr [参数] 文件
# 显示文件的隐藏权限,使用ls命令看不到隐藏权限
文件访问控制列表(FACL)
一般权限、特殊权限、隐藏权限其实有一个共性,就是权限都是针对某一类用户设置;如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)。
setfacl
setfacl [参数] 文件名称
# 管理文件的ACL规则;使用setfacl命令可以针对单一用户或用户组对单一文件或目录来进行读/写/执行权限的控制
# -R :针对目录递归操作
# -m :针对普通文件
# -b :删除ACL
设置ACL后,使用 ls -l 命令查看文件的权限会发现 权限位 后面的 点(.) 变成了 加(+)号
getfacl
getfacl 文件
# 显示文件上设置的ACL信息
su命令与sudo服务
su命令可以解决切换用户身份的需求
su [选项] 用户名
# 默认情况下不更改当前目录并仅设置环境变量HOME和SHELL(加上USER和LOGNAME(如果目标用户不是root用户)
# - 或 --login选项将通过Shell进行登录,等同注销并重新登录
sudo命令把特定命令的执行权限赋予给指定用户;等同于给普通用户提供额外的权限来完成原本root管理员才能完成的任务
sudo [参数] 命令名称
# sudo允许允许的用户以超级用户身份执行命令,或者安全策略指定的另一个用户。
# visudo命令配置用户权限(只有root管理员)
# sudo配置文件位于:/etc/sudoers
# 配置的命令需是绝对路径
Linux用户身份与文件权限学习笔记的更多相关文章
- linux用户身份和文件权限
1.用户身份与能力 root管理员是linux 的超级用户,他拥有系统的所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭服务进程,开启/禁用硬件设备…… "Linux系统中的管理 ...
- linux用户身份与文件权限
用户 useradd [ 参数 ] 用户名 添加用户 sudo useradd -d /home/test -u 1001 -s /bin/bash name usermod [选项] 用户名 更改用 ...
- Linux学习之用户身份与文件权限
Linux学习之用户身份与文件权限 1 用户身份及能力 Linux系统的管理员之所以是root,并不是因为其名叫root,而是该用户身份号码数值(UID)为0. 管理员UID为0:系统的管理员用户 系 ...
- 《Linux就该这么学》培训笔记_ch05_用户身份与文件权限
<Linux就该这么学>培训笔记_ch05_用户身份与文件权限 文章最后会post上书本的笔记照片. 文章主要内容: 用户身份与能力 文件权限与归属 文件的特殊权限 文件的隐藏属性 文件访 ...
- Linux - 用户管理与文件权限
目录 Linux - 用户管理与文件权限 创建普通用户 切换用户 userdel删除用户 sudo 命令 文件与目录权限 Linux权限的解读 目录权限 查看用户权限的命令 文件权限 修改权限的命令 ...
- linux用户管理和文件权限
linux用户管理和文件权限 新建用户:useradd ftpuser useradd -g gxx userxx修改密码:passwd ftpuser新增用户组:# groupadd gr ...
- Linux 用户管理 与 文件权限
Linux 用户管理 与 文件权限 用户组操作 1.groupadd命令 groupadd [-g -o] gid group 各个选项具体含义如下: -g:指定新建用户组的GID号,该GID号必须唯 ...
- Linux 用户身份与进程权限
在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限.ugo 权限信息是文件的属性,它指明了用户与文件之间的关系.但是真正操作文件的却是进程,也就是说用户所拥有的文件访 ...
- 6Linux用户身份与文件权限
3类用户身份: (1)管理员UID为0,root (2)系统用户UID为1-999:nologin不能登录系统,老版本5.6中是1-499 (3)普通用户UID为1000开始,老版本5.6中是1000 ...
随机推荐
- web安全之cookie伪造
我们注册一个用户登陆上 Cookie都是351e766803开头 我们猜把351e766803后面的值改成admin的md5值 351e766803 21232f297a57a5a743894a0e4 ...
- idea教程--快速插入依赖
1.打开pom.xml文件,按下快捷键Alt+insert,弹出Generate框,选择Dependency. 2.搜索所需jar的关键字. 3.点击add.添加jar包成功.如果第二步没有所要jar ...
- Android studio常用快捷键导包的设置
下面是一些快捷键的使用还有快速导包的设置 1. Ctrl+G 同时按下Ctrl+G快捷键弹出快速定位框,在框中输入行数点击OK即可快速切换到对应的行数,如图2.17所示. 2. Ctrl+E 同时按下 ...
- ImageView和使用第三方库加载网络图片
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android: ...
- MySQL之InnoDB存储引擎 - 读书笔记
1. MySQL 的存储引擎 MySQL 数据库的一大特色是有插件式存储引擎概念.日常使用频率最高的两种存储引擎: InnoDB 存储引擎支持事务,其特点是行锁设计.支持外键.非锁定读(默认读取操作不 ...
- Java中ArrayList和LinkedList的异同
一:ArrayList和LinkedList的大致区别如下: 1.ArrayList是实现了基于动态数组的数据结构,ArrayList实现了长度可变的数组,在内存中分配连续的空间.遍历元素和随机访问元 ...
- LeetCode-026-删除有序数组中的重复项
删除有序数组中的重复项 题目描述:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 ...
- webpack--性能优化之打包构建速度和代码调试优化
前言 本文来总结写webpack 在性能方面常见的优化方案. 正文 本文分别总结开发环境和生产环境中在打包构建速度和代码调试功能方面的优化方案,如下: 1.开发环境性能优化 (1)优化打包构建速度 a ...
- Docker-镜像常用命令&安装Mysql\Nginx\ES\Kibana练习
目录 前言: 一.常用命令 1.帮助命令 2.查看现在本地有哪些镜像 3.镜像搜索&下载&运行&停止&删除 镜像搜索 镜像下载 不指定版本下载 指定版本下载 运行镜像 ...
- SQL从零到迅速精通【表连接查询】
看了这些表连接,个人感觉'左外连接'.'右外连接'和'全外连接'应用好就可以了. 1.外连接 (1)LEFT JOIN(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录. 在student ...