Linux 中文件权限的管理

Linux中查看文件信息的命令

ls命令对文件以及目录属性进行查看

     ls -l file       ----->列出文件的详细信息 = ll    file  
     ls -l directory  ----->列出目录所包含的文件属性 = ll directory
     ls -dl directory ----->列出目录本身的属性 = ll  -d  directory


文件各部分表示信息及其含义

-rw-r--r--. 1 root root 0 Oct 27 16:50 test

1        2        3    4     5     6                7          8

1.文件的类型:

      -   d      c    s   p    b       l
普通文件 目录 字符设备 套接字 管道 块设备 链接文件

2.文件的权限(读 写 执行)

上述示例中,第一组rw- 是文件拥有者对文件可以操作的权限,优先级最高;第二组r-- 是文件所在组的组成员对文件可以操作的权限;第三组r-- 是其他人对文件可以进行的操作

3.对文件来说:文件内容被系统记录的次数(链接数)

  对目录来说:第一级子目录数

4.文件的拥有者:root

5.文件的所属组:root

6.文件的内容大小,0 代表文件大小(因文件没有内容,所以大小为0);

7.文件最后一次被修改的时间:Oct 27 16:50

8.文件名:test

文件拥有者 所属组的管理

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

文件的普通权限

r w - r - - r - -
  u   g   o

1.r:

对文件:可以查看文件的的字符(内容)

对目录:可以查看目录中的文件信息

 

2.w:

对文件:可以更改文件内的字符

对目录:可以在目录中添加/删除文件或目录

 

3.x:

对文件:可以运行文件内记录的程序的动作

对目录:可以进入目录

 字符方式修改文件权限

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权限,所属组增加写权限
chmod ugo-r filename	file拥有者、所属组和其他用户都去掉读权限
chmod ug+x,o-r filename file拥有者和所属组增加x权限,其他用户去掉读权限

权限用数字表示

在linux里面 :rwx: r=4;w=2;x=1

文件权限数字表示方式:

r w - | r - - | r - -

u         g        o

u= r w - =4+2+0=6

g= r - - =4+0+0=4

o= r - - =4+0+0=4

故该文件的权限值表示为:644

数字方式修改文件权限

chmod    修改后的权限值    file|dir
eg:
chmod    777    file

权限值的符号表示与数字表示的对应

    7    6    5    4    3    2   1
 r w x   r w -  r - x  r - - - w x   - w - - - x

系统默认权限的设定

******系统默认文件的满权限是666,系统默认目录的满权限是777*******

系统权限的临时设定:(此设定方式为临时设定,只在当前shell中生效

umask    ##查看系统保留的权限,默认为022
eg:
umask    077    ##修改系统保留权限为077

系统权限的永久设定:

vim /etc/bashrc---->进入该文件的第70行,对相应的umask值进行修改并保存
vim /etc/profile---->进入该文件的第59行,对相应的umask值进行修改并保存

以上两个文件umask的设定必须一致

设定完之后执行以下程序:
source    /etc/bashrc
source    /etc/profile

acl访问控制列表

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

设定方式:

setfacl    -m    <u|g>:<username|groupname>:权限    文件
eg:
setfacl    -m    u:student:rwx    file

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

****注意****:
setfacl    -m    d:u:student:rwx    dir/

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

删除acl 列表中的:username | groupname:

setfacl    -x    <u|g>:<username|groupname>    文件|目录

关闭acl列表

setfacl    -b    filename|dir

特殊权限位

1. suid    冒险位

      只针对二进制可执行文件(一段可以执行的代码)进行操作,文件内记录的程序产生的进程的拥有人是这个文件的拥有人,和进程的发起人身份无关。

设定方式:

chmod    u+s    file
suid = 4
chmod    4***    file

2.sgid     强制位

设定方式:

chmod    g+s    file|dir
sgid = 2
chmod    2***    file|dir

对文件:

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

对目录:

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

3.sticky    粘制位

     只针对目录,当一个目录拥有这个权限,那么目录中的文件只能被文件的拥有者删除。

设定方式

chmod    o+t    dir
t = 1
chmod    1777    dir

 

猜你喜欢

转载自blog.csdn.net/weixin_40172997/article/details/83506860
今日推荐