linux——文件权限的更改与管理
####一####
1.文件属性查看
ls -l filename
- rw-rw-r-- 1 tutu tutu 0 Apr 6 23:43 file
1.文件类型
- #普通文件
d #目录
s #socket套接字
l #软链接 #快捷方式
p #管道
c #字符设备
b #块设备 #用sdb文件管理U盘
2.读写权限
rw-|rw-|r-- ##优先于用户匹配,优先于组匹配,优先于其他匹配
rw- #第一个rw- #文件拥有者对文件能做的动作
rw- #第二个rw- #文件所在组的组成员能对文件做的动作
r-- #其他人对于文件能做的动作
3.文件内容被记录的次数
4.文件拥有者
5.文件所在组
6.文件大小
7.文件最后一次被更改的时间
8.文件名称
2.目录属性查看
ls -ld directory
d rwxrwxr-x 2 tutu tutu 6 Apr 6 23:43 directory/
1.类型(与文件相同)
2.权限
3.子目录个数
4.目录拥有者
5.目录所在组
6.目录中内容的属性的大小
7.目录中文件增加或减少或被更名的时间
8.目录名称
3.文件用户组的更改 ##超级用户可用
chown 用户名称 文件 ##更改文件所有人
chgrp 组名称 文件 ##更改文件所有组
chown -R 用户 目录 ##更改目录本身以及目录中的子文件的所有人
chgrp -R 组名称 目录 ##更改目录本身以及目录中的子文件的所有组
chown student:tutu /mnt/filename
watch -n 1 ls -lR /mnt/ ##进入监控模式
4.权限的识别
ls -l 中2--10字符为文件权限
rwx ##用户权限(u)
r-x ##(第一个)组成员权限(u)
r-x ##(第二个)其他用户权限(o)
权限种类
1.r权限 读取
针对文件时,表示可以查看文件内容
针对目录时,表示可以ls查看目录中存在的文件名称
2.w权限 更改
针对文件时,表示可以更改文件的内容
针对目录时,表示是否可以删除目录中的子文件或者新建子目录
3.x权限
针对文件时,表示是否可以开启文件当中记录的程序
针对目录时,表示是否可以进入目录中
4.改权限
chmod ugo+-=rwx
r——4,w——2,x——1
u=rwx=7,u=rw-=6
g=rwx=7,g=r--=4
o=rwx=7,o=r--=4
777,644
7=rwx, 6=rw-, 5=r-x, 4=r--
3=-wx, 2=-w-, 1=--x, 0=---
5.文件的默认权限
1.临时修改
umask ##显示系统预留权限值,最大权限值
umask 077 ##临时修改umask的值
2.永久修改
vim /etc/bashrc #第71行是普通用户的更改,第73行是超级用户的更改
vim /etc/profile #第60行是普通用户的更改,第62行是超级用户的更改
source /etc/bashrc ##刷新bash配置
source /etc/profile ##刷新系统配置
6.特殊权限
1.stickyid ##强制位
chmod o+t directory
chmod 1777 directory
o+t #t=1,该权限只针对目录,当一个目录被赋予t权限时,这个目录的文件只能被文件拥有者删除
#对于文件,目前权限列表可以显示,但无意义
2.sgid ##粘贴位
chmod g+s filename|directory **只针对二进制可执行文件(BuildTD)
chmod 2777 filename|directory
g+s
#针对二进制文件时,文件中记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的
#针对目录时,在目录中创建的文件都自动归属到目录所在组
**注意:默认情况下,用户建立的文件是自己的id和组
3.suid ##冒险位
chmod u+s filename
chmod 4777 file
u+s #只针对文件,文件记录动作在执行时是该文件所有人身份执行的,与发起者无关
#对于目录,目前权限列表可以显示,但无意义
7.权限列表
acl ##指定特定的用户对特定的文件的特殊权利
-rw-rwx---+ 2 root root 0 Apr 6 23:23 file ##“+”代表权限列表开启,该文件的普通权限也可以在权限列表中被识别,ls -l 看到的权限是错误的
1.权限设定
setfacl -m u:tutu:rwx /mnt/filename #设定用户tutu可以对filename文件执行读写操作
setfacl -m g:westos:rwx /mnt/filename #设定westos组可以对文件执行读写操作
setfacl -x u:tutu /mnt/filename #删除用户在权限列表中的信息
setfacl -x g:westos /mnt/filename #删除westos组在权限列表中的信息
setfacl -b /mnt/filename #“+”消失,权限列表关闭
2.权限查看
getfacl /mnt/filename
内容如下:
file: mnt/file #文件名称
owner: root #文件的拥有者
group: root #文件所在组
user::rw- #文件拥有者的权限
user:tutu:rw- #特殊指定用户的权限
group::--- #文件组的权限
group:student:rwx #特殊指定组的权限
mask::rwx #权限最大值
other::--- #其他人的权限
3.mask值
mask值是指能够赋予用户权限的最大值
当设定acl权限列表后,若用chmod命令缩小文件的权限,则mask值会有所更改
chmod 740 /mnt/file #做这样的动作,mask值会发生改变
更改前
更改后
注:表示有效权力 #effective:r--
恢复
setfacl -m m:rwx /mnt/file #用此命令可恢复mask值
4.acl列表的默认权限
#该权限针对于目录生效
#默认的acl权限只被新建的文件和目录所继承,已经建立好的,没有这个功能
setfacl -m d:u:butterfly:rwx 目录
#递归的acl权限只会赋予acl权限给以前创建好的文件和目录,后来新建的便没有这个功能
setfacl -Rm u:butterfly:rwx 目录
setfacl -m d:u:butterfly:rwx /mnt/tutu ##设定在tutu目录中
#新建用户对butterfly用户有rwx权限
#对已经存在的文件和目录无效
#对目录本身无效
8.练习实例:
1.新建用户组,shengchan,caiwu,jishu
2.新建用户要求如下:
1)tom 是shengchan组的附加用户
2)harry 是caiwu组的附加用户
3)leo 是jishu组的附加用户
4)新建admin用户,此用户不属于以上提到的三个部门
3.新建目录要求如下:
1)/pub目录为公共存储目录对所有用户可以读,写,执行,但用户只能删除属于自己的文件
2)/sc 目录为生产部存储目录只能对生产部人员可以写入,并且生产部人员所建立的文件都自动归属到shengchan组
3)/cw 目录为财务部存储目录只能对财务部人员可以写入,并且财务部人员所建立的文件都自动归属到caiwu组
4)admin用户对于/sc和/cw目录可以读写执行
[[email protected] mnt]# groupadd shengchan
[[email protected] mnt]# groupadd caiwu
[[email protected] mnt]# groupadd jishu
[[email protected] mnt]# useradd -G shengchan tom
[[email protected] mnt]# useradd -G caiwu harry
[[email protected] mnt]# useradd -G jishu leo
[[email protected] mnt]# useradd admin
[[email protected] mnt]# mkdir /pub /cw /sc
[[email protected] mnt]# chmod 1777 /pub/
[[email protected] mnt]# chgrp shengchan /sc
[[email protected] mnt]# chmod 2770 /sc
[[email protected] mnt]# chgrp caiwu /cw
[[email protected] mnt]# chmod 2770 /cw
[[email protected] mnt]# setfacl -m u:admin:rwx /sc
[[email protected] mnt]# setfacl -m u:admin:rwx /cw
[[email protected] mnt]# setfacl -m d:u:admin:rwx /sc
[[email protected] mnt]# setfacl -m d:u:admin:rwx /cw