文件权限管理:修改所有者及权限:chmod 、chgrp、chown 命令。
主要概念:文件有一个拥有人(owner),拥有组(group)和其他人(other)权限。
三种权限类型:可读(r) 、可写(w) 、可执行(x)。
三种访问级别:(u)拥有人(g)拥有组(o)其他。
查看所有者和权限:ls -l 命令。
文件权限管理显示如下:ls -l 列出文件的详细信息drwxr-xr-x. 2 root root 4096 Sep 27 15:36 dir1-rw-r--r--. 1 root root 0 Sep 27 15:36 file1第一列,第一个字符:文件类型:第一列,2-10字符,代表文件权限,其中,九位字符中,每三个一段,分三段第一段三位,表示文件所有者的权限第二段三位,表示文件所属组的权限第三段三位,表示其他人具有的权限第三列,数字表示文件的数量第四列,文件所属用户的用户名称第五列,表示文件所属分组的分组名称第六列,表示文件大小最后一列,表示文件名称在其中最后一列和第六列之间的内容,表示文件的修改或者创建日期三种访问级别:(u)用户(g)组(o)其他每个文件都有三组不同的读、写和执行权限,分别适用于三种访问级别,如图所示。
第一组适用于文件的拥有人,第二组适用于文件的拥有组:最后一组适用于其他人。
文件的权限一般用9 个字符表示,如rwxr-xr- x.头三个字符代表“用户”权限,中间三个字符代表“组”权限,最后三个代表“其他”权限。
字母代表相对允许的权限,不允许的权限由“-”表示。
当有人试图访问一个文件的时候,Linux 系统会按顺序问以下问题:1. 使用者拥有这个文件吗?如果是,启用用户权限。
2. 用户是组成员吗?如果是,启用组权限。
3. 如果不是,启用其他权限。
Linux 里的每个文件都有三种属性,允许用户控制文件的访问者和访问方式:用户所有者,拥有组和其他人权限。
当用户创建一个文件,这个用户就是这个文件的拥有人(通常),这个用户的组也成为这个文件的拥有组。
用户不能改变文件的拥有人,但在一定程度上可以改变文件的拥有组。
权限规定三个不同的级别的用户能够如何使用这个文件:文件的拥有人、文件的拥有组和其他人。
三种权限的类型:(r )可读(w )可写(x )可执行其中rwx权限对于文本文件和目录具有不同的含义:rwx对于文本文件具有的含义:r read 可以对文件内容进行读取w write 可以对文件内容进行增、删、改操作xexecute可执行权限,脚本文件需要x权限,普通文件无需此权限-------------------------------------------------------------------rwx对于目录具有的含义:r 可以用ls、dir命令列出目录内的文件名简略信息w可以对目录内的files进行新建、删除、重命名操作(需要配合x权限)x 可以进入目录的权限当决定谁可以访问文件时,用户有三种权限类型可以选择,如下表所示。
可读权限表示仅允许用户浏览文件,但只有用户有写权限才可以修改文件。
可执行文件允许文件使用人将该文件作为命令来执行。
如果要开启一个应用程序或脚本,含有这个应用程序或脚本文件必须是可执行文件。
一般(数据)文件不使用可执行权限。
修改文件权限:[root@server0 ~]# whatis chmodchmod change permissions of a file-R, --recursive change files and directories recursively要改变存取权限模式:chmod [-R] 模式文件这里的模式是:u、g、或o,分别代表用户、组群和其它用户+ 或–代表授予或拒绝;=代表直接赋值权限;a代表ugo的组合r、w、或x,分别代表读取、写入、或执行使用三个数字模式通过把以下数值相加起来,来计算权限:4(代表读取)2(代表写入)1(代表执行)0(没有任何权限)第一个数字代表所属用户的权限第二个数字代表组群权限第三个数字代表其它用户的权限更改文件所属分组开始之前,先新建三个测试账号(tom,test,natasha)[root@server0 ~]# yum -y install system-config-users [root@server0 ~]# system-config-users[root@server0 ~]# whatis chgrpchgrp (1) - change group ownership chgrp (1p) - change the file group ownershipchgrp [OPTION]... GROUP FILE...chgrp [OPTION]... --reference=RFILE FILE...-R, --recursive operate on files and directories recursively 被更改的分组名称在系统中必须要事先存在,否则会报错更改文件所属用户或者分组[root@server0 ~]# whatis chownchown (1) - change file owner and groupchown (1p) - change the file ownershipUsage: chown [OPTION]... [OWNER][:[GROUP]] FILE...or: chown [OPTION]... --reference=RFILE FILE...-R, --recursive operate on files and directories recursively控制默认权限:umask在内核级别,Linux 使用默认模式666(rw-rw-rw-)建立文件, 使用默认模式777(rwxrwxrwx )建立目录。
每个进程都使用一个“umask”参数来遮盖某些特定的默认权限。
在Red Hat Enterprise Linux,中,root用户的默认umask值为022, 标准用户的默认umask 值为002。
通过前面是实验观察结果可以知道,新建文件的模式是644 (rw- rw- r--),也就是说所有的人都能阅读文件,但是只有文件的拥有人才能修改新建文件。
同样,新建目录的权限是775 (rwxrwxr- x)。
也就是说,任何人都可以访问浏览目录,但是只有目录所有者才能添加或删除文件。
新建文件的默认权限可以通过umask 的Unix 概念来改变。
每个进程包括bash shell ,都有一个三位的八进制数“遮盖”新建文件的某些权限。
这个八进制叫做“umask ”umask 的结构和八进制相同,但是意义相反。
和八进制模式相同,每个级别的访问以一个数位代表:“百位”是用户,“十位”是组,“个位”是其他人。
每种权限以一个值表示:4 可读;2 可写;1 可执行。
与八进制模式不同,umask 命令由“不要的”权限组成文件的默认权限为了判断新建文件的权限,Linux 内核以通用模式666 生成文件,然后内核为生成的进程赋予一个umask 。
umask 的值被从默认权限值666 中“减去”举例来说,如果使用的umask 是002 ,那么生成的默认权限就是664 :kernel default:666 --> rw- rw-rwumask:002 --> -------w------------------------------------------default permissions: 664 --> rw-rw- r--另一个例子,如果umask 的值是077 ,那么得到的默认权限是600 :kernel default: 666 --> rw- rw-rwumask: 077 --> --- rwxrwx-----------------------------------------default permissions: 600 --> rw-------在判断默认权限时,任何设置为umask 的权限都会被内核默认模式“遮盖”目录的默认权限目录的默认权限以同样的方式生成,不同的是,内核生成目录的默认模式是777 (rwxrwxrwx)。
即:值为002 的umask 得到的目录的默认权限是775 :kernel default: 777 --> rwxrwxrwxumask: 002 --> -------w ------------------------------------------default permissions: 775 --> rwxrwxr- x另一个例子是值为077 的umask 得到的默认目录权限是700 :kernel default: 777 --> rwxrwxrwxumask: 077 --> --- rwxrwx-----------------------------------------default permissions: 700 --> rwx ------在以上的例子中,值为002 的umask 的文件和目录的权限是一样的:任何人都可以读取只有所有者才能修改。
同样值为077 的umask 的目录和文件的权限是一样的:用户所有者可以读取和修改,其他人不能访问。
修改shell的umask:umask命令可以使用umask 查看和修改bash sh ell 的umask 。
在不加参数的情况下,umask 命令报告shell的当前umask 。
如果添加一个八进制umask 作为参数,shell 的umask 将是一个指定的值,直接使用命令修改的umask值临时生效,用户注销后,仍旧恢复默认值。
使用~/.bashrc 自动改变bash shell 的umask,永久生效。