Linux基础-文件/文件夹权限管理

权限管理模型

1.发起进程的属主与文件的属主是否相同,如果相同则应用属主权限
2.否则查看与文件的属组是否相同,如果相同则应用属组权限
3.否则只能应用others的权限

r:readable,读
w:writable,写
x:excutable,执行

文件的权限

r:可读取/获取文件的数据
w:可修改文件的数据
x:可将此文件发起运行为进程

  • 所有命令都有执行权限
  • 自己创建的文件一般都没有执行权限的,文件默认是不应该有执行权限的

目录的权限

r:可使用ls命令获取其下的所有文件列表
w:可修改此目录下的文件列表,创建/删除文件
x:可cd至此目录,可使用ls -l获取所有文件的详细属性信息

664 775 750 600 755 640

修改文件权限

Mode表示法:chmod[OPTION]... MODE[,MODE]... FILE...
u:属主 g:主组 o:其他 a:所有

[root@clc tmp]# chmod g=rxw abc.txt
[root@clc tmp]# ll abc.txt         
-rw-rwxr--. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod g=x,u=rxw abc.txt 
[root@clc tmp]# ll abc.txt             
-rwx--xr--. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod uo=wx abc.txt    
[root@clc tmp]# ll abc.txt         
--wx--x-wx. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod u+r abc.txt  
[root@clc tmp]# ll abc.txt       
-rwx--x-wx. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod uo-x abc.txt
[root@clc tmp]# ll abc.txt        
-rw---x-w-. 1 root root 0 May 12 20:38 abc.txt

八进制表示法:chmod[OPTION]... OCTAL-MODE FILE...

[root@clc tmp]# chmod 660 abc.txt 
[root@clc tmp]# ll abc.txt       
-rw-rw----. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod 775 abc.txt
[root@clc tmp]# ll abc.txt       
-rwxrwxr-x. 1 root root 0 May 12 20:38 abc.txt

chmod[OPTION]... --reference=RFILE FILE...

[root@clc tmp]# ll /var/log/messages
-rw-------. 1 root root 435845 May 12 20:52 /var/log/messages
[root@clc tmp]# chmod --reference=/var/log/messages abc.txt
[root@clc tmp]# ll abc.txt
-rw-------. 1 root root 0 May 12 20:38 abc.txt

-R:递归修改

[root@clc tmp]# chmod -R g+r /tmp/test
  • 用户仅能修改属主为自己的文件的权限

修改文件属主/属组

chown[OPTION]... [OWNER][:[GROUP]] FILE...
-R:递归修改
间隔符用 . 或 :都行

[root@clc docker]# ll -a
total 4
drwxr-xr-x.  2 root root   33 May 12 21:33 .
drwxrwxrwt. 19 root root 4096 May 12 21:33 ..
-rw-r--r--.  1 root root    0 May 12 21:33 a
-rw-r--r--.  1 root root    0 May 12 21:33 b
-rw-r--r--.  1 root root    0 May 12 21:33 c
[root@clc docker]# chown -R clc /tmp/docker   docker文件夹及其子文件属主被改为clc
[root@clc docker]# ll -a
total 4
drwxr-xr-x.  2 clc  root   33 May 12 21:33 .
drwxrwxrwt. 19 root root 4096 May 12 21:33 ..
-rw-r--r--.  1 clc  root    0 May 12 21:33 a
-rw-r--r--.  1 clc  root    0 May 12 21:33 b
-rw-r--r--.  1 clc  root    0 May 12 21:33 c
[root@clc docker]# chown -R clc.clc /tmp/docker
[root@clc docker]# ll -a
total 4
drwxr-xr-x.  2 clc  clc    33 May 12 21:33 .
drwxrwxrwt. 19 root root 4096 May 12 21:33 ..
-rw-r--r--.  1 clc  clc     0 May 12 21:33 a
-rw-r--r--.  1 clc  clc     0 May 12 21:33 b
-rw-r--r--.  1 clc  clc     0 May 12 21:33 c

chown[OPTION]... --reference=RFILE FILE...
可参考其他文件修改权限

思考:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改文件内容?能否删除文件?
答:不能修改,但能删除

  • 用户对文件是否有写权限决定了此用户能否修改文件内容
  • 用户对目录是否有写权限决定了此用户能否增加/删除目录下文件
  • 仅管理员能修改文件的属主/属组

umask

文件的权限反向掩码,遮罩码
文件:666-umask
目录:777-umask
之所以文件用666去减,表示文件默认不能拥有执行权限

假如umask为023,666-023=643,此时other有执行权限不符合规定
在此类情况下(减得的结果中有执行权限),需要将其加1

umask的默认值为0002

[clc@clc ~]$ umask
0002

修改umask

[clc@clc ~]$ umask 023

install

install - 复制文件并设置属性

install [OPTION]... [-T] SOURCE DEST
单源复制
install [OPTION]... SOURCE... DIRECTORY
多源复制
install [OPTION]... -t DIRECTORY SOURCE...
多源复制
install [OPTION]... -d DIRECTORY...
创建目录

-m:指定目标文件权限,如果不指定,默认为755
-o:设置目标文件属主
-g:设定目标文件属组
-d:创建目录(不能用来复制目录)

mktemp

创建临时文件或临时目录
mktemp [OPTION]... [TEMPLATE]

[root@clc ~]# mktemp /tmp/test.XXX
/tmp/test.pHO
[root@clc ~]# mktemp /tmp/test.XXX
/tmp/test.Foo
[root@clc ~]# mktemp /tmp/test.XXX
/tmp/test.qxS

-d :创建临时目录

文件操作

vipw和vigr

你可能感兴趣的:(Linux基础-文件/文件夹权限管理)