【Linux】linux权限设置
文章目录一、shell1. shell概念2. 进程二、用户1. 用户分类2. 用户切换三、权限1. 临时权限提升2. 权限的属性3. linux中角色类别4. 第一列文件属性四、修改权限1. 修改文件权限2. 修改文件所属3. 修改文件权限八进制4. 粘滞位五、linux默认权限设置1. 默认权限2. 权限掩码linux/sentos是一个操作系统广义上,linux发行版 = linux内核版本
文章目录
linux/sentos 是一个操作系统
广义上,linux发行版 = linux内核版本 + 外壳程序(狭义上不包括)
外壳程序:shell、bash 对应windows系统下的gui,实质是图形界面
由于我们不能直接使用操作系统去操作,成本和权限问题存在
一、shell
1. shell概念
命令行解释器,将使用者命令翻译给kernel去处理,处理完把结果翻译回来
而sentos里面使用的是bash
对于非法请求,shell是有去权利进行拒绝的:
-
传递请求指令,让0S执行命令(这个过程shell会创建子进程去完成,这样就出现什么风险或者问题不会影响到shell
-
保护内核
2. 进程
程序运行起来是进程,shell本身也是一个进程
ps axj
可以查看进程 后可跟| grep bash
我的服务器只有我一个人登录
二、用户
1. 用户分类
linux中默认有两类用户
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做受限制,adduser创建的用户
2. 用户切换
-
普通
->
超级用户:su -
需要输入密码
-
root
->
普通用户:su - 用户名
无需输入密码
改密码
在当前用户下修改
passwd
如果是root
passwd username
后面跟用户名
exit or CTRL + D
可以退出普通用户身份到root- 每次使用su都会创建一个进程,尽量减少使用su跳转到root
三、权限
1. 临时权限提升
sodo
以root身份执行后面的语句,但也需要有权利……
需要加添信任关系
2. 权限的属性
用户 + 文件权限属性
文件权限:读,写,执行
3. linux中角色类别
- 拥有者 owner
- 所属组 group
- 其他 other
4. 第一列文件属性
linux不以文件后缀区分文件类型
- 一共十个字符
- 第一个字符,表示文件类型
d:文件夹
-:普通文件(文本,动静态库,可执行程序,源程序)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件 (通信)
c:字符设备文件(例如屏幕等串口设备、鼠标键盘)
s:套接口文件(软链接)
磁盘大小
linux下所有的东西都是文件,但gcc或者其他的编译器只会识别文件类型,它是处于操作系统之上的东西
- 剩下9个字符
- 3 + 3 + 3 为一组
- 拥有者 所属组 其他人 所具有的文件权限属性
- rwx必须按顺序,可读 可写 可执行
- -为否
四、修改权限
1. 修改文件权限
chmod
u
(拥有者)/g(所属组)/o(其他人)/a(所有人)+/- r/w/x
文件名- 多组修改可以使用逗号隔开u+r,g+w
root是几乎不受权限约束,除非root给自己添加权限
2. 修改文件所属
chown/grp
组名 文件名
但会发现根本不同意
因为需要root的权限
sudo chowngrp
组名 文件名
chown 个人名:组名
文件名
进入目录是修改x,进入目录也是个程序,因为进入,需要把下一级的地址给上一级(类似二叉树一样)
3. 修改文件权限八进制
chmod 777 文件名
7 7 7 八进制 111 111 111 rwxrwxrwx
4. 粘滞位
- 如果目录本身对other具有w权限,other可以删掉任何的目录下的文件
- 如果目录本身对other没有w权限,other不可以删掉任何文件
但如果想要别人可以在自己的组或个人当中创建文件,但不可以删除除他自己创建文件以外其他人的文件
chmod o+t
目录
此时还要保证other那w权限是开放的,不然还是删不了
只能对目录设置,一般是限制other权限的,设置了粘滞位的目录,只能文件的拥有者才可以删除文件
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除
五、linux默认权限设置
1. 默认权限
-
普通文件 起始权限 6 6 6
-
目录文件 起始权限 7 7 7
但我们看到的不是这样
2. 权限掩码
umask
- 什么是掩码
子网掩码等等……不过还没学网络……
大概就是
1111 想将 1 都变为0 通过
1111 & 0000 = 0000 来过滤掉 1 这个数字
但仅仅用且或者异或是不行的
思路转换为去掉当中特定的1
= 起始权限数 & ~(umask)
- 自定义默认权限
unmask 数字
但仅仅在本次登录有效
更多推荐
所有评论(0)