第1个字符:文件类型
linux通过文件属性的第一个字符区分文件类型:
linux文件类型:
- :普通文件(源代码,库文件,可执行文件,文档压缩包等)
d:目录文件
c:字符设备文件:磁盘,显示器
b:块设备:磁盘
I :链接文件:快捷方式
p:管道文件:快捷方式
s:socket文件
第2~9个字符:权限 = 角色+文件属性
linux下有两种用户:root用户,普通用户
root用户:可以再linux系统下做任何事情,不受限制
root就相当于老大,普通用户相当于小弟。受到老大的管辖和限制。
什么是权限?
约束人的,一件事允许谁做。
角色分为三种:
拥有者(owner) ,所属组(grouper),其他人 (other)
每个用户都属于某种角色。
解释一下这三个角色的意思:拥有者就是拥有文件的人,相当于创建这个文件的人;所属组:隶属于所属组的用户所获得的权限是一样的。其他人就是除了拥有者和所属组以外的人。
举个例子:现在公司有一台linux机器,你是公司的员工属于A团队的成员,团队开发的东西比较机密,所以组内成员可以更改查看,组外不可以。这里面拥有者是你们组长,所属组是你们整个团队,可以赋予读和写的权限。其他人就是除了你们组和组长以外的人,应该不赋予任何读和写的权限。
如图所示,三个为一组,从左到右分别是:拥有者 所属组 other。那么其中的字母代表什么含义?
接下来我们介绍文件属性。
文件属性:
文件属性分为三种:
r(read)读
w(write)写
x 执行(大部分文件不可执行,所以给去掉了)
对于目录来说x是必须有的,x是进入目录,r是浏览目录,x是移动删除。
没有这个权限就用-
现在举个例子:
拥有者:读属性,写属性,执行属性;
所属组:读属性,执行属性
other:读属性,执行属性
如何更改权限?
两种方式:第一种更改该用户的角色,第二种更改文件属性。
a)chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户chmod a=x /home/abc.txt
②三位8进制数字b)chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
实例:c)chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
实例:
# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt
# chown user1 f1
# chown -R user1 filegroup1
chgrp users /abc/f2d)umask
功能:查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。# umask 755
# umask //查看
# umask 044//设置file查看文件类型
sudo提权
放在普通指令的前面相当于有了root的权限,但是有可能不成功,因为可能不是受信任的拥护。想要提权可以到/etc/sudoer中添加