文件权限
文件的权限主要针对三类对象进行定义
owner: 属主, u
group: 属组, g
other: 其他, o
每个文件针对每类访问者都定义了三种权限
r: read w: write x: eXcut
权限功能
针对文件,rwx权限功能:
r: 可使用文件查看工具获取其内容
w: 可修改文件内容
x: 该权限主要针对于二进制、执行程序
针对目录,rwx权限功能:
r: 可以使用ls查看此目录中文件列表
w: 可在此目录中修改文件,即新建、删除此目录中的文件
x: 可以cd进入此目录,访问目录中文件的元数据
X:只给目录x权限,不给文件x权限;如果文件原来就有有执行权限,那么将赋予该文件执行权限
与权限相关的命令
chmod、chown、chgrp
chmod 修改文件权限,作用对象是文件
chown 修改文件所有者,作用对象是文件
chgrp 修改文件所属组,作用对象是文件
chmod 修改文件权限
命令用法1:chmod [OPTION]... OCTAL-MODE FILE...
选项:
-R 递归 更改目录下所有文件的权限
命令用法2:chmod [OPTION]... MODE[,MODE]... FILE...
MODE用法:
(1)修改用户的权限
u= (更改所有者权限)
g= (更改所属组权限)
o= (更改其他用户权限)
a= (更改所有权限)
(2)修改用户的某位或某些为的权限
u+ u- g+ g- o+ o- a+ a-
命令用法3: chmod [OPTION]... --reference=file1 file2... 参考file1文件的权限,将file2的权限修改为同样的设置
修改前文件权限
修改后文件权限
chown 修改文件所有者
命令用法:chown [OPTION]... [OWNER] [:[GROUP]] FILE...
chown 用户名.组名(或用户名:组名) 文件 修改文件用户和组
选项:
-R 递归 更改目录下所有文件的所有者
修改前文件所有者为root
修改后文件所有者为test1
chgrp 修改文件所属组
命令用法:chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
选项:
-R 递归 更改目录下所有文件的所属组
数字法设置权限
权限 r w x
对应数字 4 2 1
数字法表示权限,适用于所有对象,即u(文件所有者)、g(文件所属组)、o(其他)
因为数字相加最高为7,可以用八进制数字表示权限
--- 000 0 没有任何权限
--x 001 1 只有执行权限
-w- 010 2 只有写权限
-wx 011 3 有写和执行权限
r-- 100 4 只有读权限
r-x 101 5 有读和执行权限
rw- 110 6 有读和写权限
rwx 111 7 有读、写、执行权限
例如:
666 rw-rw-rw-
750 rwxr-xr-x
新建文件和目录的默认权限
umask值
设定umask值默认权限,只影响以后新建的文件
umask值+default(默认权限)=dir777|file666
文件的权限最大值为666,而目录权限最大值为777,是因为缺少执行权限1,这是为了安全考虑,文件具备执行权限,如果该文件是病毒或者不安全进程,会对系统有害,因此,系统默认文件不具备执行权限
文件权限算法:
新建文件权限为:666-umask值,如果所得结果某位存在执行(奇数)权限,则将其权限+1
新建目录权限为:777-umask,结果不做任何更改。
umask值
特权用户(管理员)默认为022
普通用户默认为002
命令用法:
umask 查看uamsk值
umask 数字 设定umask值
设置umask值只对当前登录用户有效,一旦退出该用户,umask值将不会对下次登录用户有效,因此,可将umask写入文件就用保存。
文件位置:~/.bashrc 只对当前用户有效
/etc/bashrc 对所有用户有效
模式法设置umask值:umask u=rw,g=r,o=
umask -s 查看设置的umask值
umask -p 显示umask值 显示结果,可用于重定向或追加到文件中,方便操作。
文件特殊权限
SUID SGID Skity
suid:数字表示为4,作用于二进制程序,功能:当用户执行此程序时,将继承此文件所有者的权限
命令用法:chmod u+s /usr/bin/passwd /usr/bin/passwd
数字法表示相当于 chmod 4755 /usr/bin/passwd 在原有用户权限值前加上4
sgid: 数字表示为2,作用于二进制程序,功能:当用户执行此程序时,将继承此文件所有组的权限
作用于目录上,功能:当用户在目录建新文件时,新文件的所属组自动继承此目录的所属组
命令用法:chmod g+s /usr/bin/passwd
数字法表示相当于 chmod 2755 在原有组权限值前加上2
sticky:数字表示为1,作用于目录上,功能:此目录中的文件,只能被所有者自已删除
命令用法:chmod o+t /usr/bin/passwd
数字法表示相当于 chmod 1755 相当于在原有权限前加上1
chattr 设定文件特定属性
+i 文件 任何用户都不能删除该文件
-i 去除该功能
+a 不能删除,只能追加内容
-a 去除该功能
-A 不更新读时间(atime),优化系统性能。
lsattr 显示特定属性