Linux文件权限与目录配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件权限与目录配置相关的知识,希望对你有一定的参考价值。

一 :使用者与群组

1 文件拥有者(user):是这个文件的所有者,有对文件的权限
2 群组(group):在其群组之内的用户具有访问文件的权限
3 其他(other):
4 Linux用户身份与群组记录的文件
默认情况下,超级用户和七班用户的相关信息都记录在/etc/passwd目录下,密码则记录在/etc/shadow文件下,此外Linux所有组名都记录在/etc/group中,

二 文件权限概念:

1 Linux文件属性

ls是list的意思,重点在显示文件的文件名与相关属性,而选项[-al]则表示列出所有文件详细的权限与属性,包含隐藏文件,第一个字符是.
[[email protected] ~]# ls -al
总用量 76
d r-xr-x---. 22 root root 4096 1月 28 16:02 .
文档类型 文档权限 链接数 文档所属者 文档所属组 文档容量 最后修改时间 文档名
drwxr-xr-x. 18 root root 4096 1月 28 15:56 ..
drwxr-xr-x. 3 root root 67 1月 28 10:58 aaa

文档类型:
d 则是目录

  • 则是文件
    l 则是链接文档
    b 则是装置文件中可供存储的接口设备(可随机存取装置)
    c 则是表示文装置文件里面的串行端口设备,如键盘、鼠标

文档权限:
以三个为一组,且均为[rwx] 其中r表示可读(read),[w]表示可写(write),[x]表示可执行(execute),参数的位置不会发生改变,如果没有权限,则会出现一个[-]而已。

第一组为文件拥有者可具备的权限
第二组为加入此组之账号的权限
第三组为非本人且没有加入本群组之其他账号权限

其中r为4 w为2 x为1

连接数:表示有多少档名链接到此节点(i-node)
每个文件都会将他的权限与属性记录到文件系统的i-node中,每个档名都会链接一个i-node。

文档所有者:这个文件的拥有者账号、

文档所属组:这个文件的所属群组

文档容量:默认单位为bytes;

想要显示完整时间格式,可以使用ls -l --full-time
[[email protected] ~]# ls -l --full-time
总用量 0
drwxr-xr-x. 3 root root 67 2018-01-28 10:58:15.199512334 +0800 aaa

文档档名:
如果档名之前是[.]则代表是隐藏文件,

ls 文档扩展:
使用 ls --help
man ls
info ls
可以查看其基础语法

文件权限的重要性
1 数据保护的功能:有关于系统服务的文件通常只有root才能读写或者执行,root基本上不受系统的权限限制,所以无论文件的权限时什么,预设root都可以有存取功能;
[[email protected] ~]# ll /etc/shadow
----------. 1 root root 1322 1月 24 11:32 /etc/shadow
2 团队开发或数据共享的功能:
3 权限设定不妥当有巨大的危害性

2 如何改变文件属性与权限

chgrp :改变文件所属群组
chown:改变文件拥有者
chmod:改变文件的权限,suid,sgid,sbit等

-R :表示进行递归的持续变更,亦及联同次目录下的所有文件目录都更新成为这个拥有者或拥有组。

chown 可以同时改变拥有者和拥有组:[chown user.group file]在拥有者与群组之间加上小数点(.)也可以。也可使用:来隔开拥有者和所属群组。

chown也可以用于单独修改群组,chown .admin file

改变权限
A 数字类型改变文件权限
Linux文件的基本权限有9个,分别是owner / group /others 三种身份各有自己的read/write/execute权限,
r-4
w-2
x-1
每种身份各自的三个权限(r/w/x)分数是需要累加的,
rwx=7
r-x=5
r--=4
--x=1

符号类型改变文件权限
三种身份可以使用u,g,o分别表示user,group,other,此外a代表all也是全部的身份。

技术分享图片

[[email protected] ~]# ll aaa.py
-rw-r--r--. 1 root root 0 1月 25 13:49 aaa.py
[[email protected] ~]# chmod u=rwx,g=rwx aaa.py
[[email protected] ~]# ll aaa.py
-rwxrwxr--. 1 root root 0 1月 25 13:49 aaa.py
[[email protected] ~]# chmod u-x,g-x aaa.py
[[email protected] ~]# ll aaa.py
-rw-rw-r--. 1 root root 0 1月 25 13:49 aaa.py
[[email protected] ~]# chmod a=rwx aaa.py
[[email protected] ~]# ll aaa.py
-rwxrwxrwx. 1 root root 0 1月 25 13:49 aaa.py

[[email protected] ~]# chmod 111 aaa.py
[[email protected] ~]# ll aaa.py
---x--x--x. 1 root root 0 1月 25 13:49 aaa.py

3 目录与文件权限的意义:

1 权限对文件的重要性
文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件。
r(read):可读取一些文件的实际内容,
w(write):可以编辑、新增或是修改该文件的内容
x(eXecute):该文件具有可以被系统执行的权限。
我们的文件是否能够被执行,则是藉由是否具有[x]这个权限来决定的,跟文档名是没有关系的。

w 这个权限不代表具备删除这个文件的能力,文件的权限主要是针对文件的内容而言的

2 权限对目录的重要性
目录主要的内容是在记录文件名列表,文件名与目录有强烈的关联。
r(read contents in directory)
表示具有读取目录结构列表的权限,所以当你具有读取一个目录的权限时,表示你可以查询该目录下的文件名数据。所以你可以使用ls这个指令将该目录的内容列出来

w(modify contents of direcoty):
表示具有异动该目录结构列表的权限
1 建立新的文件与目录
2 删除已经存在的文件与目录
3 将已存在的文件或目录进行更名
4 搬移该目录内的文件、目录位置

x(access directory)
目录的x代表的是用户能否进入该目录成为工作目录。及能否cd 进去的权限,如果你在某目录下不具有x的权限,那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你有该目录的r或w的权限。
技术分享图片

4 特殊权限:

1 o+t 权限:sticky,粘制位
效果:只针对与目录,当目录上有o+t的权限时,所有用户在该目录下均可创建文件,但只有文件的所有人和root用户可以删除该目录下的文件
设定方式:
chmod o+t 目录
chmod 1777 目录
2 u+s 权限:suid 冒险位
效果:只针对于二进制可执行文件,该命令发起的程序是以该命令所有人的身份去执行的
chmod u+s 二进制可执行文件
chmod 4755 二进制可执行文件
3 g+s权限:强制位
效果:针对二进制可执行文件:该命令发起的程序是以该命令所有组的身份去执行,针对目录,目录信件文件的所属组与该目录的所属组保持一致
设定方式:
chmod g+s 文件|目录
chmod 2755 文件|目录

5 Linux文件种类与扩展名

1 文件种类

1 正规文件(regular file)
第一个字符为-
分为:纯文本文档(ASCII)、二进制文件(binary)、数据格式文件(data)
2 目录(directory)
第一个参数为[d]
3链接档,类似于Windows下的快捷方式。第一个属性是l(L的小写)
4 设备与装置文件(device)
分为:区块设备档( block)第一个属性是b 字符设备档(character)第一个属性是c
5资料接口文件(sockets)
这种类型的文件通常被用在网络上的数据承接了。第一个属性是s
6 数据输送文件(FIFO ,pipe)
FIFO也是一种特殊文件类型,他的主要目的是在解决多个程序同时存取一个文件所造成的错误问题,FIFO的第一个属性是p

2 文件扩展名

在Windows地下,能被执行的文件扩展名通常是.com,.exe,.bat等,而在Linux下,只要你的权限中有x的话,及代表该文件具有可以被执行的能力
具有可执行权限好人具有可执行的程序代码不同,
Linux地下常用的扩展名:
1.sh shell的脚本文件
2
Z,tar,tar.gz,.zip,.tgz:经过打包压缩的文件
3 .html,.php:网页相关的文件,分别代表HTML和PHP语法。

3 Linux文件长度限制

单一文件或目录的最大容许文件名为255bytes,以一个ASCII英文占一个bytes来说,则大约可达255个字符长度,若是以每个中文字占用2bytes来说,最大档名就是大约128个中文子。

4 Linux文件名的限制

尽量避免一些特殊字符:
*? < > : ; @ $ 等

三 Linux 目录配置

1 Linux 目录配置的依据--FHS

1 filesystem hierarchy standard(FHS)

目的:让使用者可以了解到已安装软件通常放置于那个目录下。
FHS 的重点在于规范每个特定的目录应该要放置什么样子的数据。
技术分享图片

FHS 将目录定义成为四种交互作用的形态。
1 可分享的:可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载用的目录
2 不可分享的:装置文件或程序有关的socket,
3 不变的:函式库,文件说明文件,系统管理员所管理的主机服务配置文件等。
4 可变动的:经常改变的数据,例如登录文件等

事实上FHS 针对目录树架构仅定义出三层目录下应该放置什么数据,
/(/root,根目录):与开机系统有关
/usr(Unix software resource) :与软件安装/执行有关
/var(variable):与系统运行过程有关。

2 根目录(/)的意义与内容

根目录是系统中最重要的一个目录,不但所有的目录是由根目录衍生出来的,同时根目录也与开机/还原/系统修复等动作有关。
FHS 标准建议:根目录(/)所在的分区槽应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区槽内,保持根目录越小越好。
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片

3 /usr的意义与内容:

usr:Unix software resource 的缩写,也就是[Unix 操作系统软件资源]所放置的目录,而不是用户的数据。
技术分享图片
技术分享图片

4 /var的意义与内容

/var 就是在系统运作后才会渐渐占用硬盘容量的目录,因为/var目录主要针对常态化变动的文件,包括快取(cache)、登录档(log file)以及某些软件运行所产生的文件
技术分享图片

2 目录树

在Linux中,所有文件与目录都是由根目录开始的,那是所有目录与文件的源头。
目录树[directory tree]特性:
目录树的起始点为根目录(/,root)
每一个目录布置能使用本地端的partition的文件系统,也能使用网络的filesystem。
每一个文件在此目录树中的文件名都是独一无二的(包含完整路径)
[[email protected] ~]# ls -l /
总用量 32
lrwxrwxrwx. 1 root root 7 12月 27 19:18 bin -> usr/bin
dr-xr-xr-x. 3 root root 4096 12月 27 11:52 boot
drwxr-xr-x. 20 root root 3300 1月 28 15:57 dev
drwxr-xr-x. 154 root root 8192 1月 28 15:56 etc
drwxr-xr-x. 3 root root 16 1月 24 11:54 ftp
drwxr-xr-x. 3 root root 18 12月 27 19:40 home
lrwxrwxrwx. 1 root root 7 12月 27 19:18 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 12月 27 19:18 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 3月 13 2014 media
drwxrwxrwx. 2 root root 6 3月 13 2014 mnt
drwxr-xr-x. 4 root root 30 1月 28 11:00 opt
dr-xr-xr-x. 493 root root 0 1月 28 15:55 proc
dr-xr-x---. 22 root root 4096 1月 28 16:02 root
drwxr-xr-x. 44 root root 1360 1月 28 15:57 run
lrwxrwxrwx. 1 root root 8 12月 27 19:18 sbin -> usr/sbin
drwxr-xr-x. 3 root root 19 1月 25 16:27 srv
dr-xr-xr-x. 13 root root 0 1月 28 15:56 sys
drwxrwxrwt. 28 root root 4096 1月 28 19:58 tmp
drwxr-xr-x. 13 root root 4096 12月 27 19:18 usr
drwxr-xr-x. 25 root root 4096 1月 28 15:56 var
技术分享图片

查看目录架构:
tree
[[email protected] ~]# yum -y install tree
[[email protected] ~]# tree /root
/root
├── aaa
│?? ├── repodata
│?? │?? ├── 03897b8e5f471bc4672119dd2e03c6119f369967b2a23e92fdf6cb7ec1862af5-other.xml.gz
│?? │?? ├── 0d6b7db64a801b5d1a1b40041ba7d365c527cf772fdc2344afed26ce2db5df24-filelists.xml.gz
│?? │?? ├── 550a2eb61507b66a86da417d7bf53fcbe9ddcdfe7994a9f94ce88e6ae0672de4-primary.sqlite.bz2
│?? │?? ├── be88fdfd3dbb63e730cb9d10f28121ccc08ff79b7d65d43f71edf4b79e7888a6-other.sqlite.bz2
│?? │?? ├── dcb3565731ea14adb4ea46231ff3147609e88d570fa4e1024514d19fc2a16b09-filelists.sqlite.bz2
│?? │?? ├── e1e31c6ee42ae9cd189a3e8003869a3971ebc3e1826b444dfdcb640e9df60175-primary.xml.gz
│?? │?? └── repomd.xml
│?? └── wps-office-10.1.0.5672-1.a21.x86_64.rpm
├── aaa.py
├── \345\205\254\345\205\261
├── \346\250\241\346\235\277
├── \350\247\206\351\242\221
├── \345\233\276\347\211\207
├── \346\226\207\346\241\243
├── \344\270\213\350\275\275
├── \351\237\263\344\271\220
└── \346\241\214\351\235\242

10 directories, 9 files

3 绝对路径与相对路径:

绝对路径:由根目录(/)开始写起的文件名或目录名称,
相对路径:相对于目前路径的文件名写法
[[email protected] ~]# cd /var/log/ 绝对路径
[[email protected] log]# cd ../log 相对路径
.:代表当前目录,也可以使用./来表示
..:代表上一层目录,也可以../来表示

以上是关于Linux文件权限与目录配置的主要内容,如果未能解决你的问题,请参考以下文章

Linux的文件权限与目录配置

Linux文件权限与目录配置

6.Linux的文件权限与目录配置

Linux的文件权限与目录配置

Linux的文件权限与目录配置

Linux的文件权限与目录配置