10.28linux文件属性的说明,文件权限的管理,访问控制列表acl,特殊权限位

本文深入讲解了Linux系统中文件和目录的权限管理,包括查看文件属性、修改文件所有者和所属组、理解文件权限、使用数字表示权限、系统默认权限设定、访问控制列表和特殊权限位等核心概念。

####1.查看文件属性的说明

ls -l filename 表示列出文件的长信息

-rw-rw-r--. 1 kiosk kiosk 0 Oct 28 16:16 file
1   2       3   4     5   6       7       8

1:代表文件的类型
    -     #表示普通用户
    d    #表示目录
    c    #字符设备    
    s    #套接字
    p    #管道
    b    #块设备
    l     #链接文件
2:文件的权限(读 写 执行)
    r      #读权限
    w    #写权限
    x     #执行权限
3:
    对文件来说:文件内容被系统链接的次数
    对目录来水:目录中所含有的文件和目录的个数(不含子目录的个数)
4:文件的所有者
5:文件的所属组
6:文件的内容大小
7:文件最后一次被修改的时间
8:文件名

####2.文件拥有者和文件所属组的管理
chown username file|dir                         ##更改文件或者目录的拥有者
chown username.groupname file|dir    ##更改文件或目录的拥有者和所属组
chown -R username dir                         ##更改目录本身及其内部的拥有者
chgrp username file|dir                         ##更改文件或目录的所属组
chgrp -R dir                                            ##更改目录本身及内部的所属组

####3.文件的普通权限

rw-|rw-|r--
u    g     o
u:拥有者 g:所属组 o:其他人

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

2. w:
对文件:可以更改文件内的字符(内容)
对目录:可以在目录中添加/删除文件或目录

3. x:
对文件:可以运行文件内记录的程序的动作
对目录:可以进入目录

####4.文件普通权限的修改

chmod [-R] <u|g|o><+|-><r|w|x> file|dir

chmod u-x filename                 ##file拥有者去掉执行权限
chmod g+w filename              ##file所属组增加写权限
chmod u-x,g+w filename     ##file拥有者去掉x权限,所属组增加w权限
chmod ugo-r filename            ##file 拥有者、所属组其他人去掉读权限
chmod ug+x,x-r    filename

####5.数字的方式修改文件权限
在linux里面
    rwx:
    r=4
    w=2
    x=1
文件权限数字表示方式
    rw-|r--|r--
    u   g    o
     u=rw-=4+2+0=6
    g=r--=4+0+0=4
    0=r--=4+0+0=4
    所以文件权限表示为:644
    chmod 修改后权限值 filename|dir
    chmod 777 dir

7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x

####6.系统默认权限设定

1.系统文件的默认满权限
文件系统默认的满权限是:666
目录系统默认的满权限是:777

2.umask的说明
1)umask:系统设定的值,通常用来设置新建文件或目录的默认权限。
    新建文件的默认权限=文件满权限-umask=666-umask
    新建目录的默认权限=目录满权限-umask=777-umask
2)    通常在linux系统中,普通用户的umask为002,超级用户的umask为022
    这样设定的目的是为了,让超级用户建立的文件权限更少
3.umask值的修改
1)临时设定
    umask             ##查看系统的umask值
    umask 077     ##修改umask值为077,此设定为临时设定,只在当前shell中生效

2)永久设定方式:
vim /etc/bashrc

 70     if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; th    en
 71        umask 002      ##普通用户
 72     else
 73        umask 022     ##超级用户
 74     fi

vim /etc/profile

 59 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
 60     umask 002    ##普通用户
 61 else
 62     umask 022    ##超级用户
 63 fi

 

以上两个文件umask设定必须一致
source /etc/bashrc
source /etc/profile

####7.访问控制列表
acl=access control list
指定特殊用户对特殊文件有特殊权限

设定:
setfacl -m <u|g>:<username|groupname>:权限 文件
setfacl -m u:student:rwx file
setfacl -m d:<u|g>:<username|groupname>:权限 目录
setfacl -m d:u:student:7 dir

删除acl列表中的:username|groupname:
setfacl -x <u|g>:<username|groupname> 文件|目录

关闭acl列表:
setfacl -b file|dir

注意
setgacl -m d:u:student:rwx 目录
默认权限只对目录中新建的文件或目录生效,对已经建立的文件无效,对目录本身也无效

####8.特殊权限位

1.suid      ##冒险位
只针对二进制可执行文件(一段可以执行的代码)
文件内记录的程序产生的进程的拥有人是这个文件的拥有人和进程的发起人身份无关
  例如:新建文件,正常应该是那个用户建立的文件,文件就属于那个用户,设定冒险位以后新建文件属于拥有创建文件的人

设定方式
chmod u+s file
suid=4
chmod 4xxx file     ##xxx代表文件其他权限

2.sgid 强制位
对文件:
只针对二进制可执行文件,任何人运用二进制文件程序时,程序所产生的进程的所属组都是这个二进制文件的所属组,和进程的发起人的组无关
对目录:
当目录拥有sgid权限后,目录中新建的所有文件的所属组都自动归属到目录的所属组中,和文件的建立者所在的组无关

设定方式
chmod g+s file|die
sgid=2
chmod 2xxxx file|dir

3.sticky 粘贴位(t)
只只对目录,当一个目录拥有粘贴位权限,那么目录中的文件只能被文件的拥有者删除

设定方式
chmod o+t dir
t=1
chmod 1777 dir

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值