标签:linux 文件权限
1.用户组概念
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念
- 所有者
- 所在组
- 其它组
- 改变用户所在的组
所有者
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者
用ls ‐ahl命令可以看到文件的所有者
也可以使用chown 用户名 文件名来修改文件的所有者
所属组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
用ls ‐ahl命令可以看到文件的所有组
也可以使用chgrp 组名 文件名来修改文件所在的组
其它组
除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
2.文件权限
使用ls命令可以查看文件权限以及所属主和所属组
[root@test_01 ~]# ls -l /root/.ssh/
总用量 16
-rw-r--r--. 1 root root 398 10月 19 20:50 authorized_keys
-rw-------. 1 root root 1675 10月 20 00:45 id_rsa
-rw-r--r--. 1 root root 394 10月 20 00:45 id_rsa.pub
-rw-r--r--. 1 root root 353 10月 20 00:39 known_hosts
文件类型位之后的9位表示文件权限,字符每3个一组(rwx),读(r)=4、写(w)=2、执行(x)=1
eg.:
- rwx(7):文件所有者的权限(u)是读、写和执行
- rw-(6):与文件所有者同一组的用户(g)的权限是读、写但不能执行
- r--(1):不与文件所有者同组的其他用户(o0的权限是读不能写和执行
更改文件夹/文件权限可以使用chmod命令(只改变该目录或该文件本身)
[root@test_01 ~]# chmod 700 /root/.ssh
或者
[root@test_01 ~]# chmod u=rwx,g= /root/.ssh
如果需要改变目录及其之下的所有子目录、文件的权限,则可以使用-R选项实现
[root@test_01 ~]# ls -ld /tmp/test01
drwxrwxr-x. 2 root root 19 10月 25 00:23 /tmp/test01
[root@test_01 ~]# ls -l /tmp/test01
总用量 0
-rw-r--r--. 1 root root 0 10月 25 00:23 1.txt
/tmp/test01:
1.txt
[root@test_01 ~]# chmod -R 777 /tmp/test01
[root@test_01 ~]# ls -l /tmp/test01
总用量 0
-rwxrwxrwx. 1 root root 0 10月 25 00:23 1.txt
[root@test_01 ~]# ls -ld /tmp/test01
drwxrwxrwx. 2 root root 19 10月 25 00:23 /tmp/test01
3.更改用户
更改文件所属用户可以使用chown命令
[root@test_01 ~]# chown wennan /tmp/test01/1.txt
[root@test_01 ~]# ls -ld !$
ls -ld /tmp/test01/1.txt
-rwxrwxrwx. 1 wennan root 0 10月 25 00:23 /tmp/test01/1.txt
如果需要更该所属组则可以使用chgrp命令或者以下格式的命令
chown owner:group filename/foldername
4.umask
文件或者目录新建之后往往会带有一个默认的权限,umask则是默认权限的缺省值。
使用umask可以查看该数值:
[root@test_01 ~]# umask
0022
[root@test_01 ~]# umask -S
u=rwx,g=rx,o=rx
若使用者新建 ‘文件‘ 则预设 ‘没有可执行 ( x ) 项目‘, 亦即只有 rw 这两个项目, 用数字表示就是666或字母 :–rw-rw-rw-
若使用者新建 ‘目录‘, 则由于 x 与是否可以进入此目录有关, 因此预设为所有权限均开放, 亦即为777 或字母:d-rwx-rwx-rwx
※当umask 为 003, 请问该 umask 情况下, 建立的文件和目录权限为仅仅取消掉权限 --------w, 因此:
文件: (-rw-rw-r-) - (--------wx) = -rw-rw-r--
目录: (drwxrwxrwx) - (--------wx) = drwxrwxr--
5.隐藏权限lsattr chattr
Linux chattr命令用于改变文件属性。
lsattr命令用于查看文件属性
这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
a:让文件或目录仅供附加用途。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防以外删除。
eg.为文件增加“i”权限:
[root@test_01 ~]# chattr +i /tmp/test01/1.txt [root@test_01 ~]# lsattr /tmp/test01/1.txt ----i----------- /tmp/test01/1.txt [root@test_01 ~]# chattr +i /tmp/test01/1.txt [root@test_01 ~]# mv !$ 2.txt mv /tmp/test01/1.txt 2.txt mv: 无法将"/tmp/test01/1.txt" 移动至"2.txt": 不允许的操作
标签:linux 文件权限
原文地址:http://lavender7n.blog.51cto.com/11736879/1976170