06_chapter Linux文件权限与目录配置
1,UGO
/etc/passwd 保存系统上的账号相关信息
/etc/shadow 保存个人的密码
/etc/group 保存所有的组名及相关信息
这三个文件可以说是Linux系统里面账号、密码、群组信息的集中地啰! 不要随便删除这三个文件啊!
2,Linux文件权限概念
chown
chown [-R] 账号名称 档案或目录 修改档案的所属用户
chown [-R] 账号名称:组名 档案或目录 修改档案的所属用户与所属组
chown [-R] :组名 档案或目录 修改档案的所属组
chomod
1——数字类型改变档案权限
r:4 w:2 x:1(execute)
chmod [-R] xyz 档案或目录 将档案的权限修改为xyz
2——符号类型改变档案权限
chmod u/g/o/a +/-/= rwx 档案或目录
例子:
chmod u=rwx,go=rx test
注意:u=rwx,go=rx是连在一起的,中间没有任何空格符
档案权限对于一般档案与目录档案的差异:
1,一般档案的权限
r(read): 可读取此档案的实际内容,如读取文本文件的文字内容等
w(write): 可以编辑、新增或者是修改该档案的内容(但不含删除该档案)
x(execute): 该档案具有可以被系统执行的权限
注1:在linux中,档案能否被执行是借由 x 这个权限来决定的!跟档名是没有绝对的关系的。
注2:当你具有对一个档案的 w 权限时,可以写入/编辑/新增/修改档案的内容,当并不具备删除该档案本身的权限。
注3:我们这样理解,对于档案的 rwx 来说,主要都是针对 档案的内容 而言,与档案档名的存在与否没有关系。
2,目录档案的权限
r(read contents in directory):
表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。
w(modify contents of directory):
这个可写入的权限对目录来说,是很了不起的!因为他表示你具有异动该目录结构列表的权限:
1,建立新的文件与目录;
2,删除已经存在的文件与目录(不论该文件的权限为何!)
3,将已存在的文件或目录进行更名;(不论文件的权限如何)
4,搬移该目录内的文件、目录位置。(搬移该目录内的文件、目录位置)(不论文件的权限如何)
总之,目录的w权限就与该目录下的文件名 异动有关。
x(access directory):
目录的 x 代表的是用户能否进入该目录,使其成为工作目录的用途(即能否 cd 到该目录下)
也就是说,如果你在某目录下不具有x权限,你就无法切换到该目录下,也就无法执行该目录下的任何命令,即使你具有该目录的r权限。
注:要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给!
Linux文件种类与扩展名
文件种类:
1、正规文件(regular file):
在由 ls -al 所显示出来的属性方面,第一个字符为 [ - ],就是一般我们在进行存取的类型的文件。另外,依照文件的内容,又大略可以分为:
纯文本档(ASCII)
二进制文件(binary):系统其实仅仅认识且可以执行二进制文件,Linux中的可执行文件(scripts,文字型批处理文件不算)就是就是这种格式。
数据格式文件(data):有些程序在运作的过程中会读取某些特定格式的文件,那些特定格式的文件被称为数据文件。如Linux在登陆时,都会将登陆的数据记录在/var/log/wtmp那个文件内,该文件是一个data file,我们能透过last指令读出来。但使用cat时,会出现乱码。
2、目录(directory):
ls -al所显示出来的属性方面,第一个字符为[d]
3、连接档(link):
ls -al所显示出来的属性方面,第一个字符为[l],就是类似Windows中的快捷方式。
4、设备与装置文件(device):
与系统周边及存储等相关的一些文件,通常都集中在/dev这个目录之下,通常分为两种:
①区块(block)设备档:
[b],就是一些存储数据,以提供系统随机存取的接口设备,如硬盘与软盘
②字符(character)设备文件:
[c],亦即是一些串行端口的接口设备,如键盘、鼠标等,特点是“一次性读取”,不能够阶段输出。
5、数据接口文件(sockets):
[s],最常在/var/run目录下看到这类文件,这种类型的文件通常被用在网络上的数据承接了。我们可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个socket来进行数据的沟通了。
6、数据传送文件(FIFO,pipe):
一种特殊类型的文件,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题。 FIFO是first-in-first-out的缩写。第一个属性为[p] 。
注:socket与FIFO文件与process有关。
Linux文件的扩展名
一个Linux文件能不能被执行,与他的第一栏的十个属性有关, 与档名根本一点关系也没有。
不过,可以被执行跟可以执行成功是不一样的。
不过我们仍然希望可以藉由扩展名来了解该文件是什么东西,所以:
*.sh:脚本或批处理文件(scripts),因为批处理文件为使用shell写成的,所以扩展名就编成 .sh ;
*Z, *.tar, *.tar.gz, *.zip, *.tgz:经过(gzip、tar等)打包的压缩文件。
*.html,*.php:网页相关文件
注:,从网络上传送到你的 Linux系统中,文件的属性与权限确实是会被改变的喔!
Linux文件长度限制
在Linux底下,使用预设的Ext2/Ext3文件系统时,针对文件的档名长度限制为:
单一文件或目录的最大容许文件名为 255 个字符;
包含完整路径名称及目录 (/) 之完整档名为 4096 个字符。
Linux文件名的限制
一般来说,你在设定Linux底下的文件名时, 最好可以避免一些特殊字符比较好!例如底下这些:
* ? > < ; & ! [ ] | \
另外,文件名的开头为小数点『.』时, 代表这个文件为『隐藏档』喔!同时,由于指令下达当中,常常会使用到 -option 之类的选项, 所以你最好也避免将文件档名的开头以 - 或 + 来命名啊!