权限、全部者和ACL

权限、全部者和ACL

一:设置文件和目录权限

1:文件和目录权限简介html

1)权限对于目录的意义linux

a:首先要明白的是目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方。shell

b:r权限:拥有此权限表示能够读取目录结构列表,也就是说能够查看目录下的文件名和子目录名,注意:仅仅指的是名字。浏览器

c:w权限:拥有此权限表示具备更改该目录结构列表的权限,总之,目录的w权限与该目录下的文件名或子目录名的变更有关,注意:指的是名字。具体以下:bash

l 在该目录下新建新的文件或子目录。ide

l 删除该目录下已经存在的文件或子目录(不论该文件或子目录的权限如何),注意:这点很重要,用户可否删除一个文件或目录,看的是该用户是否具备该文件或目录所在的目录的w权限。ui

l 将该目录下已经存在的文件或子目录进行重命名。.net

l 转移该目录内的文件或子目录的位置。命令行

d:x权限:拥有目录的x权限表示用户能够进入该目录成为工做目录,能不能进入一个目录,只与该目录的x权限有关,若是用户对于某个目录不具备x权限,则没法切换到该目录下,也就没法执行该目录下的任何命令,即便具备该目录的r权限。且若是用户对于某目录不具备x权限,则该用户不能查询该目录下的文件的内容,注意:指的是内容,若是有r 权限是能够查看该目录下的文件名列表或子目录列表的。因此要开放目录给任何人浏览时,应该至少要给与r及x权限。xml

2)权限对于文件的意义

a:也应该明白的是文件是实际含有数据的地方,因此r、w、x权限对文件来讲是与其内容有关的。

b:r权限:用于此权限表示能够读取此文件的实际内容。

c:w权限:拥有此权限表示能够编辑、添加或者是修改该文件的内容。可是不包含删除该文件,由于由上面权限对于目录的意义得知删除文件或目录的条件是什么。

d:x权限:表示该文件具备能够被系统执行的权限。文件是否能被执行就是由该权限来决定的,跟文件名没有绝对的关系。

2:设置基本权限

(1) 基本权限简介

[root@localhost ~]# ls -l

总用量 100

-rw-------. 1 root root 1642 7月 1 2016 anaconda-ks.cfg

-rw-r--r--. 1 root root 47276 7月 1 2016 install.log

-rw-r--r--. 1 root root 10033 7月 1 2016 install.log.syslog

drwxr-xr-x. 2 root root 4096 7月 1 2016 公共的

drwxr-xr-x. 2 root root 4096 7月 1 2016 模板

- 10个字符肯定不一样用户能对文件干什么

- 第一个字符表明文件(-)、目录(d),连接(l)

- 其他字符每3个一组(rwx),读(r)、写(w)、执行(x)

- 第一组rwx:文件全部者的权限是读、写和执行

- 第二组rw-:与文件全部者同一组的用户的权限是读、写但不能执行

- 第三组r--:不与文件全部者同组的其余用户的权限是读不能写和执行

(2) 文件浏览器设置权限

右键须要设置权限的目录或文件属性à权限

(3) 文字设定法设置权限

chmod [who] [+ | - | =] [mode] 文件名

◆操做对象who能够是下述字母中的任一个或它们的组合
u:表示用户,即文件或目录的全部者。
g:表示同组用户,即与文件属主有相同组ID的全部用户。
o:表示其它用户。
a:表示全部用户,它是系统默认值。

◆操做符号
+:添加某个权限。
-:取消某个权限。
=:赋予给定权限,并取消其它全部权限(若是有的话)。

◆设置mode的权限可用下述字母的任意组合
r:可读。
w:可写。
x:可执行。
X:只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
s:文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的
用户ID位,“g+s”设置组ID位。
t:保存程序的文本到交换设备上。
u:与文件属主拥有同样的权限。
g:与和文件属主同组的用户拥有同样的权限。
o:与其它用户拥有同样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
一个命令行中能够给出多个权限方式,其间用逗号隔开。

(4) 数字设定法设置权限

数字设定法的通常形式为: chmod [mode] 文件名

数字属性的格式应为3个0到7的八进制数,其顺序是(u)(g)(o)文件名,以空格分开的要改变权限的文件列表,支持通配符。 数字表示的权限的含义以下:0001为全部者的执行权限;0002为全部者的写权限;0004为全部者的读权限;0010为组的执行权限;0020为组的写权限;0040为组的读权限;0100为其余人的执行权限;0200为其余人的写权限;0400为其余人的读权限;1000为粘贴位置位;2000表示假如这个文件是可执行文件,则为组ID为位置位,不然其中文件锁定位置位;4000表示假如这个文件是可执行文件,则为用户ID为位置位。

3:设置特殊权限

(1) 特殊权限简介

除了咱们前面介绍的rwx权限外,Linux中还有另外三种特殊权限:SUID,SGID,SBIT

Ø 1.SUID:s出如今文件全部者的x权限上。
1)SUID只能用于二进制可执行文件,对目录无效
2)执行者若具备该文件的x权限,则将具备文件全部者的权限
3)权限只在文件执行时有效,执行完毕再也不拥有全部者权限

Ø 2.SGID:s出如今文件所属群组的x权限上。
SGID和SUID不一样,能够用于目录
1)使用者如有此目录的x,w权限,则可进入和修改此目录
2)使用者在此目录下的群组将变成该目录的群组,新建的文件,群组是此目录的群组。

SGID对于文件来讲
1)SGID只对二进制可执行文件有效

2)执行者若具备该文件的x权限,则将具备文件所属群组的权限
3)权限只在文件执行时有效,执行完毕再也不拥有所属群组权限

Ø 3.SBIT:t出如今文件其余用户的x权限上。
1)和SUID,SGID不一样的是,只能用于目录
2)使用者在该目录下,仅本身与root才有权力删除新建的目录或文件

(2) 文字设定法设置特殊权限

chmod u+s test \为test文件加上suid权限
chmod g+s test \为test文件加上sgid权限
chmod o+t test \为test文件加上sbit权限

(3) 数字设定法设置特殊权限

chmod 4777 test \test拥有SUID权限,rwsrwxrwx
chmod 2777 test \test拥有SGID权限,rwxrwsrwx
chmod 1777 test \test拥有SBIT权限,rwxrwxrwt

二:文件和目录全部者

1:更改用户和组全部者

chown命令改变某个文件或目录的全部者和所属的组,该命令能够向某个用户受权,使该用户变成指定文件的全部者或者改变文件所属的组。用户能够是用户或者是用户D,用户组能够是组名或组id。文件名可使由空格分开的文件列表,在文件名中能够包含通配符。

语法

chown(选项)(参数)

选项

-c或——changes:效果相似“-v”参数,但仅回报更改的部分;

-f或--quite或——silent:不显示错误信息;

-h或--no-dereference:只对符号链接的文件做修改,而不更改其余任何相关文件;

-R或——recursive:递归处理,将指定目录下的全部文件及子目录一并处理;

-v或——version:显示指令执行过程;

--dereference:效果和“-h”参数相同;

--help:在线帮助;

--reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组所有设成和参考文件或目录的拥有者与所属群组相同;

--version:显示版本信息。

参数

用户:组:指定全部者和所属工做组。当省略“:组”,仅改变文件全部者;
文件:指定要改变全部者和工做组的文件列表。支持多个文件和目标,支持shell通配符。

实例

将目录/usr/meng及其下面的全部文件、子目录的文件主改为 liu:

chown -R liu /usr/meng

2:更改组全部者

chgrp命令用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名能够是用户组的id,也能够是用户组的组名。文件名能够 是由空格分开的要改变属组的文件列表,也能够是由通配符描述的文件集合。若是用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。

在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可使用chgrp指令去变动文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

语法

chgrp(选项)(参数)

选项

-c或——changes:效果相似“-v”参数,但仅回报更改的部分;

-f或--quiet或——silent:不显示错误信息;

-h或--no-dereference:只对符号链接的文件做修改,而不是该其余任何相关文件;

-R或——recursive:递归处理,将指令目录下的全部文件及子目录一并处理;

-v或——verbose:显示指令执行过程;

--reference=<参考文件或目录>:把指定文件或目录的所属群组所有设成和参考文件或目录的所属群组相同;

参数

· 组:指定新工做名称;

· 文件:指定要改变所属组的文件列表。多个文件或者目录之间使用空格隔开。

实例

将/usr/meng及其子目录下的全部文件的用户组改成mengxin

chgrp -R mengxin /usr/meng

三:权限掩码

功能说明:指定在创建文件时预设的权限掩码。
语  法:umask [-S][权限掩码]
补充说明:umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,便可产生创建文件时预设的权限。
参  数:
-S  以文字的方式来表示权限掩码。
当最初登陆到系统中时, umask命令肯定了你建立文件的缺省模式。这一命令实际上和
chmod命令正好相反。你的系统管理员必需要为你设置一个合理的umask值,以确保你建立的
文件具备所但愿的缺省权限,防止其余非同组用户对你的文件具备写权限。
在已经登陆以后,能够按照我的的偏好使用umask命令来改变文件建立的缺省权限。相应
的改变直到退出该shell或使用另外的umask命令以前一直有效。
通常来讲,umask命令是在/etc/profile文件中设置的,每一个用户在登陆时都会引用这个文
件,因此若是但愿改变全部用户的umask,能够在该文件中加入相应的条目。若是但愿永久性
地设置本身的umask值,那么就把它放在本身$HOME目录下的.profile或.bash_profile文件中。

1 如何计算umask值
umask命令容许你设定文件建立时的缺省模式,对应每一类用户(文件属主、同组用户、
其余用户)存在一个相应的u m a s k值中的数字。对于文件来讲,这一数字的最大值分别是6。
统不容许你在建立一个文本文件时就赋予它执行权限,必须在建立后用c h m o d命令增长这一
权限。目录则容许设置执行权限,这样针对目录来讲, u m a s k中各个数字最大能够到7。
该命令的通常形式为:
umask nnn
其中n n n为umask置0 0 0 - 7 7 7。

umask值与权限
例如,对于umask值002,相应的文件和目录缺省建立权限是什么呢?
第一步,咱们首先写下具备所有权限的模式,即777 (全部用户都具备读、写和执行权限)。
第二步,在下面一行按照umask值写下相应的位,在本例中是002。
第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省建立权限。
稍加练习就可以记住这种方法。
第四步,对于文件来讲,在建立时不能具备文件权限,只要拿掉相应的执行权限比特便可。

这就是上面的例子,其中umask值为002:
1) 文件的最大权限rwx rwx rwx (777)
2) umask值为002 - - - - - - -w-
3) 目录权限rwx rwx r-x (775) 这就是目录建立缺省权限
4) 文件权限rw- rw- r-- (664) 这就是文件建立缺省权限

下面是另一个例子,假设此次umask值为022:
1) 文件的最大权限rwx rwx rwx (777)
2 ) u m a s k值为022 - - - -w- -w-
3) 目录权限rwx r-x r-x (755) 这就是目录建立缺省权限
4) 文件权限rw- r-- r-- (644) 这就是文件建立缺省权限

2 经常使用的umask值
若是想知道当前的umask值,可使用umask命令:
若是想要改变umask值,只要使用umask命令设置一个新的值便可:
$ umask 002
确认一下系统是否已经接受了新的umas k值:
在使用umask命令以前必定要弄清楚到底但愿具备什么样的文件/目录建立缺省权限。不然可能会获得一些很是奇怪的结果;例如,若是将umask值设置为600,那么所建立的文件/目录的缺省权限就是066!除非你有特殊须要,不然没有必要去管他,系统默认的值“022”umask是用的掩码,至于掩码的概念,从基础学吧,这里不说了。

掌握二个要点,

Ø 文件基数为666,目录为777,即文件无设x位,目录可设x位。

Ø chmod是设哪一个位,哪么哪一个位就有权限,而umask是设哪一个位,则哪一个位上就没权限

咱们只要记住umask是从权限中“拿走”相应的位便可。

四:ACL控制

1:ACL简介

2:设置Linux系统支持ACL功能

(1) 安装ACL软件包

[root@localhost ~]# rpm -qa acl

(2) 设置支持ACL功能

a) 设置支持ACL功能

[root@localhost ~]# mount -o remount,acl

[root@localhost ~]# mount

b) 设置开机自动启用ACL

[root@localhost ~]# vi /etc/fstab

UUID=294ad562-2483-41ce-b5c8-22feb620a766 /boot ext4 defaults,acl 1 2

[root@localhost ~]# mount -o remount /dev/sda1

3:查看文件和目录ACL(见附件)

getfacl命令

4:设置文件和目录ACL(见附件)

(1) setfacl命令

(2) chacl命令

相关文章
相关标签/搜索