第五章、Linux 的文件权限与目录配置 --《鸟哥的linux私房菜》

Linux 最优秀的地方之一就在于他的多用户多任务环境。而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要了。

Linux 一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有read/write/execute 等权限。

那么, 在 Linux 底下这么多的目录/文件,到底每个目录/文件代表什么意义呢?底下就来一一介绍呢!

5.1 使用者与群组

1. 文件拥有者

各自拥有的权利

一个测试例子(了解即可)

在root用户下通过

useradd -d /home/test test

创建了一个test用户,指定了家目录是/home/test。然后使用test用户建立一个文件

touch file.txt

那么这个file.txt是属于test用户的,如果我在root用户下再建立一个jifen用户,指定家目录是/home/jifen

[root@VM-4-7-centos ~]# useradd -d /home/jifen jifen

那么jifen这个用户就没有权限查看我的file.txt文件。实质上根本没有权限访问 /home/test目录。

[jifen@VM-4-7-centos ~]$ ll /home/test/
ls: cannot open directory /home/test/: Permission denied

2. 群组概念

共同拥有的权利

3. 其他人

其实就是没啥交集的一个用户了

** Linux 系统里面账号、密码、群组信息的存储文件位置**
Linux 系统当中,默认的情况下,所有的系统上的账号与一般身份使用者,都是记录在/etc/passwd 这个文件内的。
至于个人的密码则是记录在/etc/shadow 这个文件下。
此外,Linux 所有的组名都纪录在/etc/group 内!
不要随便删除这三个文件啊!

5.2 Linux 文件权限概念

5.2.1 Linux 文件属性

[权限][连接][拥有者][群组][文件容量][修改日期][文件名/文件夹名]

 第一个字符代表这个文件是『目录、文件或链接文件等等』:

o 当为[ d ]则是目录,例如上表档名为『.config』的那一行;
o 当为[ - ]则是文件,例如上表档名为『initial-setup-ks.cfg』那一行;
o 若是[ l ]则表示为连结档(link file);
o 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
o 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

o 第一组为『文件拥有者可具备的权限』,
o 第二组为『加入此群组之账号的权限』;
o 第三组为『非本人且没有加入本群组之其他账号的权限』。
第五栏为这个文件的容量大小,默认单位为 bytes;

如果想要显示完整的时间格式,使用

[test@VM-4-7-centos ~]$ ls -l --full-time
total 8
-rwxr-xr-x 1 test test  601 2021-01-19 14:12:35.915116966 +0800 loadods.pl
drwxrwxr-x 5 test test 4096 2021-01-20 09:43:25.375335422 +0800 soft
[test@VM-4-7-centos ~]$

语言修改:中文并没有办法在纯文本的终端机模式中正确的显示,
所以此栏会变成乱码。 那你就得要使用『export LC_ALL=en_US.utf8』来修改语系

5.2.2 如何改变文件属性与权限(经常使用)

 chown :改变文件拥有者,或者群组
 chmod :改变文件的权限

例如:把test用户下的loadods.pl文件的所属群组从test改为root

[root@VM-4-7-centos ~]# ll /home/test/loadods.pl 
-rwxr-xr-x 1 test test 601 Jan 19 14:12 /home/test/loadods.pl
[root@VM-4-7-centos ~]# 
[root@VM-4-7-centos ~]# 
[root@VM-4-7-centos ~]# chown test:root /home/test/loadods.pl 
[root@VM-4-7-centos ~]# 
[root@VM-4-7-centos ~]# ll /home/test/loadods.pl 
-rwxr-xr-x 1 test root 601 Jan 19 14:12 /home/test/loadods.pl
[root@VM-4-7-centos ~]# 

 改变权限, chmod
1. 数字类型改变文件权限
Linux 文件的身份: owner/group/others 三种身份
文件权限 read/write/execute 权限

文件的权限字符为:『-rwxrwxrwx』
各权限的分数对照表如下:

r:4
w:2
x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,
例如当权限为: [-rwxrwx---] 分数则是:

owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0

2. 符号类型改变文件权限

u, g, o 来代表三种身份的权限!
a 则代表 all 亦即全部的身份!
读、写、执行的权限就可以写成 r, w, x
利用『chmod a+x filename』 ,就可以让该程序拥有执行的权限了
例如:给test.txt文件赋予所有用户都可以写的权限

[test@VM-4-7-centos lianxi]$ ll
total 0
-rw-rw-r-- 1 test test 0 Jan 20 18:24 test.txt
[test@VM-4-7-centos lianxi]$ 
[test@VM-4-7-centos lianxi]$ 
[test@VM-4-7-centos lianxi]$ 
[test@VM-4-7-centos lianxi]$ chmod a+x test.txt 
[test@VM-4-7-centos lianxi]$ ll
total 0
-rwxrwxr-x 1 test test 0 Jan 20 18:24 test.txt

5.2.3 目录与文件之权限意义:

 权限对文件的重要性

     r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
     w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
     x (eXecute):该文件具有可以被系统执行的权限。

 权限对目录的重要性
目录主要的内容在记录文件名列表

     r (read contents in directory):,表示你可以查询该目录下的文件名数据    
     w (write):可以对该目录,以及目录下的文件CURD
     x (eXecute): 目录的 x 代表的是用户能否进入该目录成为工作目录(即可cd 进入该目录,执行比如start.sh等文件)

5.3 Linux 目录配置

最上层(/)及次层(/usr, /var)的目录内容应该要放置的文件或目录数据

 可分享的:可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据
 不可分享的:自己机器上面运作的装置文件等, 仅与自身机器有关

 / (root, 根目录):与开机系统有关;
 /usr (unix software resource):与软件安装/执行有关;
 /var (variable):与系统运作过程有关。

自己安装的额外软件,习惯放置在/usr/local
/home 这是系统默认的用户家目录,比如test用户,默认的家目录是:/home/test

必须存在的目录

可以存在的目录

/var 目录主要针对常态性变动的文件,包括快取(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如 MySQL 数据库的文件。

在其他次目录层级内,就可以随开发者自行来配置

5.3.2 目录树(directory tree)(了解)

5.3.3 绝对路径与相对路径

 绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;  相对路径:是以『你当前所在路径的相对位置』来表示的。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法

例如:当前在/home/test/soft路径下,想去进入/home/test/data_option路径写法:
cd ../data_option/
其中: 要回到上一层 (../)

[test@VM-4-7-centos soft]$ 
[test@VM-4-7-centos soft]$ pwd
/home/test/soft
[test@VM-4-7-centos soft]$ 
[test@VM-4-7-centos soft]$ cd ../
.cache/      .config/     data_option/ lianxi/      soft/        .ssh/
[test@VM-4-7-centos soft]$ cd ../data_option/
[test@VM-4-7-centos data_option]$ pwd
/home/test/data_option
[test@VM-4-7-centos data_option]$ 

说明:

 . :代表当前的目录,也可以使用 ./ 来表示;
 .. :代表上一层目录,也可以 ../ 来代表。

《本小节完》

原文地址:https://www.cnblogs.com/lanboy/p/di-wu-zhanglinux-de-wen-jian-quan-xian-yu-mu-lu-pe.html