Linux-文件权限

一. 文件权限

1. 文件属性的查看

ls -l file      #查看文件file属性

-rw-r--r--. 1 root root 0 Dec 31 09:55 file
1   2       3  4    5   6       7        8

1.文件类型
-:普通文件
d:目录
c:字符设备
s:套接文件
p:管道
b:块设备

2.rw-r--r--:文件读写权限
rw-r--r--
 1  2  3
1 拥有者
2 所属组
3 其他人

3.
对文件:文件内容被系统记录的次数
对目录:二级子目录的个数


4.文件的拥有者


5.文件的所属组

6.文件的内容大小

7.文件最后一次被修改的时间

8.文件的名字

例:

2.文件拥有者和所属组的改变

chown  username   file/dir
chgrp  groupname  file/dir
chown  username.groupname file/dir
chown  -R username      dir   (递归)
chgrp  -R groupname     dir   (递归)

例:

3. 文件的普通权限

u    #用户    
g    #组
o    #其他人

r    
对文件:可以查看文件的字符(内容)
对目录:可以查看目录中文件/目录的信息

w 
对文件:可以更改文件内的字符
对目录:在目录中增删改查
 
x 
对文件:可以运行文件中记录的程序动作
对目录:可以进入目录

4. 系统默认权限的设定

系统设定新建文件或目录会去掉一些权限
 

设定方式:
umask(普通用户和超级用户)  #查看系统减掉的权限
umask xxx               #修改该系统减掉xxx,此设定是临时设定,只在当前shell生效

永久设定:
vim /etc/bashrc
 70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 71        umask 002   #普通用户的umask
 72     else
 73        umask 022   #超级用户的umask
 74     fi

vim /etc/profile
 59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 60     umask 002
 61 else
 62     umask 022
 63 fi

以上两个文件的umask值必须保持一致

source /etc/bashrc 
source /etc/profile
让系统重新加载配置文件,让设定立即生效

例:

5. 文件的访问控制(acl列表)

ps:acl只对目录下新建的目录生效,对已经建立的目录是无效的

(1). acl的定义

acl=access control     #指定特殊的用户对特殊的文件有特殊的权限

ls -dl /home/kiosk/

#’+‘标示开启了acl访问控制列表

#注意:当文件/目录有权限列表时,ls -l能看到的权限是假的

getfacl /home/kiosk

例:

(2).设置acl列表

setfacl -m u:student:rwx file    #设置开启用户acl列表

#-m 设定
#u  用户
#g  组

getfacl file  #查看详细file信息

例:

(3). 手动改变u g o 的读 写 执行 的权限

chmod u-w,g+x,o+w file   #给u减去写的权限,给g加执行的权限,给o加写的权限

例:

(4). 删除acl列表中的用户或组和关闭acl列表

setfacl -x u:student file   #删除列表中的用户或组
setfacl -b file             #关闭列表
setfacl -m m:rw- file       #mask用来标示实际能够赋予用户最大权限

#可能:当你用chmod改变文件普通权限的时候可能会破坏acl mask

例:

6. acl默认权限

当我们需要普通用户对属于root的某个目录拥有写的权限时,并且目录中新建的子目录对普通用户也生效,就要设定acl默认权限

ps:默认权限只对目录中新建的目录或文件生效,对已经建立的目录和文件无效,对目录本身也无效

7. 特殊权限位

(1). suid     ##冒险位

设定方法:
chmod  u+s    touch所在的目录    #suid=4
chmod  4755   touch所在的目录

只针对二进制可执行文件
文件内记录的程序产生的进程的拥有者为文件的拥有者,和进程的发起人没关系


例:

chmod u+s /usr/bin/touch
=chmod 4755 /usr/bin/touch 


(2). sgid        ##强制位

设定方式:
chmod g+s   文件/目录    #sgid=2
chmod 2xxx  文件/目录


a: 对文件:只针对二进制可执行文件,
    任何人运行二进制文件程序时程序产生的进程的所属组都是文件的所有组
    和程序发起人组的身份无关

例:

chmod g+s /usr/bin/touch 
=chmod 2755 /usr/bin/touch 

b: 对目录:当目录有sgid权限后,目录中新建的所有文件的所有组
    都自动归属到目录的所有组之中,和文件建立者所在的组无关

例:

chmod  g+s  /chason
=chmod 2755 /chason

    
(3). sticky    ##粘制位
t权限: 
只针对于目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除设定方式:

chmod    o+t    目录       #t=1
chmod    1777   目录

例:

chmod o+t   /chason
=chmod 1777 /chason

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值