权限对象U G O
U:user用户 属主
G:group组 所属组
O:other其他人
基本权限
root用户并不会受到基本权限的约束
r:读权限(4)
w:写权限(2)
x:执行权限 (1)
rwx/rwx/rwx三个一组分别代表U G O的权限, - 表示没有该项权限
rw-r--r--:权限为644,创建的文件的默认权限
rwxr-xr-x:权限为755,创建的目录的默认权限
rwxrwxrwx:最高权限777
---------:任何人不具备权限000
基本权限对文件和目录的影响
基本权限对文件的影响
r权限:读取文件内容 cat vi/vim head tail
w权限:编写该文件 vi/vim(额外需要读权限) echo(不需要读权限)
x权限:执行该文件(脚本) / 或 ./ (额外需要读权限)
注意:若一个文件没有执行权限,不能用 / 或 ./ 执行权限,但是可以通过bash或sh命令执行文件。(bash和sh命令也需要读权限),总的来说 / 或 ./ 需要读(r)和执行(x)权限,而bash和sh命令只需要读权限(r)。
基本权限对目录的影响
r权限:读目录中的内容 ls
w权限:在目录中创建删除内容 touch mkdir rm
x权限:打开目录 cd(只有x权限可以打开目录,但是无法查看目录中的内容)
注意:删除目录下的内容,有无删除权限取决于该目录的权限,和目录下要删除的文件或目录的权限无关。
修改基本权限(按需修改)
chmod
数字方式
chmod 564 文件名:文件属主权限:读,执行;属组权限:读,写;其他人权限:读
chmod 777 文件名:文件属主,属组,其他人权限都为:读,写,执行
chmod 000 文件名:文件属主,属组,其他人都没有任何权限
字母方式
chmod u+x 文件名:给文件属主增加x执行权限
chmod u-x 文件名:给文件属主去除x执行权限
chmod u=rwx 文件名:给文件属主赋值权限为rwx
chmod o=- 文件名:不给其他人任何权限
chmod ugo=rwx 文件名:文件属主,属组,其他人权限都为:读,写,执行
chmod u=rwx,o=rw 文件名:更改文件属主权限为读,写,执行;其他人权限为读,写
注意:不能使用类似于u=4(权限对象=数字)的命令进行修改
[参数]
chmod 777 目录名 -R:递归修改目录下的所有文件权限为777(包括目录本身)
chmod 644 目录名/* -R:递归修改目录下的所有文件权限为644(不包括目录本身)
修改文件的属主和属组
前提是属主和属组要存在
chown(修改属主和属组)
chgrp(只能修改属组)
修改文件属主:chown 属主 文件名
修改文件属组:chown .属组 文件名
修改文件属组:chgrp 属组 文件名
修改文件属主和属组:chown 属主.属组 文件名
递归修改目录下的所有文件属主和属组:chown 属主.属组 目录名 -R(包括目录本身)
递归修改目录下的所有文件属主和属组:chown 属主.属组 目录名/* -R(不包括目录本身)
高级权限
suid权限(s)
针对于命令文件,当给命令文件设置suid权限后,无论谁执行这个命令,都会变成这个命令的所有者执行该命令,对象u 符号s
chmod u+s 命令文件
chmod u-s 命令文件
sgid权限(s)
针对目录,组继承权限,当给目录设置sgid权限后,那么在该目录下创建的所有新文件都会继承目录的属组,对象g 符号 s
chmod g+s 目录名
chmod g-s 目录名
sticky权限(t)
针对目录,防止别人误删除自己的文件,当给目录设置sticky权限后,在此目录下,用户可以删自己创建的文件,不能删除别人创建的文件
chmod o+t 目录名
chmod o-t 目录名
高级权限的数字方式
suid 4
sgid 2
sticky 1
例如:chmod 4777 文件名,特殊权限是四位数字中的第一位,后三位分别是UGO的权限
隐藏权限
文件属性(隐藏权限)可以约束root用户
设置隐藏权限
只能对文件进行读操作:chattr +i 文件名
取消该权限:chattr -i 文件名
可以向文件中追加内容,但是不能删除文件:chattr +a 文件名
取消该权限:chattr -a 文件名
查看隐藏权限
lsattr 文件名
umask(权限掩码)
创建文件时,文件的默认权限和umask有关联,
默认情况下,umask为022,所以创建的文件默认权限是644,目录默认权限是755
修改umask:umask 掩码值
掩码值最大777,最小000
文件默认最大权限是666
目录默认最大权限是777
umask默认为 022
umask与之对应的文件(目录)默认权限的计算方法:
①文件(目录)和umask权限用字母表示
②rwx为1,-为0,将文件(目录)和umask的权限字母用1和0表示
③文件的1和0不变,umask的1和0取反
④处理后两者做与运算,将结果转化回rwx权限字母,得到当前umask对应的默认文件(目录)权限
简单方法(有时会出错):
umask和默认文件权限值按位相加,等于文件默认最大权限值666
umask和默认目录权限值按位相加,等于目录默认最大权限值777
拓展:(子shell)中设置的umask不会对登录shell中的umask码产生影响
实例:
在登录shell环境中umsk为022
(umask 066; openssl genrsa -out private/cakey.pem 2048)
在子shell中设置umask为066,登录环境中umask仍为022
Linux启动级别
0 停机 init 0 等价于shutdown now
1 单用户模式
2 多用户模式,但不启动NFS
3 完整的多用户模式,带有显示登录 init 3
4 预留,未使用
5 图形化界面 init 5
6 重新启动 init 6 等价于reboot