5.7 文件权限类
5.7.1 文件属性详解
在Linux系统中,我们可以使用ll
或者ls -l
来显示一个文件的属性以及所属的用户和用户组,文件属性格式如下:
-rw-------. 1 root root 1848 5月 11 19:31 anaconda-ks.cfg
-rw-r--r--. 1 root root 1896 5月 11 19:32 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 5月 11 19:33 公共
drwxr-xr-x. 2 root root 6 5月 11 19:33 模板
drwxr-xr-x. 2 root root 6 5月 11 19:33 视频
drwxr-xr-x. 2 root root 6 5月 11 19:33 图片
drwxr-xr-x. 2 root root 6 5月 11 19:33 文档
drwxr-xr-x. 2 root root 6 5月 11 19:33 下载
drwxr-xr-x. 2 root root 6 5月 11 19:33 音乐
drwxr-xr-x. 2 root root 110 5月 16 22:22 桌面
文件基本属性介绍如下所示:
文件类型与权限 硬链接数或子文件夹数 文件属主 文件属组 文件大小 建立或最近修改的时间 文件名
drwxr-xr-x. 2 root root 110 5月16 22:22 桌面
从左到右的10个字符表示如下所示:
- 0位表示类型,-代表文件,d代表目录,l代表连接
- 1-3位确定属主(该文件的拥有者)的权限
- 4-6位确定属组(属主所在用户组)的权限
- 7-9位确定其他用户的权限
rwx详解:
- 作用到文件
- r:read,表示能读文件,查看
- w:write,表示可以修改文件,但是不能删除文件,删除文件其实是修改文件所在的目录,需要对文件所在目录拥有写权限才能删除文件
- x:execute,代表可以执行,可以被系统执行
- 作用到目录
- r:可以查看文件夹,ls
- w:表示可以修改,目录没创建,删除,重命名文件和目录
- x:表示可以进入该目录,cd
5.7.2 chmod
chmod:change mod
chmod [{ugoa}{+-=}{rwx}] [文件或目录]
:ugoa:
user、group、other、all四类用户,+-=:
添加、减少、等于相应权限。
chmod [mod=421] [文件或目录]
:r=4,g=2,x=1,r+w+x=4+2+1=7;经常使用chmod 777 [文件或目录]
表示为user、group和other都赋有rwx权限。
chmod -R
:更改目录中所有文件和文件夹的权限
5.7.3 chown
chown:change owner,更改文件或目录的属主
chown [选项] [最终用户] [文件或目录]
:改变文件或者目录的属主
chown -R
:递归的改变目录中所有文件和文件夹的属主
5.7.4 chgrp
chgrp:change group,更改文件或目录的所属组
chgrp [最终用户组] [文件或目录]
:改变文件或目录的所属组
5.7.8 文件权限、用户权限、用户组权限综合案例
# 创建用户组bigdata、testing
groupadd bigdata
groupadd testing
# 创建用户小明和小亮,默认加入bigdata用户组
useradd -g bigdata xiaoming
useradd -g bigdata xiaoliang
# 创建用户小红和小兰,默认加入testing用户组
useradd -g testing xiaohong
useradd -g testing xiaolan
# 小明在自己的用户目录中创建一个代码文件import_code
su xiaoming
cd /home/xiaoming
vim import_code
# 小亮想访问import_code,root用户需要打开小明用户目录的相关权限
exit
su xiaoliang
cd xiaoming # 权限不够
exit
# chmod 710 xiaoming
chmod g+x xiaoming
su xiaoliang
cd xiaoming
ll xiaoming # 权限不够
exit
# chmod 750 xiaoming
chmod g+r xiaoming
su xiaoliang
cd xiaoming
ll
# 小明更改import_code的权限,使同组的小亮能够修改该文件
exit
su xiaoming
chmod 760 import_code
exit
su xiaoliang
cd xiaoming
ll
vim import_code
# 小红想更改import_code,应该怎么操作?
5.8 文件查找类
5.8.1 find
find:从指定的目录向下递归的遍历各个子目录,将满足条件的文件显示在终端
find [搜索范围] [选项]
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户的所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件,单位为 b——块 c——字节 w——字 k——千字节 M——兆字节 G——吉字节 |
实例:
# 查找当前目录下名称为info的文件
find -name info
# 查找root目录下名称为info的文件
find /root -name info
# 查找tony用户创建的文件
find /home -user tony
# -h参数表示文件大小以缩写显示
ll -h
# 查找root目录下大于等于10M的文件
find /root -size +2M
5.8.2 locate
locate:快速定位文件路径,locate与find不同,它是使用实现建立的系统中所有文件名称及路径的locate数据库实现快速定位文件的位置。locate命令无需遍历整个文件系统,查询速度比较快。为了保证查询结果的准确度,系统管理员必须定期更新locate数据库。
updatebu
:更新locate数据库
locate tmp
:查询所有名字包含tmp的文件和目录
5.8.3 which/whereis
which/whereis:查找系统命令的路径
which ls
:查找ls命令的路径
whereis ls
:查找ls命令的路径
5.8.4 grep(重要)
grep:过滤查找,一般配合管道符“|”一起使用,管道符“|”表示将前一个命令的查找结果传递给后面的命令进行处理。
grep [选项] [查找内容] [源文件]
:在文本文件等源文件中查找指定的内容
grep -n
:显示匹配行及行号
实例:
# 在initial-setup-ks.cfg文件中查带有boot的行,显示行号
grep -n boot initial-setup-ks.cfg