Linux Shell学习笔记(4):文件权限与归属(chown、chmod)和文件的隐藏属性(chattr、lsattr)

Linux中一切皆文件!!

一、文件权限与归属

Linux中一切皆文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符类加以区分。

  • -:普通文件
  • d: 目录文件
  • l : 链接文件
  • b:块设备文件
  • c: 字符设备文件
  • p:管道文件
  • Linux系统中,每个文件都有说是的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的权限
  • Linux中关于文件权限,有(r、w、x)三个
    • r : 读(read)数字表示— 4
    • w :写(write) 数字表示— 2
    • x :执行(execute)数字表示— 1
root@juzuodaliyun:/home/gw ll
total 280
drwxr-xr-x 26 gw   gw     4096 Apr 12 12:51 ./
drwxr-xr-x  5 root root   4096 May  4 21:31 ../
drwxr-xr-x 23 gw   gw     4096 Jul 31  2019 anaconda3/
-rw-------  1 gw   gw     4787 Oct 26  2019 .bash_history
-rw-r--r--  1 gw   gw      220 Jul 19  2019 .bash_logout
-rw-r--r--  1 gw   gw     3884 Jul 24  2019 .bashrc
-rw-r--r--  1 gw   gw     3809 Jul 24  2019 .bashrc-anaconda3.bak
drwx------ 18 gw   gw     4096 Apr 12 13:00 .cache/
……

分行,以第3行为例子:drwxr-xr-x 23 gw gw 4096 Jul 31 2019 anaconda3/

  • 第一个字母d表示文件类型(目录文件)
  • 2-4(rwx)表示文件的所有者拥有的权限(4+2+1=7
  • 5-7(r-x)表示和这个文件属主所在同一个组的用户所具有的权限(4+0+1=5
  • 8-10(r-x)表示其他用户对这个目录文件所拥有的权限(4+0+1=5
  • 数字26表示文件夹中含有的文件的数量(anaconda3包含26个文件)
  • 第一个gw表示文件所属用户
  • 第二个gw表示所属组
  • 其他的显而易见了~

所以anaconda的权限数字表示法为755。

1. 使用chown命令改变文件所属

命令使用格式chown [参数] 所有者:所属组

root@jiuzuodaliyun:/home/test/20200503 ll
total 16
drwxr-xr-x 2 root root 4096 May  3 11:14 ./
drwxr-xr-x 5 root root 4096 May  5 19:44 ../
-rw-r--r-- 1 root root   48 May  3 23:02 a.txt
-rw-r--r-- 1 root root   19 Apr 28 22:23 b.txt
-rwxrwxrwx 1 root root    0 Apr 29 23:22 test.py*
# 更改a.txt的文件所有者
root@jiuzuodaliyun:/home/test/20200503 chown gw:gw a.txt
root@jiuzuodaliyun:/home/test/20200503 ll
total 16
drwxr-xr-x 2 root root 4096 May  3 11:14 ./
drwxr-xr-x 5 root root 4096 May  5 19:44 ../
-rw-r--r-- 1 gw   gw     48 May  3 23:02 a.txt
-rw-r--r-- 1 root root   19 Apr 28 22:23 b.txt
-rwxrwxrwx 1 root root    0 Apr 29 23:22 test.py*

2.使用chmod命令更改文件的权限

使用格式chmod [参数] 权限 文件或目录名称

root@jiuzuodaliyun:/home/test/20200503 ll
total 16
drwxr-xr-x 2 root root 4096 May  3 11:14 ./
drwxr-xr-x 5 root root 4096 May  5 19:44 ../
-rw-r--r-- 1 root root   48 May  3 23:02 a.txt
-rw-r--r-- 1 root root   19 Apr 28 22:23 b.txt
-rw-r--r-- 1 root root    0 Apr 29 23:22 test.py

# 现在改变 test.py 的权限为任何用户都有rwx权限(rwxrwxrwx=777)
root@jiuzuodaliyun:/home/test/20200503 chmod 777 test.py
root@jiuzuodaliyun:/home/test/20200503 ll
total 16
drwxr-xr-x 2 root root 4096 May  3 11:14 ./
drwxr-xr-x 5 root root 4096 May  5 19:44 ../
-rw-r--r-- 1 root root   48 May  3 23:02 a.txt
-rw-r--r-- 1 root root   19 Apr 28 22:23 b.txt
-rwxrwxrwx 1 root root    0 Apr 29 23:22 test.py*

二、文件的隐藏属性

Linux 中有些奇怪的文件,你登录使用的用户有足够的权限,但是你不能删除这个文件,或者你只能向某个特殊的日志文件中添加记录,但是无法改变记录阻止了黑客篡改记录),这一类文件就是拥有了一些隐藏属性,保障了Linux系统的安全性。

1. chattr 命令

chatter命令用于设置文件的隐藏权限,格式为 chattr [参数] 文件
如果需要给文件添加一个参数,则需要 +参数
如果需要给文件移除一个参数,则需要 -参数

参数含义
i无法对文件进行修改;如果对目录设置了该参数,则仅能修改其中的子文件的内容,而不能新建或者删除该文件’
a仅允许对文件追加内筒,而不予许对文件进行覆盖/删除 (Append Only)
S文件内容变更后立即同步到硬盘(sync)
s彻底从硬盘删除,不可恢复(用0填充源文件所在硬盘区域)
A不再修改这个文件或目录的最后访问时间(atime)
b不再修改文件或目录的存取时间
D检查压缩文件中的错误
d使用dump命令备份时忽略本文件/目录
c默认将文件或目录进行压缩
u当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t让文件系统支持尾部合并(tail-mergine)
X可以直接访问压缩文件中的命令

2. lsattr 命令

lsattr 用来显示文件的隐藏属性
格式 :lsattr -参数 文件

root@juzuodaliyun:/home/test/20200505 lsattr b.txt
--------------e--- b.txt
root@juzuodaliyun:/home/test/20200505 chattr -e  b.txt
root@juzuodaliyun:/home/test/20200505 lsattr b.txt
------------------ b.txt

这里出现了一个e属性,查了很多资料,有说是“文件为可执行文件”。另外一种说法如下:

'e’属性表示文件正在使用区段来映射块磁盘。它不能使用chattr删除。
一朵菊花脸上遮的CSDN博客

如果有知道的同学也请在评论区留言。


其余的属性就像介绍chattr的一样参照上面的表格

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值