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": 不允许的操作