您的位置:首页 > 运维架构 > Linux

Linux文件和目录权限的操作

2017-12-20 00:00 288 查看
摘要: 文件和目录权限chmod
更改所有者和所属组chown
umask
隐藏权限lsattr/chattr

Linux的权限

Linux的权限由9个权限位组成 分成三段 依次是 所有者权限 所属组权限 其他用户权限



【r 可读】 【w 可写】 【x 可执行】

权限也可以用三个数字组合表示 r=4 w=2 x=1 那么上图权限用数字表示就是744

文件和目录权限chmod

【chmod 权限 文件名/目录 】 更改文件/目录的权限 仅仅更改 文件/目录 本身的权限

[root@lynn-05 ~]# ls -l
总用量 4
-rw-r--r--. 1 root root 0 12月 20 14:49 2.txt
[root@lynn-05 ~]# chmod 700 2.txt
[root@lynn-05 ~]# ls -l
总用量 4
-rwx------. 1 root root 0 12月 20 14:49 2.txt

【chmod -R 权限 目录】 更改目录本身及目录里 文件/目录 的权限

[root@lynn-05 ~]# ls -l /tmp/lynn
总用量 0
drwxr-xr-x. 2 root root 6 12月 16 23:08 1
drwxr-xr-x. 2 root root 19 12月 19 22:18 2
drwxr-xr-x. 4 root root 24 12月 19 22:24 lynnn
[root@lynn-05 ~]# ls -l /tmp/lynn/lynnn
总用量 0
drwxr-xr-x. 2 root root 6 12月 19 22:24 1
drwxr-xr-x. 2 root root 6 12月 19 22:24 2
[root@lynn-05 ~]# chmod -R 766 /tmp/lynn/lynnn
[root@lynn-05 ~]# ls -l /tmp/lynn
总用量 0
drwxr-xr-x. 2 root root 6 12月 16 23:08 1
drwxr-xr-x. 2 root root 19 12月 19 22:18 2
drwxrw-rw-. 4 root root 24 12月 19 22:24 lynnn
[root@lynn-05 ~]# ls -l /tmp/lynn/lynnn
总用量 0
drwxrw-rw-. 2 root root 6 12月 19 22:24 1
drwxrw-rw-. 2 root root 6 12月 19 22:24 2

chmod u=rwx,g=wx,o=x 2.txt 不能写成 u=r-x,g=-wx,o=--x 这种类型

[root@lynn-05 ~]# ls -l
总用量 4
-rwx------. 1 root root 0 12月 20 14:49 2.txt
[root@lynn-05 ~]# chmod u=rwx,g=wx,o=x 2.txt
[root@lynn-05 ~]# ls -l
总用量 4
-rwx-wx--x. 1 root root 0 12月 20 14:49 2.txt

chmod a+r 2.txt a=all 给所有者所属组其他用户都加上r权限

[root@lynn-05 ~]# ls -l
总用量 4
-rwx-wx--x. 1 root root 0 12月 20 14:49 2.txt
[root@lynn-05 ~]# chmod a+r 2.txt
[root@lynn-05 ~]# ls -l
总用量 4
-rwxrwxr-x. 1 root root 0 12月 20 14:49 2.txt

chmod a-x 2.txt a=all 给所有者所属组其他用户都去掉x权限

[root@lynn-05 ~]# ls -l
总用量 4
-rwxrwxr-x. 1 root root 0 12月 20 14:49 2.txt
[root@lynn-05 ~]# chmod a-x 2.txt
[root@lynn-05 ~]# ls -l
总用量 4
-rw-rw-r--. 1 root root 0 12月 20 14:49 2.txt


更改所有者和所属组chown

【chown 所有者 文件/目录】 更改文件/目录的所有者

[root@lynn-05 ~]# ls -l /tmp/lynn/
总用量 0
drwxr-xr-x. 2 root root 6 12月 16 23:08 1
[root@lynn-05 ~]# chown lynn /tmp/lynn/1
[root@lynn-05 ~]# !ls
ls -l /tmp/lynn/
总用量 0
drwxr-xr-x. 2 lynn root 6 12月 16 23:08 1

【chown 所有者:属所组 文件/目录】 更改文件/目录的所有者和属所组

[root@lynn-05 ~]# !ls
ls -l /tmp/lynn/
总用量 0
drwxr-xr-x. 2 lynn root 6 12月 16 23:08 1
[root@lynn-05 ~]# chown user1:user1 2.txt
[root@lynn-05 ~]# chown user1:user1 /tmp/lynn/1
[root@lynn-05 ~]# ls -l /tmp/lynn
总用量 0
drwxr-xr-x. 2 user1 user1 6 12月 16 23:08 1

【chown :属所组 文件/目录】 更改文件/目录的属所组

[root@lynn-05 ~]# ls -l /tmp/lynn
总用量 0
drwxr-xr-x. 2 user1 root 6 12月 16 23:08 1
[root@lynn-05 ~]# chown :lynn /tmp/lynn/1
[root@lynn-05 ~]# !ls
ls -l /tmp/lynn
总用量 0
drwxr-xr-x. 2 user1 lynn 6 12月 16 23:08 1

【chown -R 所有者:属所组 目录】 更改目录的所有者和属所组 并且同时更改目录下面文件和目录的所有者和属所组

[root@lynn-05 ~]# ls -l /tmp/lynn
总用量 0
drwxr-xr-x. 2 user1 lynn 6 12月 16 23:08 1
drwxr-xr-x. 2 root root 19 12月 19 22:18 2
drwxrw-rw-. 4 root root 24 12月 19 22:24 lynnn
[root@lynn-05 ~]# ls -l /tmp/lynn/lynnn
总用量 0
drwxrw-rw-. 2 root root 6 12月 19 22:24 1
drwxrw-rw-. 2 root root 6 12月 19 22:24 2
[root@lynn-05 ~]# chown -R user1:lynn /tmp/lynn/lynnn
[root@lynn-05 ~]# ls -l /tmp/lynn/
总用量 0
drwxr-xr-x. 2 user1 lynn 6 12月 16 23:08 1
drwxr-xr-x. 2 root root 19 12月 19 22:18 2
drwxrw-rw-. 4 user1 lynn 24 12月 19 22:24 lynnn
[root@lynn-05 ~]# ls -l /tmp/lynn/lynnn
总用量 0
drwxrw-rw-. 2 user1 lynn 6 12月 19 22:24 1
drwxrw-rw-. 2 user1 lynn 6 12月 19 22:24 2

【chgrp 所有组 文件/目录】 更改文件/目录的所有组

[root@lynn-05 ~]# ls -l /tmp/lynn
总用量 0
drwxr-xr-x. 2 user1 user1 6 12月 16 23:08 1
[root@lynn-05 ~]# chgrp root /tmp/lynn/1
[root@lynn-05 ~]# !ls
ls -l /tmp/lynn
总用量 0
drwxr-xr-x. 2 user1 root 6 12月 16 23:08 1


umask

umask是用来决定默认的文件和目录权限的 系统默认的umask为0022

[root@lynn-05 ~]# umask
0022

默认文件权限是用666减去umask得来的 (rw-rw-rw-)-(----w--w-)=rw-r--r-- 就是644

[root@lynn-05 ~]# touch 1.txt
[root@lynn-05 ~]# ls -l 1.txt
-rw-r--r--. 1 root root 0 12月 20 16:37 1.txt

默认目录权限是用777减去umask得来的 (rwxrwxrwx)-(----w--w-)=rwxr-xr-x 就是755

[root@lynn-05 ~]# mkdir 1/
[root@lynn-05 ~]# ls -ld 1/
drwxr-xr-x. 2 root root 6 12月 20 16:37 1

umask 可以更改 更改后重新创建的目录和文件的默认权限也会改变

新建目录的权限使用777减去新的umask (rwxrwxrwx)-(-------wx)=rwxrwxr-- 就是774

新建文件的权限使用666减去新的umask (rw-rw-rw-)-(-------wx)=rw-rw-r-- 就是664

[root@lynn-05 ~]# umask 003
[root@lynn-05 ~]# umask
0003
[root@lynn-05 ~]# touch 3.txt
[root@lynn-05 ~]# ls -l 3.txt
-rw-rw-r--. 1 root root 0 12月 20 16:39 3.txt
[root@lynn-05 ~]# mkdir 6
[root@lynn-05 ~]# ls -ld 6/
drwxrwxr--. 2 root root 6 12月 20 16:40 6/


隐藏权限lsattr/chattr

【chattr +i 文件】设置隐藏权限i 【lsattr 文件】 查看隐藏权限 增加i权限后不能对文件做任何操作

[root@lynn-05 ~]# chattr +i 1.txt
[root@lynn-05 ~]# head -n2 /etc/passwd > 1.txt
-bash: 1.txt: 权限不够
[root@lynn-05 ~]# ls -l 1.txt
-rw-r--r--. 1 root root 0 12月 20 16:37 1.txt
[root@lynn-05 ~]# lsattr 1.txt
----i----------- 1.txt
[root@lynn-05 ~]# touch 2.txt
[root@lynn-05 ~]# lsattr 2.txt
---------------- 2.txt
[root@lynn-05 ~]# mv 1.txt 6.txt
mv: 无法将"1.txt" 移动至"6.txt": 不允许的操作
[root@lynn-05 ~]# rm 1.txt
rm:是否删除普通空文件 "1.txt"?y
rm: 无法删除"1.txt": 不允许的操作
[root@lynn-05 ~]# touch 1.txt
touch: 无法创建"1.txt": 权限不够

【chattr -i 文件】去除隐藏权限i

[root@lynn-05 ~]# lsattr 1.txt
----i----------- 1.txt
[root@lynn-05 ~]# chattr -i 1.txt
[root@lynn-05 ~]# lsattr 1.txt
---------------- 1.txt

【chattr +i 目录】设置隐藏权限i

[root@lynn-05 ~]# chattr +i 1/
[root@lynn-05 ~]# mv 1/ 6/
mv: 无法将"1/" 移动至"6/1": 不允许的操作
[root@lynn-05 ~]# rm -r 1/
rm:是否进入目录"1/"? y
rm:是否删除普通空文件 "1/1.txt"?y
rm: 无法删除"1/1.txt": 权限不够
rm:是否删除普通空文件 "1/2.txt"?y
rm: 无法删除"1/2.txt": 权限不够
rm:是否进入目录"1/1"? y
rm:是否删除普通空文件 "1/1/1.txt"?y
rm:是否删除普通空文件 "1/1/2.txt"?y
rm:是否删除普通空文件 "1/1/3.txt"?y
rm:是否删除目录 "1/1/6"?y
rm:是否删除目录 "1/1/7"?y
rm:是否删除目录 "1/1/8"?y
rm:是否删除目录 "1/1"?y
rm: 无法删除"1/1": 权限不够
rm:是否删除目录 "1/2"?y
rm: 无法删除"1/2": 权限不够
rm:是否删除目录 "1/3"?y
rm: 无法删除"1/3": 权限不够
[root@lynn-05 ~]# touch 1/666.txt
touch: 无法创建"1/666.txt": 权限不够

[root@lynn-05 ~]# chattr +i 1/
[root@lynn-05 ~]# head -n2 /etc/passwd >1/1.txt
[root@lynn-05 ~]# cat !$
cat 1/1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

【chattr +a 文件】设置隐藏权限a

[root@lynn-05 ~]# chattr +a 1.txt
[root@lynn-05 ~]# head -n2 /etc/passwd > 1.txt
-bash: 1.txt: 不允许的操作
[root@lynn-05 ~]# head -n2 /etc/passwd >> 1.txt
[root@lynn-05 ~]# mv 1.txt 6.txt
mv: 无法将"1.txt" 移动至"6.txt": 不允许的操作
[root@lynn-05 ~]# touch 1.txt
[root@lynn-05 ~]# vi 1.txt
[root@lynn-05 ~]# rm 1.txt
rm:是否删除普通文件 "1.txt"?y
rm: 无法删除"1.txt": 不允许的操作
[root@lynn-05 ~]# lsattr 1.txt
-----a---------- 1.txt

【chattr +a 目录】设置隐藏权限a

[root@lynn-05 ~]# chattr +a 1/
[root@lynn-05 ~]# touch 1/666.txt
[root@lynn-05 ~]# head -n2 /etc/passwd > 1/666.txt
[root@lynn-05 ~]# cat !$
cat 1/666.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

lsattr -R 目录 把当前目录的子目录子文件都显示

[root@lynn-05 ~]# lsattr 1
---------------- 1/1.txt
---------------- 1/2.txt
---------------- 1/1
---------------- 1/2
---------------- 1/3
---------------- 1/666.txt
[root@lynn-05 ~]# lsattr -R 1
---------------- 1/1.txt
---------------- 1/2.txt
---------------- 1/1

1/1:

---------------- 1/2

1/2:

---------------- 1/3

1/3:

---------------- 1/666.txt

友情链接:阿铭Linux
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: