1.文件属性查看
格式:"ls -l 文件名称"
查看文件属性这个操作是不太复杂的,主要来解释一下每个部分的含义,方便修改文件的信息或权限时能准确对应起来
- rw-rw-r-- 1 kiosk kiosk 0 Oct 2 17:05 file
[1] [2] [3] [4] [5] [6] [7] [8]
![]()
每部分对应的含义:
[1] "-" #文件类型
文件类型大概有:
1)- #普通文件
2)d #目录
3)s #socket套接字
4)l #软链接
5)p #管道
6)c #字符设备
7)b #块设备
[2] "rw-rw-r--" #读写权限
rw-|rw-|r--
@ $ *
1)@ #文件拥有者对文件能做的动作
2)$ #文件所在组的组成员能对文件做的动作
3)* #其他人对与文件能做的动作
[3] "1" #文件内容被系统记录的次数
[4] " kiosk" #文件拥有者
[5] " kiosk" #文件所在组
[6] "0“ #文件大小
[7] "Oct 2 17:05" #文件最后一次被更改的时间
[8] "file" #文件名
2.查看目录属性
格式:ls -ld 目录名称
d rwxr-xr-x 3 kiosk kiosk 33 Aug 27 09:47 directory
[1] [2] [3] [4] [5] [6] [7] [8]

每部分对应的含义:
[1] "d" ##类型(同文件)
[2] "rwxr-xr-x" ##权限
[3] "3" ##子目录个数
[4] "kiosk" ##目录拥有者
[5] "kiosk ##目录所在组
[6] "33" ##目录中内容的属性的大小
[7] "Aug 27 09:47" ##目录中文件增加或减少或被更名的时间
[8] "directory" ##目录名称
"ls -l"也可以缩写成"ll" , 我们直接输入'll"就等于是"ls -s"是一样的。
3.文件用户组的更改
chown 用户名称 文件 ##更改文件所有人
chgrp 组名称 文件 ##更改文件所有组

chown -R 用户 目录 ##更改目录本身以及目录中的子文件的所有人
chgrp -R 组名 目录 ##更改目录本身以及目录中的子文件的所有组

注意:更改的所有人和组都必须存在!
-R表示递归,不加-R只更改了目录本身信息,没有更改目录中子目录和子文件的信息
4.权限的识别
ls -l命令执行后显示的输出中第2 到第10个字符为文件权限,如:

rw- r-- r--
用户权限(u) 组成员权限(g) 其他用户权限(o)
权限种类
r
r权限针对文件,表示可以查看文件内容
r权限针对目录,表示可以ls 查看目录中存在的文件名称
w
w权限针对文件,表示可以更改文件的内容
w权限针对目录,表示是否可以删除目录中的子文件或者子目录
x
x权限对于文件,表示是否可以开启文件当中记录的程序
x权限对于目录,表示是否可以进入目录中
chmod ugo+-=rwx ##改权限,如:

表示删除用户更改文件内容的权限,添加用户组成员和其他用户开启文件中记录程序的权限,也可以用以下方法:
r=4
w=2
x=1
-=0
7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---,如:

表示把用户和组成员的权限改为读,写,执行,其他用户不可以读,写,执行
5.文件的默认权限
umask ##显示系统预留权限值

1)临时修改
如:umask 077 ##临时将umask值修改为077

这个修改只在当前shell中有效
2)永久修改
vim /etc/bashrc 71行是普通用户的更改,73是超级用户的更改

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

source /etc/bashrc ##刷新bash配置
source /etc/profile ##刷新系统配置
6.特殊权限
1)stickyid ###强制位
o+t ###针对目录,当一个目录上有t权限时,这个目录中的文件只能被文件拥有者删除
t=1
chmod o+t directroy
chmod 1777 directory

westos下的子文件只能被它的所有者删除,其它用户不能删除
2)sgid ###粘制位
g+s ##针对目录,在目录中创建的文件都自动归属到目录所在组,针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的
chmod g+s file|directory
chmod 2777 file|directory , 如:

这样以来,在westos目录中创建的文件都自动归属到westos所在的组,而不是执行者的组
3)suid ###冒险位
u+s ###针对文件,文件记录动作在执行时是一文件所有人身份执行的,与是谁发起的无关
chmod u+s file
chmod 4777 file

把/bin/rm的所有人和组改成student普通用户,没有执行“chmod ug+s"这个命令之前,超级用户是以自己身份执行命令的,可以删除自己的文件,当执行这个命令,超级用户是以student的身份来删除root里的文件,权限是不够的,不能删除
7.权限的设定
acl 是指定用户对特定文件有特殊权限
1)指定让某个用户或组操作:“setfacl -m u/g:用户名/组名:权限 文件”。"ls -l 文件名",看到+表示权限列表开启,里面的权限是不读的,查看具体权限用gefacl
[root@desktop40 ~]# setfacl -m u:student:rwx /mnt/westos
[root@desktop40 ~]# ll /mnt/westos
-rw-rwxr--+ 1 root root 0 4月 4 21:58 /mnt/westos

"getfacl 文件名"查看权限列表

# file: mnt/westos 文件名
# owner: root 拥有者
# group: root 拥有组
user::rw- 拥有者权限
user:student:rwx 指定用户的权限
group::r-- 组的权限
group:student:rwx 指定组的权限
mask::rwx 权限最大值
other::r-- 其他用户权限
2)删掉某个用户或组的权限信息,"setfacl -x u/g:用户名/组名 文件名"
[root@desktop40 ~]# setfacl -x u:student /mnt/westos

3)关闭权限:"setfacl -b 文件名",+消失权限关闭

4)mask值,权限列表开启后,“ll 文件名”查看的权限是不准确的,所以如果chmod缩小里面权限值的话,mask值会被修改,mask值是指定用户权限最大有效值:

用"setfacl -m m:权限 文件名"就可以修改回来
5)defaul权限
default权限只针对目录,对于目录中新建的文件可写
格式:setfacl -m d:u:用户名:rwx 目录,如:

6)-R表示对目录中原有的文件可写
格式:setfacl -Rm u:用户名:rwx 目录

本文详细介绍了Linux文件的属性查看,包括文件类型、权限、用户和组信息。讲解了如何使用ls -l命令查看文件和目录属性,并阐述了如何更改文件用户组以及权限,包括chown、chgrp和chmod命令的使用。还探讨了Linux的默认权限设置umask,以及特殊权限如sticky bit、sgid和suid。最后,提到了ACL(访问控制列表)在为特定用户或组设定特殊权限方面的作用。

372

被折叠的 条评论
为什么被折叠?



