文件权限与目录配置
- 如何修改文件属性与权限
-
- 修改文件所属用户组 chgrp
- 修改文件拥有者 chown
- 修改文件权限 chmod
-
- 数字类型修改文件权限
- 文字类型修改文件权限
- 目录与文件的权限意义
-
- 对文件的重要性
- 对目录的重要性
- Linux文件种类与拓展名
-
- 文件种类
- Linux文件名
- Linux文件名长度限制
- Linux文件名的限制
如何修改文件属性与权限
修改文件所属用户组 chgrp
change group ==>chgrp
要修改的组名必须在/etc/group中存在,否则显示错误。
[[email protected] ~ ]# chgrp [-R] dirname/filename
选项与参数 :
-R:进行递归(recursive)修改,亦连同子目录下的所有文件、目录都更新成为这个用户组之意,常常用在修改某一目录内所有的文件之情况。
范例:
[[email protected] ~ ]# chgrp users initial-setup-ks.cfg
修改文件拥有者 chown
change owner ==>chown
用户必须是已经存在的账号,也就是在/etc/passwd中有记录的用户名称才可修改。
除了修改文件拥有者外,还可顺便直接修改用户组的名称。
[[email protected] ~ ] # chown [-R] 账号名称 文件或目录
[[email protected] ~ ] # chown [-R] 账号名称:用户组名称 文件或目录
范例:
[[email protected] ~ ] # chown root:root initial-setup-ks.cfg
修改文件权限 chmod
更改模式==> chmod
数字类型修改文件权限
R:4
W:2
X:1
owner= rwx = 4 + 2 + 1 = 7
group= rwx = 4 + 2 + 1 = 7
others= - - - = 0 + 0 + 0 = 0
[[email protected] ~]# chmod [-R] xyz
文件或目录选项与参数:
xyz:就是刚刚提到的数字类型的权限属性,为rwx属性数值的相加
-R:进行递归修改,亦连同子目录下的所有文件都会修改
[root @ study〜] #ls -al .bashrc -rw-r--r--。
1root 176 2013年12月29日.bashrc
[root @ study〜] #chmod 777 .bashrc
[root @ study〜] #ls -al .bashrc -rwxrwxrwx。
1 root root 176 2013年12月29日.bashrc
文字类型修改文件权限
chmod | u / g / o / a | + / - / = | r / w / x | 文件或目录 |
---|
[[email protected] ~ ]#chmod u=rwx,go=rx .bashrc
注:u=rwx,go=rx 是连在一起的,中间没有空格
[[email protected] ~ ]#chmod u+rx,go+x .bashrc
在+/-的状态在,只要是没有指定到的项目,则该权限不会被变动
目录与文件的权限意义
对文件的重要性
- 与Windows区别:文件是否能被执行,借由是否有【x】这个权限来决定,与文件名没有绝对的关系。
- 当对一个文件有【w】权限时,具有写入、编辑、新增、修改文件内容的权限,但并不具有删除该文件本身的权限。
对目录的重要性
- r(read contents in directory)表示具有读取目录结构列表的权限,所以当你具有读取一个目录的权限时,表示你可以查询该目录下的文件名数据,所以你就可以利用ls这个命令将该目录的内容列表显示出来。
-
w(modify contents of directory)表示具有修改该目录结构列表的权限,也就是:
(1)建立新的文件和目录;
(2) 删除已经存在的文件与目录(无论该文件的权限是什么)
(3)将已存在的文件或目录进行更名;
(4)移动该目录内的文件、目录位置
- x(access directory)表示用户具有进入该目录成为工作目录的权限
工作目录(work directory): 登录Linux时,所在的家目录就是当前的工作目录。
组件 | 内容 | 替代对象 | r | w | x |
---|---|---|---|---|---|
文件 | 详细数据data | 文件夹 | 读到文件内容 | 修改文件内容 | 执行文件内容 |
目录 | 文件名 | 可分类抽屉 | 读到文件名 | 修改文件名 | 进入该目录的权限 |
示例:
假设有三个文件名
- /dir1/file1
- /dir2
操作 | /dir1 | /dir1/file1 | /dir2 | 重点 |
---|---|---|---|---|
读取file1内容 | x | r | - | 要能进入/dir1才能读到里面的文件数据 |
修改file1内容 | x | rw | - | 要进入/dir1且修改file1 |
执行file1内容 | x | rx | - | 要进入/dir1且能运行file1 |
删除file1内容 | wx | - | - | 要进入/dir1且具有目录修改的权限 |
将file1复制到/dir2 | x | r | wx | 要能读file1且具有/dir2的修改权限 |
注:要开放的目录通常具有rx这两个权限
Linux文件种类与拓展名
文件种类
-
常规文件(regular file)
就是一般我们在进行读写的类型的文件,在由ls -al所显示出来的属性方面,第一个字符为[ - ],例如[- rwxrwxrwx]。
-
纯文本文件(ASCII)
几乎只要我们可以用来作为设置的文件都属于这一种文件类型。
- 二进制文件(Binary)
-
数据文件(data)
有些程序在运行的过程当中会读取某些特定格式的文件,那些特定格式的文件,那些特定的文件可以被称为数据文件(data file)。举例来说,我们的Linux在用户登录时,都会将登录的数据记录在/var/log/wtmp这个文件内,该文件时一个数据文件,它能够通过last 这个命令读出来。但是使用cat时,会读出乱码,因为它是属于一种特殊格式的文件。
-
-
目录(directory)
第一个属性为[d]
-
链接文件(link)
第一个属性为[l],类似windows系统下面的快捷方式
-
设备与设备文件(device)
与系统周边及存储等相关的一些文件,通常都集中在/dev这个目录下
-
区块(block)设备文件
就是一些存储数据,以提供系统随机存取的接口设备,举例来说硬盘和软盘就是。你可以随机地在硬盘的不同区块读写,这种设备就是块设备。通常在/dev/sda里面,第一个属性为[b]。
-
字符(character)设备文件
亦即是一些串口端口的接口设备,例如鼠标键盘等。这些设备的特色就是一次性读取,不能够截断输出。举例来说,你不可能让鼠标跳到另一个画面,而是连续滑动到另一个地方,第一个属性为[c]。
-
-
数据接口文件(sockets)
通常用于在网络上的数据交换,最常在/run或/tmp中看到这种文件类型,第一个属性为[s]。
-
数据输送文件(FIFO,pipe)
FIFO是先进先出(first-in-first-out)的缩写,即管道,主要目的是解决多个程序同时读写一个文件所造成的错误问题。第一个属性为[p]。
Linux文件名
一个Linux文件能不能被执行,与它第一栏的十个属性有关,与文件名一点关系都没有,只要权限有x,就代表这个文件具有可以被执行的能力。
但具有可以被执行的能力,能不能执行成功还是得看文件内容。通常还是会以适当的拓展名来表示该文件是什么类型,下面有数种常用的拓展名:
- *.sh:脚本或批处理文件(scripts)
- .Z、.tar、.tar.gz、.zip、.tgz:经过打包的压缩文件
- .html、.php:网页相关文件
Linux文件名长度限制
在Linux下面,使用传统的ext2、ext3、ext4文件系统以及近来被CentOS7当作默认文件系统的xfs而言,针对文件的文件名长度限制为:
- 单一文件或目录的最大容许文件名为255字节,以一个ASCII英文占用一个字节来说,则大约可达255个字符长度。若是以每个汉字占用2个字节来说,最大文件名就是大约在128个汉字之间
Linux文件名的限制
由于Linux在命令行模式下的一些命令操作关系,一般来说,你在设置Linux下面的文件名时最好避免一些特殊的字符比较好,例如下面这些:
* ? > < ; & ![ ] | \ ‘ ” ` ( ) { }