Linux学习(一)——Linux的文件权限与目录配置
目录
用户、用户组、other
用户(user):其实就是一个账号,不同的用户具有不同的权限,root账号具有最高的权限,保存在/etc/passwd下
用户组(group):多个用户组成的一个小组,一个用户可以属于多个用户组,就如一个人可以加多个社团,这个例子中,人就是用户,社团就是用户组,保存在/etc/shadow下
other:用户组外的用户,保存在/etc/group下
文件权限
首先了解一下文件操作有关的命令:
#列出当前文件夹下的所有文件夹以及文件,参数就不多说了,要用的时候在系统上就可以查看
ls
#-a参数列出包括隐藏文件在内(以.开头)的所有文件,-l参数对应的文件属性
ls -al
运行结果如下:
- 第一列是文件的权限,由10个字符组成,第一个字符表明文件的属性:
d表示目录 -表示文件 |表示连接文件 b表示可供存储的接口设备 c表示串行端口设备,例如鼠标、键盘
接下来的九个字符每三个为一组,表明用户、用户组、other对文件的操作,w表示可写,r表示刻度,e表示可执行
-
第二列记录硬链接的数据,linux中文件的权限与属性都记录到i-node节点,可以有多个文件名指向同一个i-node,这就是硬链接,软链接相当于windows的快捷方式,只是记录文件的路径而已
-
第三列记录文件的所有者(user)
-
第四列记录文件的用户组(group)
-
第五列为文件的大小,单位为B
-
第六列为文件的创建日期或是修改日期,如果时间比较久了,则只会显示年份,可以运行ls -l --full-time显示完整的时间
-
第七列为文件的名字,以 . 开头的文件为隐藏文件,运行ls是无法查看隐藏文件的
改变文件属性与权限
所用命令
#改变文件所属用户组
chgrp
#改变文件所有者
chown
#改变文件的权限
chmod
- chgrp:用于更改文件所属用户组,用户组必须在/etc/group中存在才行,否则会显示错误
chgrp -R dirname/filename -R:递归更改,即更改当前目录下的所有文件以及子目录
- chown:改变文件的所有者,用户必须在/etc/passwd中存在才行,chown也可以顺手改了用户组
chown -R 账号名称 文件或是目录 chown -R 账号名称:组名 文件或是目录 -R:与之前的意思一致 #单纯的修改组名 chown .组名 文件或是目录 顺带一提cp这个命令,这个命令用于复制文件,同时也会复制文件的属性以及权限 cp 源文件 目的文件
- chmod:改变文件的权限,可以使用数字或是符号来进行权限的更改,权限——数字对照表:
r:4 w:2 x:1
chmod的使用方式:
chmod -R xyz 文件或目录 #x表示用户的权限,y表示用户组,z表示other,为对应权限分数的累加,例如rwx=4+2+1=7 #以vim编辑后的文件权限通常为-rw-rw-r--
可以使用u、g、o来分别代表用户、用户组、other,a表示全部,则chmod还可以如下使用:
chmod u/g/o/a +(加入)/-(除去)/=(设置) r/w/x 文件或是目录 #设置hello文件的用户权限为rwx,用户组、other为rx chmod u=rwx go=rx hello
目录与文件的权限意义
文件的rwx权限意义和目录的不同
权限对文件的意义:
- r(read):可读取文件的内容
- w(write):可以更改文件内容,当不包括删除
- x(execute):可以执行,文件能否执行是由是否具有x权限决定的,而不是文件的后缀名
权限对目录的意义:
- r:表示具有读取目录结构的权限,即使用ls
- w:可以更改目录结构(新增、删除、重命名、转移文件与目录)
- x:表示是否可以进入该目录,即是否可以cd进改目录
Linux文件种类与扩展名
任何设备在linux下都是文件,linux的文件扩展名只是让我们了解该文件的可能用途,在网络上下载可执行文件到本地,却发现无法执行,可能和文件操作的权限有关
文件种类
- 普通文件:普通文件又可以分为文本文件和二进制文件,鸟哥的私房菜里面还有一个数据格式文件,我觉得就是二进制文件
- 目录
- 连接文件
- 设备与设备文件:与系统外设及存储相关的一些文件,通常存放在/dev文件夹下,可分为块设备文件(随机访问的接口设备文件)、字符设备文件(串行端口的接口设备对应的文件)
- 套接字:用于网络数据连接的文件
- 管道:用于进程间通信的文件
Linux目录配置
目录配置标准:FHS(懒,直接上图)
目录的四种交互形态:
- 可分享:可以被其他主机访问
- 不变的:存放不会经常变动的数据,例如函数库
FHS只是规定了三层目录下应放置的数据:
- /(root目录):存放开机有关的文件
- /usr:存放软件安装后的文件
- /var:存放系统或是软件运作过程有关的文件
接下来一一介绍这三个目录的子目录(继续偷懒,上图):
Root:
FHS规定的目录就只有上面这些,但是根目录下也有其他一些目录:
一些目录与开机有关,是不能与根目录分离的:
- /etc:配置文件
- /bin:重要的执行文件
- /dev:所需要的设备文件
- /lib:执行文件所需要的函数库与内核所需要的模块
- /sbin:重要的系统执行文件
/usr
usr不是user的缩写,而是unxi software resource的缩写,是软件的安装目录
/var
/var目录主要针对常态性变动的文件,包括缓存(cache)、登录文件(log file)以及某些软件运作所产生的文件
目录树
linux的文件系统逻辑结构是树状的:
其他
. :代表当前目录
.. :代表上一层目录
上一篇: jquery中怎么想让一个元素隐藏
下一篇: 求n以内的素数之和-C