Linux之文件管理权限

一、属性查看

(1)文件属性查看

命令: ls -l filename


如图所示,从左至右,其中 

 -  代表文件类型( - 普通文件; d 目录;s 套接字,程序对外开放的接口 ;l 快捷方式 ;p 管道 ;c 显示字符的设备;b 块设备<U盘> ,sdb文件管理u盘

rw-r--r-- 代表读写权限(rw- 是文件拥有者对文件可以操作的权限,优先级最高;第一个r-- 是文件所在组的组成员对文件可以操作的权限,优先级居中;第二个r-- 是其他人对文件可以进行的操作),下面会专门介绍权限

1 代表文件内容被系统记录的次数;

第一个root 代表文件拥有者;

第二个root 代表文件所在组;

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

4月 代表文件最后被更改的时间;

file 代表文件名称;

(2)查看目录属性

命令: ls -ld directory


如图所示,从左至右,依次代表类型、权限、子目录个数、目录拥有者、目录所在组、目录中内容大小、目录中文件数量改变的时间、目录名称。


二、文件用户、用户组的更改

chown 用户名称 文件名称  //更改文件所有人

chgrp 组名称 文件        //更改文件所有组

chown -R 用户 目录       //更改目录本身及目录中子文件的所有人

chgrp -R 组名称 目录     //更改目录本身及目录中子文件的所有组

(1)如下图所示,创建一个新文件,所有人和所有组都为root和root,改变所有人和所有组,


(2)如下图所示,创建一个新目录,所有人和所有组都为root和root,改变目录所有人,其目录下的子文件的所有人都改变,



三、权限(ls -l 中2-10字符为文件权限)

rwxr-xr-x  中 1-3 字符为用户权限,4-6 字符为组成员权限,7-9字符为其他用户权限

(1)权限种类

r

r权限针对文件,表示可以查看文件内容

r权限针对目录,表示可以ls 查看目录中存在的文件名称

w

w权限针对文件,表示可以更改文件的内容

w权限针对目录,表示是否可以删除目录中的子文件或者子目录

x

x权限对于文件,表示是否可以文件名开启文件当中记录的程序

x权限对于目录,表示是否可以进入目录中

(2)修改权限

chmod ugo+-=rwx 文件名

如图所示,对比我们会发现对文件file的所有人的权限已成功更改


除此之外,我们也可以直接执行命令:chmod 744 file,你会发现作用与chmod u+x file相同。

其中744代表的意义就是 rwxr--r--.

(3)文件的默认权限

umask      //显示系统预留权限值

umask 077   //本机默认的umask值为022,临时修改umask为077,当结束了本次shell后,umask的值将会自动归为022.


如果想要永久修改umask值,需要做以下操作:

vim /etc/bashrc    71行是普通用户,73行是超级用户的修改


vim /etc/profile    60行是普通用户,62行是超级用户的修改


修改完成后,需要让系统重新读取2个文件,否则umask的值依旧不会变。

source /etc/bashrc    //刷新bash配置

source /etc/profile    //刷新系统配置

(4)特殊权限

1、强制位

o+t  //针对目录给目录加上t权限,本目录中的文件只能被文件拥有者删除

命令:chmod o+t directory

           chmod 1777 directory

实验过程如图所示,新建目录/westos,执行强制位操作,在目录下新建文件file ,然后切换至student用户,删除/westos下的file文件,操作失败。



2、粘制位

g+s //针对目录在目录中创建的文件都自动归属到目录所在组,针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的

命令:chmod g+s directory

           chmod 2777 directory

如图所示:在root用户下新建一个目录/westos,改变其目录所在组,此时我们会发现组由root变为linux,对目录执行粘制位命令,切换用户至student,在目录/westos下新建文件studentfile,此时我们可以看到文件的所有组是linux,而不是本应该现实的student.



3、冒险位

u+s  //针对文件,文件记录动作在执行时是以文件所有人身份执行,与谁发起的无关。

命令:chmod u+s file

           chmod 4777 file

如图所示,我们对/bin/rm文件进行实验操作,首先我们先改变文件的所有人和所有组,新建一个目录/mnt,执行冒险位操作,我们会发现此时/bin/rm的文件所有人的权限由rwx 变为rws,此时我们再去删除目录/mnt,会发现超级用户root的rm命令执行不了。


(5)权限列表

acl    //指定特定的用户对特定的文件拥有特殊权力

-rw-rwx---+ 1 root root 0 Mar 28 02:39 file

      +   表示权限列表开启

1、查看

getfacl /mnt/file


2、设定

setfacl -m u:lee:rwx /mnt/file        设定lee用户对file文件可以读写执行

setfacl -m g:student:rwx  /mnt/file   设定student组对文件可以读写执行

setfacl -x u:lee /mnt/file            在权限列表中删除用户lee的信息

setfacl -x g:student /mnt/file        在权限列表中删除student组的信息

setfacl -b   /mnt/file                关闭权限列表那么,"+"消失

  如图所示,设定student用户对 file文件进行读写执行

3、acl列表的默认权限


#权限针对于目录生效

#当对目录设定普通的权限列表后,是不能取定特定用户对在目录中新建的文件由指定权限的

#如果需要权限自动添加到新建文件上那么要设定目录的默认权限

setfacl -m d:u:student:rwx /mnt/westos    ##设定在westos目录中、新建文件对student用户有rwx权限、对已经存在的文件无效、对目录本身无效


四、mask值

mask值是能够赋予用户权限的最大值

当设定acl列表后,如果用chmod命令缩小文件的权限,那么mask值会被更改


chmod 600 /mnt/file #做这样的动作mask值会发生改变

例如,如图所示,这是修改mask后的文件属性的变化:


猜你喜欢

转载自blog.csdn.net/wangkana/article/details/79988684