Linux文件权限与目录配置
一、使用者与群组
-
文件拥有者(User)
-
群组概念(Group)
-
其他人概念(Other)
-
Linux 用户身份与群组记录文件
root 相关信息记录在**/etc/passwd**
个人密码记录在**/etc/shadow**
所有的组名记录在**/etc/group**
二、Linux 文件权限概念
1、Linux文件属性
su - #切换身份root
ls #查看文件指令
ls 是list的意思,重点在显示文件的文件名与相关属性。而选项**-al**则表示列出所有的文件详细的权限与属性 (包含隐藏文件,就是文件名第一个字符为 . 的文件)。
[txj@localhost ~]$ ls -al
drwx------. 16 txj txj 4096 3月 28 15:06 .
drwxr-xr-x. 3 root root 17 3月 8 11:00 ..
-
第一栏代表这个文件的类型与权限**(permission)**
第一个字符代表这个文件是 目录、文件或链接文件等等 :
-
当为[ d ]则是目录,例如上表档名为.config的那一行;
-
当为[ - ]则是文件,例如上表档名为initial-setup-ks.cfg那一行;
-
若是[ l ]则表示为连结档(link file);
-
若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
-
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
以三个为一组,且均为rwx 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
-
-
第二栏表示有多少档名连结到此节点
-
第三栏表示这个文件目录的拥有者账号
-
第四栏表示这个文件的所属群组
-
第五栏为这个文件的容量大小,默认单位为 bytes;
-
第六栏为这个文件的建档日期或者是最近的修改日期:
修改系统配置文件 /etc/locale.conf
-
第七栏为这个文件的档名
如果档名之前多一个**.** ,则代表这个文件为 隐藏档 ,例如上表中的.config 那一行,该文件就是隐藏档。
Tips:对于更详细的 ls 用法,使用 ls --help 或 man ls 或 info ls 去看看他的基础用法!
Linux文件权限重要性
1、系统保护功能
2、团队开发软件或数据共享功能
3、未将权限设定妥当的危害
2、如何改变文件属性与权限
修改权限指令:
chgrp :改变文件所属群组
chgrp [-R] dirname/filename ...
chown :改变文件拥有者
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录
chmod :改变文件的权限, SUID, SGID, SBIT 等等的特性
如果要连目录下的所有次目录或文件同时更改文件拥有者的话,直接加上 -R 的选项即可!
复制文件:
cp 来源文件 目标文件
Linux 文件的基本权限就有九个,分别是 owner/group/others 三种身份各有自己的 read/write/execute 权限,先复习一下刚刚上面提到的数据:文件的权限字符为:-rwxrwxrwx, 这九个权限是三个三个一组的!
数字类型改变文件权限
r:4
w:2
x:1
chmod [-R] xyz 文件或目录
符号类型改变文件权限
chmod a+x filename
3、目录与文件权限意义
-
权限对文件的重要性
文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)等等。
r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
x (eXecute):该文件具有可以被系统执行的权限。 -
权限对目录的重要性
r (read contents in directory):
表示具有读取目录结构列表的权限,所以当你具有读取®一个目录的权限时,表示你可以查询该目录下的文件名数据。w (modify contents of directory):
这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:建立新的文件与目录;
删除已经存在的文件与目录(不论该文件的权限为何!)
将已存在的文件或目录进行更名;
搬移该目录内的文件、目录位置。** x (access directory)**:目录的 x 代表的是用户能否进入该目录成为工作目录
建立目录可用 mkdir(make directory),建立空文件可用 touch来处理
4、Linux文件种类与拓展名
文件种类:
纯文本档(ASCII)
二进制文件(binary)
数据格式文件(data)
文件拓展名:
在 Windows 底下, 能被执行的文件扩展名通常是 .com .exe .bat 等等,而在 Linux 底下,只要你的权限当中具有 x 的话,例如[ -rwxr-xr-x ] 即代表这个文件具有可以被执行的能力喔!
三、Linux目录配置
1、Linux目录配置依据-FHS
目录 | 放置文件内容 |
---|---|
/var | 与系统运作过程有关 |
/home | 系统默认的用户家目录 |
/root | 系统管理员(root)的家目录 |
/bin | 系统有很多放置执行文件的目录,但/bin 比较特殊 |
/boot | 这个目录主要在放置开机会使用到的文件,包括 Linux 核心文件以及开机选单与开机所需配置文件等 |
/dev | 在 Linux 系统上,任何装置与接口设备都是以文件的型态存在于这个目录当中的。 |
/etc | 系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、 各种服务的启始档等等。 |
/lib | 系统的函式库非常的多,而/lib 放置的则是在开机时会用到的函式库, 以及在/bin 或/sbin 底下的指令会呼叫的函式库而已。 |
/media | /media 底下放置的就是可移除的装置啦!包括软盘、光盘、DVD 等等装置都暂时挂载于此 |
/mnt | 如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。 |
/opt | 第三方协力软件放置的目录。 |
/sbin | 放在/sbin 底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。 |
/tmp | 这是让一般用户或者是正在执行的程序暂时放置文件的地方。 |
/usr | 与软件安装/执行有关 |
2、目录树
目录树**(directory tree)**
目录树的启始点为根目录 (/, root);
每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem 。举例来说, 可以利用 Network File System (NFS) 服务器挂载某特定目录等。
每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的
3、绝对路径与相对路径
绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;
相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 …/…/home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法
. :代表当前的目录,也可以使用 ./ 来表示;
… :代表上一层目录,也可以 …/ 来代表。
uname -r # 查看核心版本
uname -m # 查看操作系统的位版本