Linux基础3(文件权限)
文件权限
1、普通权限
(登陆用户对文件或目录的读写执行的权限)
普通权限对管理员用户无效
文件和目录 都有4中类型的用户
u 所有者 : 文件、目录的创建者
g 所属组 : 文件、目录属于的用户组
o 其他用户: 用户既不是文件、目录的创建者,也没有在文件、目录所属的用户组里
a 所有用户:以上3类用户的总称
4 2 1 0
r w x -
文件或目录权限的类型 读、写、执行 无权限
查看文件/目录的权限
ll 文件名
ll 目录/文件名
ll -d 目录名
权限列表 链接个数 所有者 所属组 大小 日期 时间 文件名/目录
权限列表(由10个字符组成)
第一列字符 表示文件类型
- 文本文件
d 目录
l 链接文件
s 套接字文件
b 块文件
p 管道文件
c 字符文件
剩下的9列字符 每3列为一组 分3组
第一组 表示 所有者权限
第二组 表示 所属组权限
第三组 表示 其他用户权限
每组权限里的
第一列 r 权限显示位
第二列 w 权限显示位
第三列 x 权限显示位
* 若显示位置是字符 - 表示没有此权限
权限 文件上 目录上
r读 看文件的内容 浏览目录下的文件列表
cat head tail more less ls
w写 编辑文件内容 创建或删除文件或目录
vim touch rm mkdir rmdir
cp mv
x执行 可以运行文件 可以进入目录
./文件名 cd
/testdir/a.sh
* 要想让用户对目录有写权限 要同时开放x权限
* 一旦用户对目录拥有了w权限 ,就对这个目录下的子文件拥有的完全权限
设置权限命令的语法格式 - chmod
chmod -R 权限列表 文件名/目录名
权限列表
用数字表示
ugo
字母表示
用户类型 赋值符号 权限列表
u = r w x -
g +
o -
a = 设置指定的权限
+ 在原有权限的基础上增加权限
- 在原有权限的基础上去掉权限
实例
chmod 文件名
chmod 目录名
chmod u-x 文件名/目录名/文件名
chmod u=rx,g=r,o=r 目录名/文件名
chmod a=r 目录名/文件名
chmod -R /teadir
mkdir -m 700 目录名 //创建目录时指定目录的权限,
//若不指定权限系统设置的默认权限
查看创建文件时的默认权限
umask -S
umask
普通用户 特权用户
文件 644 644
目录 775 755
2、特殊权限
SUID 、 SGID 、 Set stikcy
字母 数字
SUID s 4
SGID s 2
Set sticky t 1
SUID 权限位只能设置在二进制文件上(通常就是系统命令)
当用户运行设置了suid权限位的文件时,会拥有文件所有者的权限
suid权限只在执行过程中有效。
用户要对文件本身有执行权限,才能使用文件的suid权限。
u x
用字母s表示,占用文件所有者的执行位显示
当s小写时,文件的所有者对文件有执行权限
当s大写时,文件的所有者对文件没有执行权限
对应的数字权限是数字 4
chmod u+s /usr/sbin/useradd
chmod u-s /usr/sbin/useradd
SGID 既可以设置在文件上,又可以设置在目录上,通常设置在目录上。
设置上文件上,当用户执行文件时,拥有文件所属组的权限
设置在目录上,在目录下创建的子文件、子目录继承父目录的所属组。
用字母s表示,占用文件、或目录的所属组的执行权限位显示
当s小写时,文件的所属组用户对目录有执行权限
当s大写时,文件的所属组用户对目录没有执行权限
对应的数字权限 是 数字2
chmod g+s /usr/sbin/useradd
chmod g-s /usr/sbin/useradd
Set stikcy 粘滞位(防删除位)
只能设置在目录上。
当给目录设置t权限位,目录下的文件只能被文件的所有者删除、
不能被其他用户移动 、改名、编辑 (但可以拷贝)
此权限对管理员用户无效。
用字母t表示,占用目录其他用户执行权限位显示
当t小写时, 其他用户对目录有执行权限
当t大写时, 其他用户对目录没有执行权限
对应的数字权限 是 数字1
suid sgid set-sticky
4 2 1
s s t
u-x g-x o-x
1755 rwxr-xr-t
7777 rwsrwsrwt
mkdir -m /dir10
useradd u10
useradd u12
useradd u3
useradd u2
让系统用户u2对 /dir10 目录有完全权限。
只让系统用户u2对 /dir10 目录有完全权限。
只让系统用户u2、u3 对 /dir10 目录有完全权限。
3、文件访问控制列表
- facl
dumpe2fs /dev/sda2 | grep --color acl
getfacl 目录名/文件名
getfacl /dir10
在不改变本身权限的情况下,单独设置某个用户或用户组 对 某个文件或目录的访问权限。
setfacl 选项 [参数]:用户类型:权限列表 文件名/目录名
选项
-m 设置facl权限
-x 删除facl权限(一次删除一个)
-b 删除目录或文件的所有acl权限
-k 删除目录的默认acl权限
-R 递归设置
setfacl -R -m u:u100:rwx /dir10
参数
m 设置acl_mask 码的权限
acl权限mask码 : 控制acl用户的权限
默认acl_mask 值是rwx
授权用户的acl的最终权限是 授权权限与acl_mask码逻辑运算后的权
setfacl -m m:r /dir10
d 设置目录的默认acl权限
setfacl -m d:u:u1:rwx /dir6
用户类型 u 设置某个用户的访问权限
g 设置某个用户组的访问权限
权限列表 r w x
mkdir -m 755 /dir6
让系统用户u2 对 /dir6目录下的所有文件有rwx权限
4、文件的隐藏权限
查看文件的隐藏属性
lsattr 文件名
设置
chattr +-=a|i|A 文件名
i 文件的内容不能被编辑 (管理员也不可以)
a 只能以追加的方式给文件添加新内容
A 不更新文件访问时间
练习
一、基本权限和归属
,长格式显示/etc/passwd和/boot,分别说出他们相应的权限
,用字符权限形式将Desktop(包括里面的文件)权限更改成770
,用数字权限形式将Desktop(包括里面的文件)权限更改成755
,编写test.sh脚本,里面内容是 echo Hello World。设置允许执行该脚本
,查看umask值,代表什么意思
,创建一个/opt/studir目录,权限为755。将/opt/studir目录所有者改成student,所属组为users
,在将/opt/studir目录包括目录下的所有文件和子目录所有者改成stu01
,删除实验中创建的账户与组
二、附加权限控制
,长格式显示/tmp和/usr/bin/passwd,查看其权限
,创建普通账户tom,查找mkdir命令在什么地方,将其拷贝到/bin下改名为smkdir,给其设置suid权限
,tom登陆使用mkdir创建/tmp/test1目录,查看其权限
,tom登陆使用smkdir创建/tmp/test2目录,查看其权限
,删除smkdir命令
,查找cp命令在什么地方,将其拷贝到/bin下改名为gcp,给其设置sgid权限
,用tom账户登录,使用cp命令创建/tmp/file1文件。使用gcp命令创建/tmp/file2文件,查看这2个文件权限部分区别。
,删除gcp命令,tom账户
,创建user01,user02账户,group01组。/software目录,用user01在该目录下创建test01,user02在该目录下创建test02,查看其权限
,更改software目录所有者为root,所属组为group01,允许所有人对此目录有读、写、执行权限,并且在该目录下创建文件和目录都自动继承software的属组
,删除user01,user02账户,group01组,以及/software目录
,查看当前磁盘分区情况,查看根分区是否支持acl
,查看/root的acl权限,创建账户jack,jack是否可以进入/root?为什么
,使用acl权限设置jack能够进入/root
,创建/data目录,设置在/data目录下新建的文件和目录,jack都有读、写、执行权限
,清除/data的acl权限
,删除/data目录与jack账户Linux基础3(用户/组管理,rpm,yum,源码安装软件)
Linux基础3(文件权限)的更多相关文章
- Linux基础命令-文件与目录
Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...
- Linux命令:修改文件权限命令chmod、chgrp、chown详解
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...
- Linux用户及文件权限管理
Linux用户及文件权限管理
- linux中的文件权限chmod
linux中的文件权限chmod 还是GPU集群那点事儿,集群之间磁盘互相挂载,普通用户也可以操作/cu02_nfs./cu04_nfs文件夹,这就牵扯到权限的问题,去google发现所谓的777 ...
- linux 基础 文件系统 用户权限
描述Linux系统的启动过程? 1.开机自检 BIOS 2.MBR引导 3.GRUB菜单 4.加载内核 5.运行init进程 6.从/etc/inittab读取运行级别 7.根据/etc/rc.sys ...
- linux基础指令以及权限管理
基础指令 #打印字符串 echo hello linux #将file1 和 file2粘合在一起,打印到标准输出流 cat file1 file2 标准输入输出 标准输入,stdin,即键盘.鼠标输 ...
- Day005_Linux基础之文件权限
test.sh 举例: [oldboy@luffy001 ~]$ ls -l test.sh -rw-r--r-- 1 oldboy ops 0 Nov 14 10:42 test.sh 该文件权 ...
- linux 用户及文件权限管理
Linux 是一个可以实现多用户登陆的操作系统,比如“李雷”和“韩梅梅”都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同 ...
- Linux(三)__文件权限、系统的查找、文本编辑器
一.文件权限 1.理解文件权限及其分配 2.掌握查看文件和目录的权限 3.掌握权限文字表示法和数值表示法 4.学会使用chmod命令设置权限 5.学会使用chown命令修改属主和组 linux文件能不 ...
- linux笔记六-------文件权限设置
1.文件(目录)权限本身划分:读read 写write 执行execute 权限从用户的角度划分:主人权限user 同组用户权限group 其他组用户的权限other music. ...
随机推荐
- Oracle中把一个DateTime的字符串转化成date类型。to_date('2016/12/8 18:55:43','yyyy/MM/dd hh24:mi:ss'),
Oracle中把一个DateTime或者该形态字符串转化成date类型. to_date('2016/12/8 18:55:43','yyyy/MM/dd hh24:mi:ss'), 或者: sele ...
- CSS3文本超出容器显示省略号之text-overflow属性
text-overflow:ellipsis; overflow:hidden; white-space:nowrap; 要想实现文本超出容器时显示省略号,上面3个属性必须同时搭配使用
- nginx缓存配置的操作记录梳理
web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...
- http://www.cnblogs.com/figure9/p/developer-reading-list.html
http://www.cnblogs.com/figure9/p/developer-reading-list.html
- TP框架实现分页
TP框架自带分页的实现方法,所以使用这个分页方案,不用再重新造轮子 1,先看效果图 2,源码 /** * TODO 基础分页的相同代码封装,使前台的代码更少 * @param $m 模型,引用传递 * ...
- Windows 8.1 新增控件之 CommandBar
上一篇为大家介绍了AppBar 的相关内容,本篇继续介绍CommandBar 的使用方法.与AppBar 相比而言,CommandBar 在开发使用方面较为单一,在按键布局上分为主控区(Primary ...
- 如何优化 FineUI 控件库的性能,减少 80% 的数据上传量!
在开始正文之前,请帮忙为当前排名前 10 唯一的 .Net 开源软件 FineUI 投一票: 投票地址: https://code.csdn.net/2013OSSurvey/gitop/codevo ...
- 【Flex】正则表达式
1.基本语法 . 匹配除换行符"\n"外的任意单个字符. * 匹配前面Flex正则表达式的零次或多次出现.eg:Alert.show("ThisBookIsGoodBoo ...
- 用node.js实现简单的web服务器
node.js实现web服务器还是比较简单的,我了解node.js是从<node入门>开始的,如果你不了解node.js也可以看看! 我根据那书一步一步的练习完了,也的确大概了解了node ...
- 用程序集编写clr表值函数:把正则表达式引入数据库中
正则表达式非常好,但在数据库中就是没有,但可以通过程序集方式扩展 先编写一个dll,标量函数很好写,表值函数麻烦一点 下面是C#代码 using System; using System.Data; ...