日期:2014-05-16  浏览次数:20896 次

linux查看及修改文件权限

linux查看及修改文件权限以及相关

查看文件权限的语句:

在终端输入:
ls -l xxx.xxx (xxx.xxx是文件名)
那么就会出现相类似的信息,主要都是这些:
-rw-rw-r--

一共有10位数
其中: 最前面那个 - 代表的是类型
???? 中间那三个 rw- 代表的是所有者(user)
???? 然后那三个 rw- 代表的是组群(group)
???? 最后那三个 r--??? 代表的是其他人(other)

然后我再解释一下后面那9位数:
?? r 表示文件可以被读(read)
?? w 表示文件可以被写(write)
?? x 表示文件可以被执行(如果它是程序的话)
?? - 表示相应的权限还没有被授予

好了

现在该说说修改文件权限了

在终端输入:
chmod o+w xxx.xxx
表示给其他人授予写xxx.xxx这个文件的权限

chmod go-rw xxx.xxx
表示删除xxx.xxx中组群和其他人的读和写的权限

其中:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o

r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)

其中:rwx也可以用数字来代替
???? r ------------4
?? w -----------2
?? x ------------1
?? - ------------0

行动:
+ 表示添加权限
?? - 表示删除权限
= 表示使之成为唯一的权限

当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:

-rw-------??? (600) 只有所有者才有读和写的权限
-rw-r--r--??? (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------??? (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x??? (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x??? (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限

?

转自: http://hi.baidu.com/hqbupt/blog/item/fde41533162bfffc1a4cff9c.html

?

?

Linux下当我们在目录中使用? ll? 或? ls -l 指令时 第一列会显示出目录下文件的权限 权限的格式是这个样子的? -rwxrwxrwx
  我们分开来解释:
  第一个 - 表示文件的类型:-普通文件 d目录文件 l符号链接文件(软连接文件) c符设备文件 b块设备文件 p管道文件 s socket文件
  rwx代表的意思分别是:read可读 write可写 executive可执行;
  把rwx用二进制来表 示,有权限就用1表示,没权限用0表示 例如? rw- =110? r--=100 r-w =101 依次类推,之后再转化为十进制:rw-=110=4+2+0=6 r-x=101=4+0+1=5? 所以我们可以直接理解为r=4,w=2,x=1,用十进制便是文件权限:rwx=4+2+1=7? , r-x=4+1=5
  举些例子:
  644 = rw-r--r--? 755=rwx-r-xr-x? 631=rw--wx--x
  从前往后三组rwx代表的意思:user属主? group属组 other其它
  设置权限的方法:以文件 file 原权限为644(rw-r--r--)为例
  chmod +x file??? 默认为添加属主的执行权限
  chmod 755 file?? rwxr-xr-x
  chmod u+x file? rwxr--r-- 数组添加执行权限
  chmod g=rwx file? chmod g=674 file rw-rwxr-- 属组改为rwx权限
  chmod o-r file?? rw-r-----? 减去其它用户的可读权限
  这样子大家就明白了吧
  我们创建的新文件权限为644 新目录权限为755 这是为什么呢?
  大家看一下各权限可做的事情就明白了:
  files?????????????????????????????????????? directory
  r:?????????? cat,more,less????????????????????????????????? ls
  w:????????????????? vim???????????????????????????????????????? creat files
  x:??????????????? script?????????????????????????????????????????? cd
  那我们又是怎么限定创建文件的权限的呢?
  linux里面,用一种umask的掩码似的东西限定新创建文件的权限,默认umask为0022(普通用户的umask通常为0002)
  例子:我们创建一个文件:它的权限就是666-022=644
  我们创建一个目录:它的权限就是777-022=755
  暂时性更改umask:例子 :umask=027
  umask文件保存与/etc/bashrc中 想要永久生效可以更改/etc/bashrc/umask文件
  想要只对自己生效可以更改家目录下的.bash文件 添加一行umask=nnn即可
  下面我们重点介绍的是文件的特殊属性:
  安全上下文:任何时刻用户靠进程操作计算机,进程能否访问一个文件取决于发起这个进程的用户对该文件所拥有的权限:若发起进程的用户与文件属主匹配,以该用 户权限访问;否则,若发起进程的组与该文件数组匹配,以该组的权限进行访问;否则以发起者权限访问。这就叫做安全上下文
  开始介绍3个特殊权限:suid sgid sticky
  suid:通常用于可执行文件 任何用户操作此权限文件使用该文件属主权限
  sgid:通常用于目录 任何用户操作此权限文件夹使用该文件夹属组权限
  sticky:通常用于公共类型的目录 对于此权限目录,任何用户可在里面创建文件,但是只允许更改或删除属于自己的文件
  举例说明下他们的作用
  suid:/etc/passwd文件拥有suid权限。普通用户更改密码 时,要运行passwd文件,passwd对/etc/shadow(存放密码的文件)文件进行操作更改密码。要知道普通用户对shadow文件没有任何 权限,所以普通用户执行的passwd程序不能更改shadow。这时候就用到了suid权限,这个权限使用户运行的passwd命令使用的是 passwd文件属主root的权限,拥有root权限的passwd命令有权限更改/etc/shadow文件,于是普通用户可以成功更改自己密码。
  sticky:/tmp? /var/tmp 目录对于任何人有任何权限,因为它是存放临时文件的地方,这种公共目录下,一个用户文件有被其他用户随意破坏的危险,sticky权限正好避免了这一危险
  更改特殊权限方法:
  chmod u+s filename 属主添加suid权限
  chmod g+s filename 属组添加sgid权限
  chmod o+t filename 目录添加scitky权限
  suid sgid sticky 同样可用 4 2 1 表示
  例:chmod 4644 filename 表示 u+s
  rwS 表示权限有r w s
  rws 表示的权限为 r w x s
  t权限同理
  下面大家可以自己动手演示一下,我们最好用复杂一点的方法实现,练习一下权限操作。
  提示:
  mkdir -pv /test/share -p提示创建