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