Linux权限是操作系统拿来限制对资源访问的机制,权限通常分为读、写、执行。系统中每位文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制什么用户或用户组可以对特定文件进行相应的操作。
Linux每位进程都是以某个用户身分运行,进程的权限与该用户的权限一样,用户的权限越大,则进程拥有的权限就越大。
Lnux中有的文件及文件夹都有起码权限三种权限,常见的权限如表所示:
注:r=4w=2x=1
权限分为UGO、ACL以及特殊权限,下边我来详尽介绍一下!!~~~
一、UGO
虽然UGO就是赋予某个用户或组才能以何种形式访问某个文件(图片文件,视频文件,普通文件)。
Linux权限授权,默认是授权给三种角色,分别是user、group、other,Linux权限与用户之间的关联是:
U代表User,G代表Group,O代表Other;
每位文件的权限基于UGO进行设置;
权限三位一组(rwx),同时需授权给三种角色,UGO;
每位文件拥有一个所属用户和所属组,对应UGO,不属于该文件所属用户或所属组使用O来表示。
如图,查看当前目录的文件权限:
首先可以看见蓝色方框中文件的三种权限属性,分别是r(读),w(写)linux系统教程,x(执行)。权限,代表了指定用户能以哪种方法访问文件。每位文件都有三组权限,举个板栗:
file1.txt是属主权限rwx,只对属主alice帐号生效,说明alice对该文件有rwx的全部权限。
之后是属组权限rw-,对hr用户组生效,hr组内的所有用户对该文件都有读写权限。
最后是其他人权限r--,仅有读取权限,对去除属主和属组用户外的所有用户生效。
因而权限的对象一共有三种,分别是U(属主)、G(属组)、O(其他人)。
1.权限的配置
(1)chown修改属主与属组
同时更改属主和属组:
只更改属主:
只更改属组:
(2)chgrp修改属组
//假如是文件夹,加上-R参数,会同时更改目录及目录下的所有文件的权限
(3)chmod修改文件权限
u+x为属主降低执行权限:
为属组、其他人分别降低写入、执行权限:
a=rwx所有人降低读写执行权限:
a=-取消文件所有权限:
还可以通过数字的方式更改,r=4,w=2,x=1。
比如:
(4)小结
二、ACL
1.ACL与UGO的区别
ACL文件权限管理:设置不同用户linux 给用户某个目录权限,不同的基本权限(r、w、x)。对象数目不同。
UGO设置基本权限:只能一个用户,一个组和其他人
(1)ACL的句型:
setfacl-mu:alice:rw/home/test.txt
命令设置用户或组:用户名:权限文件对象
(2)ACL用法
首先要打算文件:
[root@localhost~]#touch/home/test.txt
[root@localhost~]#ll/home/test.txt
-rw-r--r--1rootroot010-2613:59/home/test.txt
之后设置ACL,分为两步:
[root@localhost~]#getfacl/home/test.txt
[root@localhost~]#setfacl-mu:alice:rw/home/test.txt
[root@localhost~]#setfacl-mu:jack:-/home/test.txt
(记得提早创建alice和jack用户哦~~~~)
最后,查看与删掉ACL~
[root@localhost~]#getfacl/home/test.txt
getfacl:Removingleading'/'fromabsolutepathnames
查看文件权限,删掉了根路径。
#file:home/test.txt文件名
#owner:root属主:root
#group:root属组:root
user::rwx用户:属主:rwx
user:alice:rw-用户:alice:rw-
user:jack:---用户:jack:---
group::rwx组:属组:rwx
mask::rwx网段::rwx
other::rwxother:其他人:rwx
首先,降低hr组对test.txt文件读取的权限
[root@localhost~]#setfacl-mg:hr:r/home/test.txt
其次,若删掉部份:
[root@localhost~]#setfacl-xg:hr/home/test.txt
//删掉组hr的acl权限
若删掉所有,
[root@localhost~]#setfacl-b/home/test.txt
//删掉所有acl权限
三、特殊权限
1.特殊位suid
suid权限(属主权限)
假如我们想更改帐号的用户密码,会使用passwd命令,如alice帐号更改密码:
passwd文件或许是操作的shadow文件,该文件权限如下:
可以看见,只有root帐号能对它进行操作,这么alice的写操作是如何执行成功的捏?
使用alice在后台运行passwd命令,查看进程:
会发觉是root帐号在执行此操作,因而能够更改成功。
再瞧瞧passwd命令是执行的那个文件:
会发觉passwd文件的执行权限为s,这就是alice成功更改密码的诱因。
suid权限,标记为s,代表让任何帐号执行该程序时,身分都以文件所有者身分(此处为root)进行执行。
因而尽管操作者是alice,但执行者虽然是root。
2.chattr(隐藏文件权限)
chattr命令,常用于锁定某个文件,拒绝更改。专门拿来更改文件或目录的隐藏属性,只有root用户可以使用。该命令的基本格式为:
[root@localhost~]#chattr[+-=][属性]文件或目录名
+表示给文件或目录添加属性,-表示移除文件或目录拥有的个别属性linux 给用户某个目录权限,=表示给文件或目录设定一些属性。
如下表所示:chattr常用的属性选项及其功能。
查看文件及目录的隐藏属性
lsattrfilename
[root@localhost~]#lschattr-d/etc/
----------------/etc/
//查看该文件夹etc的特殊权限
[root@localhost~]#lschattr/test/1.txt
-----a----------/test/1.txt
//查看文件1.txt的特殊权限
3.umask(进程网段)
默认情况下的umask值是022(可以用umask命令查看),此时你完善的文件默认权限是644(6-0,6-2,6-2),完善的目录的默认权限是755(7-0,7-2,7-2)
同理若将umask改为0011linux手机软件,则新建目录默认权限为755,新建文件默认权限为644
好啦!明日的分享到此结束~上次见哦!!