一、属性查看
(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后的文件属性的变化: