Linux之文件管理权限

  • Post author:
  • Post category: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后的文件属性的变化:




版权声明:本文为wangkana原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。