您的位置:首页 > 运维架构 > Linux

Linux-文件权限与目录配置

2020-04-24 20:47 169 查看

2.文件权限与目录配置

本章同步视频:https://edu.51cto.com/sd/e4874

2.1 三类用户

0.root

1.文件拥有者

2.同组用户

3.其他用户

2.2 文件权限

2.2.1 文件属性

[root@localhost ~]# ls -l

total 548

-rw-------. 1 root root   1416 Oct 28  2018 anaconda-ks.cfg

-rw-r--r--. 1 root root   1467 Oct 27  2018 initial-setup-ks.cfg

-rw-r--r--. 1 root root 550255 Oct 11 14:15 练习平台试题说明书.pdf

    文件   链   属  属    文件     文件修改时间        文件名

    权限   接   主  组    大小

              数

2.2.2 chgrp - change group ownership

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...

1.正常操作

[root@localhost tmp]# ll aaa                 #ls -l的别名

-rw-r--r--. 1 root root 0 Feb 26 19:58 aaa    #属组为root

[root@localhost tmp]# chgrp calf aaa          #将属组修改为calf

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 root calf 0 Feb 26 19:58 aaa     #属组为calf

2.注意事项

(1)属组必须存在

[root@localhost tmp]# chgrp group1 aaa

chgrp: invalid group: ‘group1’               #组group1不存在

(2)只有root能完成

[calflyok@localhost ~]$ ll aaa

-rw-rw-r--. 1 calflyok calflyok 0 Feb 26 20:02 aaa

[calflyok@localhost ~]$ chgrp calf aaa

chgrp: changing group of ‘aaa’: Operation not permitted   

#文件拥有者亦无权执行该命令

2.2.3 chown - change file owner and group

chown [OPTION]... [OWNER][:[GROUP]] FILE...

1.正常修改拥有者

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 root calf 0 Feb 26 19:58 aaa    #拥有者为root

[root@localhost tmp]# chown calf aaa

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 calf calf 0 Feb 26 19:58 aaa     #拥有者变为calf

2.同时修改拥有者和属组

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 calf calf 0 Feb 26 19:58 aaa

[root@localhost tmp]# chown root:root aaa

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 root root 0 Feb 26 19:58 aaa

3.注意事项

(1)用户必须存在

[root@localhost tmp]# chown own aaa

chown: invalid user: ‘own’                       #own用户不存在

(2)只有root能执行

[calflyok@localhost ~]$ ll aaa

-rw-rw-r--. 1 calflyok calflyok 0 Feb 26 20:02 aaa

[calflyok@localhost ~]$ chown root aaa

chown: changing ownership of ‘aaa’: Operation not permitted

2.2.4 chmod - change file mode bits

chmod [OPTION]... MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODE FILE...

1.数字模式

r:4  w:2  x:1

(1)修改单个文件权限

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 root root 0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod 666 aaa

[root@localhost tmp]# ll aaa

-rw-rw-rw-. 1 root root 0 Feb 26 19:58 aaa

(2)修改整个目录权限

[root@localhost tmp]# ls -al bbb

total 8

drwxr-xr-x. 2 root root 4096 Feb 26 20:24 .

drwxrwxrwt. 9 root root 4096 Feb 26 20:24 .. 

#父目录不在修改范围内

-rw-r--r--. 1 root root    0 Feb 26 20:24 ccc

[root@localhost tmp]# chmod -R 666 bbb

[root@localhost tmp]# ls -al bbb

total 8

drw-rw-rw-. 2 root root 4096 Feb 26 20:24 .

drwxrwxrwt. 9 root root 4096 Feb 26 20:24 .. 

#父目录不在修改范围内

-rw-rw-rw-. 1 root root    0 Feb 26 20:24 ccc

2.字符模式

chmod

u

g

o

a

+(加入)

-(除去)

=(设定)

r

w

x

档案或目录

 

(1)所有用户增加执行权限

[root@localhost tmp]# ll ll aaa

-rw-rw-rw-. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod a+x aaa

[root@localhost tmp]# ll aaa

-rwxrwxrwx. 1 root root    0 Feb 26 19:58 aaa

(2)所有用户去掉执行权限

[root@localhost tmp]#  ll aaa

-rwxrwxrwx. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod a-x aaa

[root@localhost tmp]#  ll aaa

-rw-rw-rw-. 1 root root    0 Feb 26 19:58 aaa

(3)所有用户设定为只读

[root@localhost tmp]#  ll aaa

-rw-rw-rw-. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod a=r aaa

[root@localhost tmp]#  ll aaa

-r--r--r--. 1 root root    0 Feb 26 19:58 aaa

(4)拥有者增加写和执行,其他用户设定为可读可写

[root@localhost tmp]# ll aaa

-r--r--r--. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod u+wx,o=rw aaa

[root@localhost tmp]# ll aaa

-rwxr--rw-. 1 root root    0 Feb 26 19:58 aaa

(5)去掉其他用户的所有权限

[root@localhost tmp]# ll aaa

-rwxr--rw-. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod o= aaa

[root@localhost tmp]#  ll aaa

-rwxr-----. 1 root root    0 Feb 26 19:58 aaa

3.注意事项

文件拥有者可以无视权限,强行读写文件属性和内容。

[calflyok@localhost ~]$ chmod a= aaa

[calflyok@localhost ~]$  ll aaa

----------. 1 calflyok calflyok 0 Feb 26 20:02 aaa

[calflyok@localhost ~]$ vim aaa

[calflyok@localhost ~]$ cat aaa

aaaaa

2.2.5 目录与档案之权限意义

1.权限对档案的重要性

u  r (read):可读取此一档案的实际内容,如读取文本文件的文字内容等;

u  w (write):可以编辑、新增或者是修改该档案的内容(但不含删除该档案);

u  x (execute):该档案具有可以被系统执行的权限。

2.权限对目录的重要性

u  r (read contents in directory):表示具有读取目录结构列表的权限,可以查询该目录下的文件名数据。 如使用ls命令!

u  w (modify contents of directory):

l  建立新的档案与目录;

l  删除已经存在的档案与目录(不论该档案的权限为何!)

l  将已存在的档案或目录进行更名;

l  搬移该目录内的档案、目录位置。

u  x (access directory):代表的是用户能否进入该目录成为工作目录! 如使用cd命令!

2.2.6 Linux档案种类与扩展名

1.档案种类:

u  正规档案(regular file ):第一个字符为 [ - ] 。

u  目录(directory):第一个属性为 [ d ] 。

u  连结档(link):第一个属性为 [ l ] 。

u  设备与装置文件(device):通常都在/dev目录下。

l  区块(block)设备档 :第一个属性为[ b ]!

l  字符(character)设备档:第一个属性为 [ c ]。

u  资料接口文件(sockets):第一个属性为 [ s ], 最常在/run或/tmp。

u  数据输送文件(FIFO, pipe):第一个属性为[p] 。

2.Linux档案扩展名:

Linux的档案是没有所谓的『扩展名』的,一个Linux档案能不能被执行,与他的第一栏的十个属性有关, 与文件名根本一点关系也没有。

l  *.sh : 脚本或批处理文件 (scripts) ;

l  *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。

l  *.html, *.php:网页相关档案,分别代表 HTML 语法与 PHP 语法的网页档案。

3.Linux档案长度限制

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

4.Linux文件名的限制

由于Linux在文字接口下的一些指令操作关系,一般来说,在设定Linux底下的文件名时, 最好可以避免一些特殊字符比较好!

* ? > < ; & ! [ ] | \ ' " ` ( ) { }-+

2.3 Linux目录配置

2.3.1 目录介绍

目录

应放置档案内容

第一部份:FHS 要求必须要存在的目录

/bin

/bin放置的是在单人维护模式下还能够被执行的命令。

/boot

这个目录主要在放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需配置文件等等。 Linux kernel常用的档名为:vmlinuz,如果使用的是grub2这个开机管理程序,则还会存在/boot/grub2/这个目录!

/dev

在Linux系统上,任何装置与接口设备都是以档案的型态存在于这个目录当中的。比要重要的档案有/dev/null, /dev/zero, /dev/tty, /dev/loop*, /dev/sd*等等

/etc

系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的启始档等等。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的,但是只有root有权力修改。

/lib

系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库而已。

/media

media是『媒体』的英文,这个/media底下放置的就是可移除的装置啦! 包括软盘、光盘、DVD等等装置都暂时挂载于此。

/mnt

如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。

/opt

这个是给第三方协力软件放置的目录。

/run

早期的 FHS 规定系统开机后所产生的各项信息应该要放置到 /var/run 目录下,新版的 FHS 则规范到 /run 底下。

/sbin

放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。

/srv

srv可以视为『service』的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。

/tmp

这是让一般用户或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。

 

第二部份:FHS 建议可以存在的目录

/home

这是系统默认的用户家目录(home directory)。在你新增一个一般使用者账号时,默认的用户家目录都会规范到这里来。比较重要的是,家目录有两种代号喔:

·       ~:代表目前这个用户的家目录

·       ~dmtsai :则代表 dmtsai 的家目录!

/root

系统管理员(root)的家目录。

 

目录

应放置档案内容

/lost+found

这个目录是使用标准的ext2/ext3/ext4文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置到这个目录下。不过如果使用的是 xfs 文件系统的话,就不会存在这个目录了!

/proc

这个目录本身是一个『虚拟文件系统(virtual   filesystem)』喔!他放置的数据都是在内存当中,例如系统核心、行程信息(process)、周边装置的状态及网络状态等等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间啊!比较重要的档案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts,   /proc/ioports, /proc/net/* 等等。

/sys

这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录核心与系统硬件信息较相关的信息。包括目前已加载的核心模块与核心侦测到的硬件装置信息等等。这个目录同样不占硬盘容量喔!

 

2.3.2 目录树

 

                                               

 

2.4 总结

l  Linux下除了root外,还有三类用户,分别是文件拥有者、同组用户和其他用户。

l  文件的拥有者是可以改变的,使用的命令是chown。

l  文件的属组也是可以改变的,使用的命令是chgrp。

l  文件的常规权限是读(read)、写(write)和执行(execute)。

l  文件的权限是可以修改的,使用的命令是chmod。

l  文件的权限修改有数字模式和字符模式两种。

l  文件的读权限表示可以查看文件内容,文件的写权限表示可以修改文件内容,文件的执行权限表示可以执行该文件,文件的删除不属于读写执行权限。

l  目录的读权限表示可以查看目录内容,目录的写权限表示可以变动目录内的内容,目录的执行权限表示可以进入目录。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: