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

.代表当前目录,也可以./表示。            ..代表上级目录,也可用../表示。

你可能感兴趣的:(Linux的文件权限与目录配置)