设置修改文件的属主或修改文件属组

[root@localhost ~]# ll test.txt
-rw-r--r--. 1 root root 0 Oct 21 12:01 test.txt
[root@localhost ~]# chown yc:yc test.txt
[root@localhost ~]# ll test.txt
-rw-r--r--. 1 yc yc 0 Oct 21 12:01 test.txt

设置文件的属组信息

注:chgrp 命令可以只修改文件的属组
[root@localhost ~]# ll test.txt
-rw-r--r--. 1 root root 0 Oct 21 12:01 test.txt
[root@localhost ~]# chgrp yc test.txt
[root@localhost ~]# ll test.txt
-rw-r--r--. 1 root yc 0 Oct 21 12:01 test.txt

文件的权限主要针对三类对象进行定义

owner 属主, u
group 属组, g
other 其他, o r 可使用文件查看类工具,比如:cat,可以获取其内容
w 可修改其内容
x 即可以执行(运行)此文件(此文件的内容必须是可执行) --- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

修改文件权限chmod

修改指定一类用户的所有权限
u= g= o= ug= a= u=,g=
修改指定一类用户某个或某个权限
u+ u- g+ g- o+ o- a+ a- + -
-R: 递归修改权限
范例:
chmod u+wx,g-r,o=rx test.txt
chmod -R g+rwx /testdir
chmod 600 test.txt

新建文件和目录的默认权限

umask 的值可以用来设置创建文件时的默认初始权限

实现方式:

  • 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶

    数不变
  • 新建目录的默认权限: 777-umask

    当将文件和目录的默认权限设为666-umask与777-umask时,是为了系统的安全考虑,将文件默认权限设为666-umask时,即使将umask设为000时,也不会赋予文件执行权限,保护系统安全
[root@localhost ~]# umask
0022
注:root的umask 默认是 022

Linux文件系统上的特殊权限

三种特殊权限:SUID, SGID, Sticky

SUID:作用于可执行文件上,用户继承此程序所有者的权限
SGID:
1>作用于可执行文件上,用户继承此程序所属组的权限
2>作用于目录上,此目录中新建的文件的所属组将自动从此目录继承
STICKY:
作用于目录上,此目录中的文件只能由所有者自己去删除
设置SUID权限:
chmod u+s test
chmod 4xxx test
chmod u-s test
设置SGID权限:
对于文件设SGID权限:
chmod g+s test
chmod 2xxx test
chmod g-s test
对于目录设置SGID权限:
chmod g+s testdir
chmod 2xxx testdir
chmod g-s testdir
设置STICKY权限:
chmod o+t testdir
chmod 1xxx testdir
chmod o-t testdir

设置文件特殊属性(仅限root用户操作)

设置文件的特殊属性,可以防止 root 用户误操作删除或修改文件

不能删除,改名,更改内容

chattr +i file

只能追加内容,不能删除,改名

chattr +a file

显示特定属性

lsattr

实例:

[root@localhost ~]# chattr +i aa.txt
[root@localhost ~]# lsattr aa.txt
----i----------- aa.txt
[root@localhost ~]# echo 123 >aa.txt
-bash: aa.txt: Permission denied
[root@localhost ~]# rm -rf aa.txt
rm: cannot remove ‘aa.txt’: Operation not permitted
[root@localhost ~]# mv aa.txt bb.txt
mv: cannot move ‘aa.txt’ to ‘bb.txt’: Operation not permitted [root@localhost ~]# chattr +a aa.txt
[root@localhost ~]# lsattr aa.txt
-----a---------- aa.txt
[root@localhost ~]# rm -rf aa.txt
rm: cannot remove ‘aa.txt’: Operation not permitted
[root@localhost ~]# mv aa.txt bb.txt
mv: cannot move ‘aa.txt’ to ‘bb.txt’: Operation not permitted
[root@localhost ~]# echo 123 >aa.txt
-bash: aa.txt: Operation not permitted
[root@localhost ~]# echo 123 >>aa.txt
[root@localhost ~]# cat aa.txt
123

最新文章

  1. Git命令总结
  2. 使用神经网络来识别手写数字【译】(三)- 用Python代码实现
  3. 总结常见的ES6新语法特性
  4. -bash: /bin/rm: Argument list too long
  5. 51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
  6. COM ,Threading Models,apartments,RPC
  7. 如何将mysql表结构导出成Excel格式的(并带备注)
  8. 如何在ANDROID JNI 的C++中打Log
  9. jsp表单提交中文乱码的解决
  10. java中经常使用的日期格式化(全)
  11. gtest以及测试小结
  12. POJ2553-The Bottom of a Graph
  13. c语言中细节注意(初级)
  14. struts2查询的数据的存放
  15. 2019-02-22 L231
  16. Vue源码翻译之渲染逻辑链
  17. C++ 类 析构函数
  18. day 5 名片管理系统-文件版
  19. 002-主流区块链技术特点及Hyperledger Fabric V0.6版本特点
  20. c++ boost库学习一:时间和日期

热门文章

  1. Spring源码-IOC部分-循环依赖-用实例证明去掉二级缓存会出现什么问题【7】
  2. 使用Docker快速搭建Halo个人博客到阿里云服务器上[附加主题和使用域名访问]
  3. 解决SpringBoot连接Nacos集群报400问题
  4. 「JOI 2015 Final」舞会
  5. 微服务中的CAP原则
  6. Nginx 配置 HTTPS 服务器
  7. JVM学习二:JVM之GC算法和种类
  8. Lua非常有用的工具——递归打印表数据
  9. 什么是Segue
  10. getter-setter方法练习