Linux的文件权限与目录配置
写在前面:这是我跟着《Linux私房菜》这本书做的学习笔记,本人也是新手一个,所以可能会存在一定的错误,如果您发现了,敬请指正。
Linux命令基础:
-
Linux命令模式下的命令的执行:
command [-options] parameter1, parameter2 ...
说明:
1.一行命令中第一个输入的部分绝对是命令或者可执行文件;
2.[]表示可选项,通常选项前会带-号;
3.按下enter键命令会立即执行;命令太长可以使用反斜杠\转义回车键,使命令连续到下一行,注意,反斜杠后必须立刻接着特殊字符才能转义;
4.Linux区分大小写;
命令模式里执行命令,会有两种结果:一种是直接显示结果,回到命令模式等待下一个命令;一种是进入到该命令的环境,直到该命令结束才回到命令行界面。 -
实用快捷键:
tab 自动补全 在一行命令的第一个字段后:补全命令 ; 在一行命令的第二个字段后:补全文件名; Ctrl + c 中断目前程序; shift + pagedown pageup 前后翻页;
-
帮助键:
1.命令1 --help 2.man(manual 操作说明) 命令 ,查找关于这个命令的详细介绍,输入 /关键字1 会查找出关键字1所在的位置。
Linux的文件权限与目录配置
-
用户和用户组:
因为Linux是一个人多人多任务的系统,每个账号可以有多个用户组的支持。多个用户可以在同一用户组,但是我们可以设置权限,好让某些用户个人信息不被用户组的拥有者查询以保有 个人私人信息,而设置用户组共享,则可让大家共同分享。(好比一个家庭的不同成员) -
Linux文件权限概念:
查看文件信息的命令:ls -al ls是list的意思 -al是列出所有文件的权限和属性,包括隐藏文件;
文件权限一共是10个字符:第一个:d表示目录; - 表示文件;l表示连接文件; 还有一些其他的字符,不再列举。剩余9个字符每三个为一组:第一组:文件拥有者的权限;第二组:加入此用户组的账号的权限;第三组:非本人且没加入该用户组的其他账号的权限; -
修改文件权限的几种命令:
1.chgrp: 修改文件所属用户组
用法: chgrp [-R] dirname/filename... (-R进行递归修改,连同子目录下的文件,目录都要修改。) 示例: chgrp users init.config (将init.config所属组修改为users) 注意:要修改的组名(users)必须在/etc/group里存在;
2.chown: 修改文件拥有者
用法: chown [-R] 账号名 文件名或目录 或者: chown [-R] 账号名:用户组名 文件或目录 示例: chown bin init.config 注意:该用户名bin必须是已经存在的,即在/etc/passwd这个文件中有记录
3.chmod: 修改文件的权限
文件的权限可以使用数字和符号两种方式来修改; 文件权限的字符一共9个,三个字符一组,分别是:拥有者,所属组,其他人;三种身份有各自的读,写,执行权限;
a.使用数字: 每种身份的权限都用三个字符来表示,rwx,其中:r数值为4,w数值为2,x数值为1。然后将每种身份的权限值相加。例如: 某text.config文件的权限是 -rw-r--r-- 用数值表示就是644 要将该文件的权限修改为-rwxrwxrwx, 使用如下命令: chmod 777 text.config
b.使用符号: 9个权限分别是:拥有者user,所属组group,其他人other,分别用u,g,o来表示。
命令示例: chmod u=rw,g=rx,o=rx text.config (注意:u=rw,g=rx,o=rx是连在一起的,不能有空格) chmod a+w text.config chmod a-x text.config
+,-,= 分别代表加入,移除,设置; u拥有者,g所属组,o其他人,a所有身份; 所以第一个命令就是给拥有者rw权限,所属组rx权限,其他人rx权限; 第二个命令就是所有身份添加写权限而不修改其他权限。 第三个命令就是给所有身份去掉可执行权限而不修改其他权限。
-
权限对文件的重要性:
文件是实际含有数据的地方,权限对文件的意义:
r: read 可以去取此文件的实际内容;
w: write 可以编辑,新增,修改该文件的内容,但不含删除;
e:execute 可以编辑,新增,修改该文件的内容,但不含删除; -
权限对目录的重要性:
目录的主要内容在记录文件名列表,文件名与目录有强烈的关联:
r: read contents in directory 可以读取目录结构列表的权限,你可以读取该目录下的文件名列表。
w: modify contents of directory 它表示你具有改动该目录结构列表的权限:新建文件和目录;删除已存在的文件和目录(无论该文件的权限是什么);将已存在的文件和目录改名;移动该目录内的文件和目录位置;
x: access directory 用户能否进入该目录成为工作目录;
有一个目录的权限如下所示:drwxr--r-- root root 4096 Jun 25 08:35 .ssh
对于系统中不在root组的账号,只有r权限,因此只能查询该目录的文件名列表,而不能切换到该目录内。如果你在某目录下没有x权限, 那你就无法切换到该目录内,无法执行该目录下的任何命令,即使你有该目录的rw权限。因此要开放目录给任何人浏览时,至少要给rx权限,但w权限不可随便给。
Linux 目录配置
-
Linux目录配置的依据——FHS(FileSystem Hierarchy Standard)
很多社区和公司都在利用Linux进行开发,如果每个人都按照自己的想法配置文件放置的位置, 势必会造成困扰,所以就有了FHS。FHS的重点在于规范每个特定的目录应该放什么样的数据而已。FHS依据文件系统使用的频繁与否,是否允许用户随意修改,将目录定义成四种交互作用的形态。
可分享:可以分享给其他系统挂载的使用的目录,包括执行文件与用户的邮件信息等数据。
不可分享:自己机器上的设备文件或者与程序有关的socket文件等。
不可变的:有些数据是不会经常变动的,跟随发行版本而变动,如库函数, 文件说明,系统管理员所管理的主机服务配置文件等。
可变的:经常修改的数据,如日志文件,一般用户可自行接收的新闻组。
关于FHS的详细说明:http://www.pathname.com/fhs/pub/fhs-2.3.html#GENERALGUIDELINES
Linux所有文件与目录都是从根目录开始的,然后再一个一个分支下来,我们称这种目录配置方式为:目录树。根据文件明写法的不同,也将所谓的路径(path)分为绝对路径(absolute)和相对路径(relative)。
两种文件名/路径的写法依据是:
绝对路径:由根目录(/)开始写起的文件名或目录名称,如/home/uses/.bashrc
相对路径:相对于当前路径的文件名写法,如 ./home/users 或者 ../home/users
.
代表当前目录,也可以./
表示。..
代表上级目录,也可用../
表示。