文件权限:
ls -ld /mnt/
drwxr-xr-x. 2 root root 6 Mar 13 2014 /mnt/
-|rwxr-xr-x.|2|root|root|6|Mar 13 2014|/mnt
— —————————— — ———— ———— — ——————————— ———
1 2 3 4 5 7 8 9
1:文件类型,不可修改
-:文件
d:目录(directory)
l:链接文件(link)
b:设备文件中的可供存储的接口设备(块:block)
c:设备文件中的串行端口设备(键盘鼠标等一次性读取设备)(字符:character)
s:套接字(sockets)
p:管道(FIFO,pipe)
2:文件权限,可以修改
3:子目录个数
4:文件所有人,可以修改
5:文件所有组,可以修改
6:文件大小,即定事实不可修改
7:文件最后一次修改时间
8:文件名字,可以修改
问:执行rm -fr /mnt/*后查看那/mnt/目录的属性,为什么子文件个数还是2?
答:ls -a /mnt/会发现/mnt/目录中还有两个隐藏目录.和..
.表示当前目录
..表示当前目录的上级目录
chown username file|dir ##更改文件或目录的所有人##
chown username:roupname file|dir ##更改文件或目录的所有人以及所有组##
chown -R username dir ##更改目录本身及里面所有内容的所有人(第归更改)##
chgrp -R groupname dir ##更改目录本身及里面所有内容的所有组(第归更改)##
文件或目录的权限:
r(4):
对文件:可以读取文件内容
对目录:可以查看目录中的文件名或子目录名
w(2):
对文件:可以写入文件内容
对目录:可以添加删除目录中的文件或子目录
x(1):
对文件:可以允许系统运行文件中的程序
对目录:可以进入目录
修改权限:(-R表示第归修改)
chgrp:改变文件所属用户组
chown:改变文件所有者
chmod:改变文件的权限
如果把/mnt/westos/目录权限改成000,root用户能进入/mnt/westos,修改/mnt/westos的所有者为student,使用用户student进入/mnt/westos失败。student用户作为目录的所者不能进入是因为该目录对其所有者并没有开放权限,root用户可以进入该目录是因为root用户为系统管理者,至高无上。
从系统存在角度来讲,系统开放的权力越大,系统存在的意义就越高;从系统安全角度来讲,系统开放的权力越小,系统的安全性也就越高。所以系统设定新文件或目录时会去掉一些权限。
系统默认保留权限umask=022
文件默认权限为644(系统内核认为文件有可执行权力是不正常的,所以系统默认会去点文件的可执行权力)
目录默认权限为755
系统默认权限的设定:
临时设定:
umask ##查看系统保留权限##
umask 077 ##更改系统保留权限为077##
永久设定:
vim /etc/bashrc ##shell程序的配置文件
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002 ##普通用户umask##
72 else
73 umask 022 ##超级用户umask##
74 fi
75
vim /etc/profile ##系统程序的配置文件##
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002 ##普通用户umask##
61 else
62 umask 022 ##超级用户umask##
63 fi
64
source /etc/bashrc ##使配置文件/etc/bashrc生效##
source /etc/profile ##使配置文件/etc/profile生效##
注:永久设定时两个配置文件的umask必须统一
现在有一个满权限的目录/pub,任何用户都可以在该目录下随意的删除文件,对于文件安全性而言,这样就不合理了,
t权限(sticky:粘制位):只针对目录,使用户只能删除该目录下属于自己的文件或目录
t权限的添加方式: chmod o+t /directory
(t=1) chmod 1777 /directory
注,含t权限的目录属性为“drwxrwxrwt”当该目录为满权限时,各个用户才能在该目录下建立自己的目录文件,才需要保证每个用户只能删除自己的目录文件,所以有t权限的目录也是满权限。
更改一个二进制可执行文件的所有人为student,使用root用户运行该名令时,这个进程是root的;但是给该二进制可执行文件加上s权限,root用户再执行该命令时,这个进程就是student的了。
s权限(suid:冒险位):只针对二进制可执行文件,使文件内记录的程序产生的进程的所有人为文件所有人,与该进程的发起人无关
s权限的添加方式: chmod u+s file
(suid=4) chmod 4xxx file
应用:使该系统中的所有用户可以在任何位置建立文件
建立文件使用命令touch ----> touch命令的二进制文件为/bin/touch(执行which touch命令可以知道touch命令的二进制可执行文件在那里) ----> 执行chmod u+s /bin/touch命令;给touch的二进制可执行文件加上s权限后,任何用户执行touch命令时都会以root身份来执行
s权限(sgid:强制位):
文件:只针对二进制可执行文件,使文件内记录的程序产生的进程的所有组为文件所有组,与该进程的发起组无关
目录:当目录有了sgid权限后,任何用户组的用户在该目录下创建文件或目录最后都属于该目录的所有组
sgid的添加方式: chmod g+s file|/directory
(sgid=2) chmod 2xxx file|/firectory
个人感觉sgid是个很攻气的权限,不敢谁在该目录下创建目录或文件,最后都是我!
本文出自 “12449513” 博客,请务必保留此出处http://12459513.blog.51cto.com/12449513/1910162
原文地址:http://12459513.blog.51cto.com/12449513/1910162