Linux最优秀的地方在于它的多用户多任务环境。因此文件的权限管理就很重要了。
Linux一般将文件可存取的身份分为 owner/group/others,且三种身份各有 read/write/execute等权限。
5.1 使用者与群组
"天神" - 超级用户
root文件拥有者
适用用户专有文件群组
团队资源其他人
非文件拥有者 / 群组的用户
➡ Linux 使用者身份与群组记录的文件
系统上的账号与一般身份使用者 还有 root的信息都是记录在 /etc/passwd 文件中。
个人的密码则是记录在 /etc/shadow 文件中。
群组名称都记录在 /etc/group 文件中。
5.2 Linux文件权限
5.2.1 Linux文件属性
[dmtsai@study ~]$ su - # 先来切换一下身份看看
Password:
Last login: Tue Jun 2 19:32:31 CST 2015 on tty2
[root@study ~]# ls -al
total 48
dr-xr-x---. 5 root root 4096 May 29 16:08 .
dr-xr-xr-x. 17 root root 4096 May 4 17:56 ..
-rw-------. 1 root root 1816 May 4 17:57 anaconda-ks.cfg
-rw-------. 1 root root 927 Jun 2 11:27 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
drwxr-xr-x. 3 root root 17 May 6 00:14 .config <=范例说明处
drwx------. 3 root root 24 May 4 17:59 .dbus
-rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg <=范例说明处
[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ] [ 7 ]
[ 权限 ][链接][拥有者][群组][文件大小][ 修改日期 ] [ 文件名 ]
➡ 第一栏
第一个字符的代表文件是 目录 / 文件 / 链接文件 等
[d] 目录
[-] 文件
[l] 链接文件(link file)
[b] 设备文件里面的可供存储的周边设备(可随机存取设备)
[c] 设备文件里面的序列埠设备,如键盘、鼠标(一次性读取设备)。接下来字符三个为一组,为“rwx”三个参数的组合
[r] 可读(read)
[w] 可写(write)
[x] 可执行(execute)
[-] 没有权限
第一组为“文件拥有者可具备的权限”
第二组为“加入此群组账号的权限”
第三组为“非本人且没有加入本群组之其他账号的权限”
➡ 第二栏
有多少文件名链接到此节点(i-node)
➡ 第三栏
文件(或目录)的“拥有者账号”
➡ 第四栏
文件(或目录)所属群组
➡ 第五栏
文件的容量大小,默认单位为Bytes
➡ 第六栏
文件的创建日期或最近的修改日期
# 显示完整时间格式
ls -l --full-time
# 文件名 / 日期中文乱码
export LC_ALL=en_US.utf8
# 或者修改系统配置文件
/etc/locale.conf
➡ 第七栏
文件名,如果文件名前多一个“.”,代表文件为隐藏文件
5.2.2 改变文件属性与权限
常用于群组、拥有者、各种身份权限修改指令有:
- chgrp:改变文件所属群组
[root@study ~]# chgrp [-R] dirname/filename ...
选项与参数:
-R : 进行递回(recursive)的持续变更,亦即连同次目录下的所有文件、目录
都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
范例:
[root@study ~]# chgrp users initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 root users 1864 May 4 18:01 initial-setup-ks.cfg
[root@study ~]# chgrp testing initial-setup-ks.cfg
chgrp: invalid group: `testing'
- chown:改变文件拥有者
[root@study ~]# chown [-R] 帐号名称 文件或目录
[root@study ~]# chown [-R] 帐号名称:群组名称 文件或目录
选项与参数:
-R : 进行递回(recursive)的持续变更,亦即连同次目录下的所有文件都变更
范例:将 initial-setup-ks.cfg 的拥有者改为bin这个帐号:
[root@study ~]# chown bin initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 bin users 1864 May 4 18:01 initial-setup-ks.cfg
范例:将 initial-setup-ks.cfg 的拥有者与群组改回为root:
[root@study ~]# chown root:root initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg
# chown 也可以单独修改 用户 / 群组的权限
[root@study ~]# chown [user].[group] initial-setup-ks.cfg
- chmod:改变文件的权限,SUID,SGID,SBIT等特性
数字类型改变文件权限
Linux文件基本权限有9个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
权限数字对照表 r:4 w:2 x:1
[root@study ~]# chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递回(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
# 设置所有权限
[root@study ~]# chmod 777 .bashrc
符号类型改变文件权限
u:user g:group o:others ; r:read w:write x:execute
| chmod | u g o a | +(加入) -(除去) =(设置) | r w x | 文件或目录 |
[root@study ~]# chmod u=rwx,go=rx .bashrc
# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空白字符!
[root@study ~]# ls -al .bashrc
-rwxr-xr-x. 1 root root 176 Dec 29 2013 .bashrc
5.2.3 目录与文件的权限意义
➡ 权限对文件的重要性
- r(read):可读取此文件的实际内容,如读取文本文件的文字内容等;
- w(write):可以编辑、新增或者修改该文件内容(但不含删除该文件);
- x(execute):该文件具有可以被系统执行。
对于文件的rwx来说,主要都是针对“文件内容”而言。
➡ 权限对目录的重要性
r(read contents in directory):
读取目录结构清单权限w(modify contents of directory):
创建新的文件与目录;
删除已经存在的文件 / 目录;
对文件 / 目录进行更名;
迁移该目录内的文件、目录位置。x(access directory)
代表使用者能否进入该目录成为工作目录。
元件 | 内容 | 叠代物件 | r | w | x |
---|---|---|---|---|---|
文件 | 详细数据 data | 文件数据夹 | 读取文件内容 | 修改文件内容 | 执行文件内容 |
目录 | 文件名 | 可分类抽屉 | 读取文件名 | 修改文件名 | 进入该目录的权限(key) |
操作动作 | /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内的数据 |
如果目录有x,但是没有r,则无法列出目录文件列表,且无法[tab]补全文件名
5.2.4 Linux文件种类与扩展名
➡ 文件种类
- 正规文件(regular file)
一般进行存取的类型文件,ls -al 显示出的属性,第一个字符为[-]。
依照文件内容,大略可分为:
- 纯文本文件(ASCII)
可直接读取文件内数据的文件 - 二进制档(binary)
可执行的二进制文件(binary file),scripts / 文字体批处理文件不算 - 数据格式文件(data)
某些特定格式的文件,直接读取时会出现乱码
目录(directory)
文件目录,第一个属性为[d]链接文件(link)
类似Windows系统的超链接,第一个属性为[l]设备与设备文件(device)
与系统周边及存储等相关文件,通常集中在/dev目录下
通常又分为两种:
- 区块(block)设备文件
一些存储数据,以提供系统随机存取的周边设备,比如硬盘 / 软盘,第一个属性为[b] - 字符(character)设备文件
一些序列埠的周边设备,例如键盘、鼠标等。这些设备的特色就是“一次性读取”,不能够截断输出。第一个属性为[c]。
数据接口文件(sockets)
通常被用在网络上的数据成绩。第一个属性为[s],最常在/run 或 /tmp 目录中看到。数据输送档(FIFO,pipe)
FIFO 是 first-in-first-out的缩写。
特殊的文件类型,主要解决多个程序同时存取一个文件造成的错误问题。第一个属性为[p]。
➡ Linux文件扩展名
Linux文件没有所谓“扩展名”,能不能执行与他的权限属性有关。
不过Linux使用中通常以适当的扩展名来表示该文件是什么种类的:
.sh
脚本或批处理文件(scripts),因为批处理文件为使用shell携程的,所以扩展名编为 .shZ, .tar, .tar.gz, .zip, .tgz
经过打包的压缩文件。由于gunzip、tar等不同的压缩软件,取了相关的扩展名.html, .php
网页相关文件,分别代表HTML语法 / PHP语法的网页文件
➡ Linux文件长度限制
传统的Ext2/Ext3/Ext4文件系统以及CentOS 7当作默认文件系统的xfs,针对文件名长度的限制为:
- 单一文件或目录的最大容许文件名为 255Bytes,以一个 ASCII 英文占用一个 Bytes 来说,则大约可达 255 个字符长度。若是以每个中文字占用 2Bytes 来说, 最大文件名就是大约在 128 个中文字!
- 文件名要避免一些特殊字符:? > < ; & ! [ ] | \ ' " ` ( ) { } - +
5.3 Linux目录配置
5.3.1 Linux目录配置的依据--FHS
Linux目录配置有Filesystem Hierarchy Standard (FHS)标准。
可分享的(shareable) | 不可分享的(unshareable) | |
---|---|---|
不变的(static) | /usr(软件放置处) | /etc(配置文件) |
/opt(第三方协力软件) | /boot(开机与核心档) | |
可变动的(variable) | /var/mail(使用者邮件信箱) | /var/run(程序相关) |
/var/spool/news(新闻群组) | /var/lock(程序相关) |
可分享的
可以分享给其他系统挂载使用的目录,包括可执行文件与使用者的邮件等数据,是能够分享给网络上其他主机挂载用的目录不可分享的
自己机器上运行的设备文件或者与程序有关的socket文件等,仅与自身机器有关不变的
有些数据是不会经常变动,跟随着distribution不变动。例如函数库、文件说明文档、系统管理员所管理的主机服务配置文件等可变动的
经常改变的数据,例如登录文件、一般用户可自行收受的新闻群组等
FHS针对目录树定义出三层目录的存放标准:
- / (root,根目录): 与开机系统有关
- /usr (unix software resource): 与软件安装/执行有关
- /var (variable): 与系统运行过程有关
➡ 根目录 (/) 的意义与内容
根目录是系统最重要的一个目录,所有目录都是根目录衍生出来的,同时根目录也与开机/还原/系统修复等有关。FHS要求根目录不要放在非常大的分区内,越大的分区会放入越多的数据,如此一来目录所在分区可能会有较多错误的机会。
FHS标准建议:根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。如此不但性能较佳,根目录所在的文件系统也较不容易发生问题。
- FHS要求必须要存在的目录
目录 | 应放置文件内容 |
---|---|
/bin | /bin放置的是在单人维护模式下还能够被操作的指令。/bin下的指令可以被root与一般账号所使用,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等常用指令 |
/boot | 主要放置开机会使用的文件,包括Linux核心文件以及开机菜单与开机所需配置文件等。Linux kernel常用文件名为:vmlinuz,如果使用grub2开机管理程序,则还会存在/boot/grub2/这个目录 |
/dev | 任何设备与周边设备都以文件形态存在这个目录中。只要通过存取这个目录下的某个文件,就等于存取某个设备。比较重要的文件有 /dev/null,/dev/zero,/dev/tty,/dev/loop,/dev/sd等 |
/etc | 系统主要配置文件几乎都放置在这个目录,例如人员的账号密码、各种服务的启动档等。一般目录内各文件属性一般使用者可查阅,但是只有root有权利修改。FHS建议不要放置可执行文件(binary)在这个目录中。比较重要的文件有:/etcmodprobe.d/,/etc/passwd,/etc/fstab,/etc/issue等。 另外FHS还规范几个重要的目录最好存在/etc/目录下 /etc/opt(必要):放置第三方协力软件/opt的想配置; /etc/X11(建议):与 X Window有关的各种配置文件都在这里,尤其xorg.conf;/etc/sgml/(建议):与SGML格式有关的各项配置文件;/etc/xml/(建议):与XML格式有关的各项配置文件。 |
/lib | 放置开机时会用到的函数库,以及在/bin或/sbin下面的指令会调用的函数库。(函数库可以理解成“外挂”,某些指令必须要有这些“外挂”才能够顺利执行。)FSH还要求下面的目录必须要存在:/lib/modules/:这个目录主要放置可抽换式的核心相关模块(驱动程序) |
/media | 放置的是可以出的设备。包括软盘、光盘、DVD等暂时挂载的设备。常见文件名有:/media/floppy,/media/cdrom等。 |
/mnt | 暂时挂载某些额外的设备,会放置到这个目录中 |
/opt | 给第三方协力软件放置的目录。比如KDE桌面管理系统是独立的计划,不过可以安装到Linux系统中,因此放在这里。 |
/run | 开机后产生的各项信息存放目录。/run可以使用内存来仿真,因此性能上会好很多 |
/sbin | 开机过程中需要的,包括开机、修复、还原系统所需要的指令。某些服务器软件程序,一般放置到/usr/sbin/当中。本机自行安装的软件所产生的系统可执行文件(system binary)则放置到/usr/local/sbin/当中。常见的指令包括:fdis,fsck,ifconfig,mkfs等。 |
/srv | srv可以视作“service”缩写,一些网络服务启动后所需要取用的数据目录。常见的服务有WWW,FTP等。WWW服务网页数据可以放置在/srv/www/里面。 |
/tmp | 一般使用者或正在执行的程序暂时放置文件的地方。任何人都能够存取,所以需要定期清理一下。重要数据不可放置在此目录。FHS建议开机时,清空/tmp数据 |
/usr | 第二层FHS设置, 后续介绍 |
/var | 第二层FHS设置,主要放变动性数据,后续介绍 |
- FHS建议可以存在的目录
目录 | 应放置文件内容 |
---|---|
/home | 系统默认的使用者主文件夹(home directory)。新增一个一般使用者账号时,默认的使用者文件夹都会规范到这里来。主文件夹有两种代号(:代表目前使用者的主文件夹;dmtsai:代表用户dmtsai的主文件夹!) |
/lib<qual> | 用来存放与/lib不同格式的二进制函数库,例如支持64位的/lib64函数库等 |
/root | 系统管理员(root)的主文件夹。进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的主文件夹,所以会希望root的主文件夹与根目录放置在同一个分区种 |
- FHS标准外需要了解的一些重要目录
目录 | 应放置文件内容 |
---|---|
/lost+found | 使用标准的ext2/ext3/ext4文件系统格式才会产生的目录,系统发生错误时,将一些遗失的片段放置在这个目录,如果时xfs文件系统,就不会存在这个目录 |
/proc | 是一个“虚拟文件系统(virtual filesystem)”!放置的数据都在内存当中,例如系统核心、行程信息(process)、周边设备的状态及网络状态等。本身不占任何硬盘空间。比较重要的文件有:/proc/cpuinfo,/proc/dma,/proc/interrupts,/proc/net/*等 |
/sys | 与/proc非常类似,也是虚拟文件系统,主要也是记录核心与系统硬件信息较相关的信息。包括目前已载入的核心模块与核心侦测到的硬件设备信息等等。同样也不占硬盘容量 |
早期Linux设计时,系统发生问题进入救援模式通常仅挂载根目录,因此有5个重要目录被要求一定要与根目录放置在一起,那就是/etc,/bin,/dev,/lib,/sbin。现在许多Linux distributions将许多非必要文件移出/usr之外,/usr越来越精简,同时因为/usr被建议为“即使挂载成只读,系统还是可以正常运行”,所以救援模式也能同时挂载/usr!CentOS 7.x 已将/sbin,/bin,/lib 通通移动到/usr下!
❄ /usr的意义与内容
FHS基本定义,/usr里面放置的数据属于可分享的与不可变动的(shareable,static),/usr可以通过网络分区挂载而分享给区域网络内的其他主机来使用!
/usr 是 Unix Software Resource 的缩写,是“Unix操作系统软件资源”所放置的目录,而不是使用的数据!FHS建议所有软件开发者,应将他们的数据合理的分别放置到这个目录下的次目录,而不要自行创建该软件自己独立的目录。
/usr有点类似Windows系统的“C:\Windows\(一部分) + C:\Program files\”两个目录的综合体,系统安装完毕,这个目录会占用最多的硬盘容量。一般来说,/usr的次目录建议有:
- FHS要求必须要存在的目录
目录 | 应放置文件内容 |
---|---|
/usr/bin/ | 所有一般用户能够使用的指令到放在这里!目前CentOS 7已将全部使用者指令放置于此,并使用链接文件的方式将/bin链接至此!所以,/usr/bin与/bin是一模一样的!另外,FHS要求在此目录下不应该有子目录 |
/usr/lib/ | 基本上,与/lib功能相同,/lib就是链接到此目录中的 |
/usr/local/ | 自行安装的软件,建议安装到此目录,比较便于管理。该目录也是有bin,etc,include,lib ... ... 的次目录 |
/usr/sbin/ | 非系统正常运行所需要的系统指令。最常见就是某些网络服务软件的服务指令(deamon)!基本功能与/sbin差不多,因此目前/sbin就是链接到此目录中的 |
/usr/share/ | 主要放置只读架构的数据文件,包括共享文件。放置的数据几乎是部分硬件架构均可读取的数据,因为几乎都是文字文件。此目录下常见的几个次目录(/usr/share/man:线上说明文档 /usr/share/doc:软件杂项的文件说明 /usr/share/zoneinfo:与时区有关的时区文件) |
- FHS建议可以存在的目录
目录 | 应放置文件内容 |
---|---|
/usr/games/ | 与游戏比较相关的数据 |
/usr/include/ | c/c++等程序语言的文件开始(header)与包含档(include)放置处,以tarball方式(*.tar.gz方式安装软件)安装某些数据时,会使用里面的许多包含档! |
/usr/libexec/ | 某些不被一般使用者惯用的可执行文件或脚本(script)等,都会放置在此目录中。例如大部分的X窗口的操作指令。 |
/usr/lib<qual>/ | 与/lib<qual>/功能相同,目前/lib<qual>链接到此目录 |
/usr/src/ | 一般源代码建议放在这里,src有source的意思。至于核心源代码则建议放在/usr/src/linux/目录下。 |
❄ /var的意义与内容
/var是系统运行后逐渐占用硬盘容量的目录。/var主要针对常态性变动的文件,包括高速换成(cache)、登录文件(log file)以及某些软件运行所产生的文件,包括程序文件(lock file,run file),或者例如MySQL数据文件等。常见的次目录有:
- FHS要求必须要存在的目录
目录 | 应放置文件内容 |
---|---|
/var/cache/ | 应用程序本身运行过程中会产生的一些暂存盘; |
/var/lib/ | 程序本身执行过程中,需要使用到的数据文件放置目录。此目录下各自软件应该要有各自的目录。比如说:MySQL的数据放置在/var/lib/mysql;rpm数据放置在/var/lib/rpm |
/var/lock/ | 某些设备或文件资源一次只能被一个应用程序使用,就需要将设备上锁(lock)。目前此目录已挪至/run/lock中 |
/var/log/ | 非常非常非常重要!!!!,登录文件放置的目录!重要文件有/var/log/messages,/var/log/wtmp(记录登录者信息)等 |
/var/mail/ | 放置个人电子邮件信箱的目录,目录也被放置在/var/spool/mail/目录中 |
/var/run/ | 某些程序或服务启动后,会将他们的PID放置在此目录下!与/run相同,已链接到/run中 |
/var/spool/ | 通常放置 伫列数据(排队等待其他程序使用的数据)。使用后通常会被删除。比如邮件及工作调度数据的存储。 |
FHS仅定义出最上层(/)及次层(/usr,/var)的目录内容应要放置的文件或目录数据,其他此目录层级内,可以随开发者自行配置。
- CentOS 7的变化
将许多原本应放在根目录(/)的目录挪到/usr里去,然后进行链接设置!
/bin --> /usr/bin
/sbin --> /usr/sbin
/lib --> /usr/lib
/lib64 --> /usr/lib64
/var/lock --> /run/lock
/var/run --> /run
5.3.2 目录树(directory tree)
Linux下,所有文件与目录都是由根目录开始的!成树状结构,这种目录配置方式称为“目录树(directory tree)”。
- 目录树的起始点为根目录(/,root)
- 每一个目录不止能使用本地端的partition的文件系统,也可以使用网络上的filesystem。比如利用Network File System(NFS)服务器挂载某特定目录等
- 每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的
根据FHS定义,最好将/var独立出来,对于系统数据有一些安全性的保护!至少/var死掉时,根目录还完好,还能够进入救援模式!
5.3.3 绝对路径与相对路径
根据文件名写法不同,可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relative)。
绝对路径: 由根目录(/)开始写起的文件名或目录名称
如:/home/dmtsai/.bashrc相对路径: 相对于目前路径的文件名写法
如:./home/dmtsai 或 ./../home/dmtsai/等
5.3.4 CentOS的观察
Linux除了FHS外,还有个Linux Standard Base(LSB)标准可以依循。
# 1\. 通过 uname 检查 Linux 核心与操作系统的位版本
[dmtsai@study ~]$ uname -r # 查看核心版本
3.10.0-229.el7.x86_64
[dmtsai@study ~]$ uname -m # 查看操作系统的位版本
x86_64
# 2\. 假设你的 CentOS 7 确实有网络可以使用的情况下 (要用 root 的身份)
[root@study ~]# yum install redhat-lsb # yum 的用法后面章节才会介绍
.....(前面省略)....
Install 1 Package (+85 Dependent packages)
Upgrade ( 4 Dependent packages)
Total size: 47 M
Total download size: 31 M
Is this ok [y/d/N]: y
.....(后面省略)....
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-0.1406.el7.centos.2.3.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Is this ok [y/N]: y
.....(后面省略)....
[root@study ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:
desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:
printing-4.1-amd64:printing-4.1-noarch # LSB 的相关版本
Distributor ID: CentOS
Description: CentOS Linux release 7.0.1406 (Core)
Release: 7.0.1406
Codename: Core
5.4 重点回顾
- Linux的每个文件中,可分别给予使用者、群组与其他人三种身份个别的 rwx 权限;
- 群组最有用的功能之一,就是当你在团队开发资源的时候,且每个帐号都可以有多个群组的支持;
- 利用ls -l显示的文件属性中,第一个字段是文件的权限,共有十个位,第一个位是文件类型, 接下来三个为一组共三组,为使用者、群组、其他人的权限,权限有r,w,x三种;
- 如果文件名之前多一个“ . ”,则代表这个文件为“隐藏文件”;
- 若需要root的权限时,可以使用 su - 这个指令来切换身份。处理完毕则使用 exit 离开 su的指令环境。
- 更改文件的群组支持可用chgrp,修改文件的拥有者可用chown,修改文件的权限可用chmod
- chmod修改权限的方法有两种,分别是符号法与数字法,数字法中r,w,x分数为4,2,1;
- 对文件来讲,权限的性能为:
r:可读取此一文件的实际内容,如读取文本文件的文字内容等;
w:可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
x:该文件具有可以被系统执行的权限。 - 对目录来说,权限的性能为:
r (read contents in directory)
w (modify contents of directory)
x (access directory) - 要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给;
- 能否读取到某个文件内容,跟该文件所在的目录权限也有关系 (目录至少需要有 x 的权限)。
- Linux文件名的限制为:单一文件或目录的最大容许文件名为 255 个英文字符或 128 个中文字符;
- 根据FHS的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下
- FHS订定出来的四种目录特色为:shareable, unshareable, static, variable等四类;
- FHS所定义的三层主目录为:/, /var, /usr三层而已;
- 绝对路径文件名为从根目录 / 开始写起,否则都是相对路径的文件名。