Linux下有两种用户:超级用户(root)、普通用户。
超级用户(root):可以在linux系统下做任何事,不受限制,只有1个。
普通用户:在linux系统下做有限的事,有N个。
超级用户的提示符'#';普通用户的提示符'$'
切换用户的命令:su
切换root时可以直接输入su,再按密码就可以切换。切换普通用户时,su XXX(普通用户的名称)
权限的概念
限制人的,访问的对象天然没有这种“属性”;权限 = 人(用户) + 事物(文件)属性 (rwx)
文件访问者的分类(人)
文件和文件目录的所有者:u---User(中国平民 法律问题) 文件和文件目录的所有者所在的组的用户:g---Group 其它用户:o---Others (外国人)
2. 文件类型和访问权限(事物属性)
2.1 文件类型
如上图所示,第一位:文件类型。
d:目录
-:普通文件
、文本、可执行、归档文件等
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
在Linux操作系统下,不用文件后缀区分文件类型,而是用 文件属性中第一列的第一个字符来区分文件类型(但是在Linux操作系统里面的软件需要看文件后缀,例如gcc 软件需要将文件后缀改为.c)
2.2 访问权限
读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限 iv.“—”表示不具有该项权限
如上图,每三个字符对应着不同用户的权限,例如画横线前三位rwx,表示目录dir的所有者(user)具有可读可写可执行权限;紧接着中间三位r-x,表示该目录的所属组(group)具有可读不可写可执行权限;最后的后三位r-x,代表的其他用户(other)具有可读不可写可执行权限
3. 文件权限值的表示方法
3.1 字符表示
Linux表示 | 说明 | Linux表示 | 说明 |
r-- | 只读 | -w- | 只可写 |
--x | 仅可执行 | rw- | 可读可写 |
-wx | 可写和可执行 | r-x | 可读可执行 |
rwx | 可读可写可执行 | --- | 无权限 |
3.2 八进制表示
权限符号(读写执行) | 八进制 | 二进制 |
r | 4 | 100 |
w | 2 | 010 |
x | 1 | 001 |
rw | 6 | 110 |
rx | 5 | 101 |
wx | 3 | 011 |
rwx | 7 | 111 |
--- | 0 | 000 |
4. 文件访问权限的相关设置方法
chmod
功能:设置文件的访问权限
格式:chmod [参数]权限 文件名
只有文件的拥有者和root才可以修改文件的权限
例如:
chomod u+w test.c #表示给当前目录下的test.c文件的所有者添加可写权限
chomod g-x test.c #表示给当前目录下的test.c文件的所属组删除可执行权限
chmod 664 /home/abc.txt # 第一个'6'表示:rw-,以此类推
chmod 640 /home/abc.txt
chown
功能:修改文件的所有者
格式:chown [参数]用户名 文件名
例如:
chown user1 test.c #将test.c文件的所有者改为user1
chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数]用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
例如:
chgrp group1 file1 #将file1文件的所属组改为group1
chgrp -R group1 file2
umask
功能:查看或修改文件掩码
新建文件夹默认权限=0666 新建目录默认权限=0777 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & (~umask)
为什么 我们创建的普通文件(不包括可执行),为什么默认权限是从664开始的,我i什么目录的默认权限是775开始的
默认权限: 你看到的
起始权限: 系统设定的 普通文件起始权限:666开始的(没有x的),目录文件的起始权限是:777(rwx)
因为,系统为了更好的控制文件权限,系统会有默认的权限掩码的概念! umask
(假如文件掩码为002,则对应的八进制为 000 000 010)
权限掩码:在起始权限中,去掉在umask中出现的权限,不能影响其他任何权限!
最终权限 = 起始权限 & (~umask),如下图。
# umask 755
# umask //查看
# umask 044//设置
file
功能说明:辨识文件类型。 格式:file [选项] 文件或目录...
5. 目录权限
如果目录没有(r/w/x)权限:
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
6. 粘滞位
背景:在使用Linux的时候,未来可能会有一些共享目录,被所有普通用户共享,用来保存普通用户产生的临时数据
准备:共享文件通常都是由root提供的
文件被所有的人共享的时候,受权限约束,但是拦不住别人删我的文件!!
(为什么拦不住别人删?因为,能够才特定目录下,创建或者删除文件由该目录的w权限决定!)
为了让大家共享文件,且不让其他人随便删除别人的文件,所以要添加 粘滞位
当一个目录被设置为“粘滞位”(chmod +t),则该目录下的文件只能由:
超级管理员删除
该目录的所有者删除
该文件的所有者删除