1. 权限的含义
r 对文件:是否和以查看文件中的内容 --->cat file
对目录:是否可以查看目录中有什么子文件或者子目录 --->ls dir
w 对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行更改
--metadate 元数据-->描述数据属性的信息
x 对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
2. 改变文件的权限的方式
格式:
chmod u|g|o +|- r|w|x file|dir
例子:
chmod u+x /mnt/file1 #给/mnt/file1的所有人加上x权限
chmod g-r /mnt/file2 #给/mnt/file2的所有组去掉r权限
chmod ug-r /mnt/file3 #给/mnt/file3的所有人所有组去掉r权限
chmod u-r,g+x /mnt/file4 #给/mnt/file4的所有人去掉r权限,所有组加上x权限
chmod -r /mnt/file5 #给/mnt/file5的所有人,所有组,其他用户都去掉r权限
chmod o=rx /mnt/file6 #给/mnt/file6的其他用户赋予r-x权限
(1)建立文件,查看初始权限:
(2)更改权限
- 用数字表示权限(用法与上面类似)
r w x
2 1 0
r=4 w=2 x=1 #权值--类似于二进制
r-x|r--|--x
5 4 1
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---
注:数字相减时,不能单纯的做差,而要用对应的权限rwx相减!
例:4(r- -) – 3(-wx) = 4(r- -)
3. umask
(1)临时更改umask
umask #系统建立文件时默认保存的权力
umask 007 #临时设定系统预留权限为007
(2)永久更改umask
- 更改vim /etc/profile #系统配置文件
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002 #普通用户的umask
else
umask 022 #超级用户的umask
fi
- 更改vim /etc/bashrc #shell配置文件
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
if
- 更改之后不能立即生效,需要suorce:读取更改后文件,使其生效。
suorce /etc/profile
source /etc/bashrc #让更改立即生效
4. 特殊权限
(1) sticky #粘制位:用于共享目录,不同用户不能删除其他用户的文件
作用:
只针对目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件的所有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir
注:现象为[rwx --> rwt]
(2) sgid #强制位
作用:
对文件: 只针对二进制可执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录; 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式:
chmod g+s file|dir
chmod 2xxx file|dir
(3) suid #冒险位
只针对二进制可执行文件
当文件上有suid时,任何人执行这个文件中的程序产生的进程都属于文件的所有人
设定方式:
chmod u+s file
chmod 4xxx file