-
字符解释
"-"代表常规文件、"l"代表软连接、"d"代表目录、"b"和"c"代表硬件设备、"p"和"s"代表其他特殊用途的文件。
-
身份介绍
在linux系统中,对文件或目录来说,访问者的身份有三种:
- 主用户,拥有者(owner)文件的创建者。
- 组用户,和文件的owner同组的用户。
- 其他用户,除所有者,所有者所属组和超级管理员外的用户。
-
权限介绍
- 读(r),例如:ls、cat、more、head、tail等命令
- 写(w),例如:cp、mv、rm、touch、mkdir、>>等命令
- 执行(x),例如:cd
- 查看权限的命令:ls -l或者是ll
每一条记录由七部分组成,分别是:
1.代表文件类型的权限,2.表示链接数,3.表示文件拥有者,4.表示文件所属组,
5.表示文件容量,6.表示文件修改的日期(月日时分(年)),7.表示文件或目录名
前十位字符的含义:
第一个字符代表文件的类型,如软连接(l),目录(d),常规文件(-)等
第2-4位代表拥有者的权限
第5-7位代表所属组的权限
第8-10位代表其他用户权限
如果没有权限,则用"-"表示。
-
权限管理命令:
-
chmod
chmod [options] dirname/filename
u代表拥有者(user),g代表所属组(group),o代表其他用户(others)。
-代表取消权限,+代表增加权限。删去a的拥有者rwx权限,增加所属组和其他用户的w权限。
a代表所有用户(all)
删除所有用户的rwx权限
rwx可以使用数字表示,r->4,w->2,x->1,没有权限->0
比如777,代表rwx,rwx,rwx,即4+2+1,4+2+1,4+2+1即所有用户都可读写执行该文件。
753,代表rwx,r-x,-wx,即4+2+1,4+0+1,0+2+1即拥有者可读写执行该文件,所属组可读执行该文件,其他用户只能写和执行该文件。
-
chown
改变文件或目录的拥有者或所属组
chown [-R] newuser dirname
注意:改文件不需要加R,改目录需要加R
更改文件拥有者和所属组为jdr
-
chgrp
更改文件属组为root
- 文件特殊权限管理
- SetUID
- 只有可执行二进制程序才能设定SUID权限
- 命令执行者对文件要有x权限
- 命令执行者在执行时应获得拥有者权限
- SetUID只在程序执行过程中生效,执行完成就失效
- 设置UID权限的两种方式(4代表UID)
chmod 4755 文件名
chmod u+s 文件名
-
SetGID
- 针对文件
- 只有可执行二进制程序才能设定SUID权限
- 命令执行者对文件要有x权限
- 命令执行者在执行时应获得拥有者权限
- SetUID只在程序执行过程中生效,执行完成就失效
- 针对目录
- 普通用户必须具备rx权限,才能进入
- 普通用户在此目录中的有效组,会变成此目录的所属组
- 目录被授予SGID权限后,普通用户对此目录拥有w权限时,新建的文件默认所属组是此目录的所属组。
- 设置GID的两种方式(2代表SGID)
chmod 2755 文件名
chmod g+s 文件名
-
SBIT
- 针对目录
一旦给某个目录赋予最大权限777,若该目录由其他用户创建的文件,即便是root用户创建的文件,普通用户虽然不可以直接删除该文件,但是可以通过删除该目录来达到删除该目录下的所有文件,相当于也可以把其他用户创建的文件删除。
通过赋予粘着位,可以限制不同的普通用户只能删除自己所建立文件,而不能删除其他用户所建立的文件。
系统默认由粘着位权限的文件,如:/tmp
- 设置粘着位
chmod 1755 目录名
chmod o+t 目录名
- 取消粘着位
chmod 0755 目录名
chmod o-t 目录名
- umask 0022
要想永久改变umask值,则可以修改文件/etc/bashrc,在文件中添加一行umask 027。即该文件的权限是777-027=750