Linux下的文件权限管理

一、文件权限

读、写、执行权限的意义

对于普通文件
    r:表示读取文件的内容的权限。
        例如读取一个文本文件的文字;
        对某文件执行复制操作时,需用户对该文件有“r”权限4。
    w:表示编辑修改文件内容的权限(但不含删除该文件)。
    x:表示文件是否可以被执行。
        windows可通过文件扩展名判断文件是否可以被执行,而linux的文件名并无特别意义,文件是否可执行完全看是否有此权限。

对于目录文件
    r:表示读取目录结构列表的权限,即可使用命令“ls”查看目录中的文件名列表。
        目录的主要内容就是记录文件名列表。

    w:表示更改目录结构列表的权限,即:
        可在该目录创建新的目录或文件;
        可在该目录删除已存在的目录或文件,不论被删除的文件权限为何;
        这里写图片描述
        可在该目录重命名已存在的目录和文件;
        可在该目录剪切已存在的目录和文件等。

    综上,“w”权限对目录来讲可理解为,变动该目录下的文件名列表的权限。

    x:表示能否切换到该目录作为当前工作目录,即:
        可使用命令“cd”至该目录;
        可读取、执行该目录下的文件(如果文件本身开放读、执行权限的话),若目录无“x”权限,则无法读取、执行该目录下的文件;
1.mask –能够赋予用户权限的最大值

umask相当于chmod 的补码。
临时修改
umask ##显示系统预留权限值
umask 077 ##临时修改umask值

永久修改

[root@foundation41 ~]# vim /etc/bashrc

70 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
71 umask 002 ##普通用户的更改
72 else
73 umask 022 ##超级用户的更改
74 fi

[root@foundation41 ~]# source /etc/bashrc      ##刷新用户设置
[root@foundation41 ~]# vim /etc/profile


59 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
60 umask 002
61 else
62 umask 022
63 fi

2.chmod更改文件权限

使用方式 : chmod [-cfvR] [–help] [–version] mode file…
说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
参数 :


u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

范例 :将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *

语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
范例:
chmod a=rwx file 和 chmod 777 file 效果相同。

[root@localhost mnt]# chmod 600 /mnt/happig.sql 
[root@localhost mnt]# ls -l happig.sql 
-rw------- 1 user group 1938 May 26 03:34 happig.sql

二、文件权限管理

1.setfacl –设置文件执行列表

setfacl

-m, –modify=acl modify the current ACL(s) of file(s)
-M, –modify-file=file read ACL entries to modify from file
-x, –remove=acl remove entries from the ACL(s) of file(s)
-X, –remove-file=file read ACL entries to remove from file
-b, –remove-all remove all extended ACL entries

eg:
setfacl -m u:lisa:rwx file 更改用户lisa对file文件权限
setfacl -x g:staff file 移除file文件中staff组权限信息
setfacl -b file 移除file文件中其他组/用户权限信息

2.getfacl –获取文件执行权限

[kiosk@foundation55 Desktop]$ getfacl file
# file: file
# owner: kiosk
# group: kiosk
user::rwx
group::rw-
other::r-x            --ACL(Acess Control Lists )
3.chmod – change file mode bits

用法:chmod [OPTION]… MODE[,MODE]… FILE…
-R, –recursive 更改目录和目录下所有文件的执行权限
eg:

[kiosk@foundation55 Desktop]$ chmod 765 file
# file: file
# owner: kiosk
# group: kiosk
user::rwx
group::rw-
other::r-x
4.文件属性查看

命令ls,用于列出(list)各文件。
默认仅显示非隐藏文件文件名。
选项:
选项“-a”:显示包括隐藏文件在内的所有文件名。
文件名第一个字符为“.”的即为隐藏文件。

[root@foundation41 fileproprity]# ls -a 
.  ..  1  .1  2  3
选项“-d”:若参数为目录1,该选项表示仅列出目录本身,而非目录内的文件。
[root@foundation41 fileproprity]# ls -d
.
选项“-R”:若参数为目录,该选项表示连同子目录及其下文件都列出。
[root@foundation41 fileproprity]# ls -l
total 0
-rw-r--r-- 1 root root 0 May 27 11:12 1
-rw-r--r-- 1 root root 0 May 27 11:12 2
-rw-r--r-- 1 root root 0 May 27 11:12 3
选项“-l”:列出详细的文件和属性。
[root@foundation41 fileproprity]# ls -l
total 0
-rw-r--r-- 1 root root 0 May 27 11:12 1
-rw-r--r-- 1 root root 0 May 27 11:12 2
-rw-r--r-- 1 root root 0 May 27 11:12 3
各字段以空格分隔,各字段意义:
    共10个字符。第一个字符表示文件类型2;后9个字符,每3个一组分别表示文件属主(u)、属组(g)、其他用户(o)对于此文件是否有读(r)、写(w)、执行(x)权限。
    该文件被硬链接的次数。
    文件属主。
    文件属组。
    文件大小,默认单位为B。
    文件内容最近一次被修改的时间,即mtime。
    文件名。
[root@localhost upload]# ls -l config_global_default.php 
-rwxrwxrwx 1 root   root   8868 Dec  8  2015 config_global_default.php

[1] ##文件类型

- #普通文件
d #目录
s #socket套接字
l #软链接
p #管道
c #字符设备
b #块设备

[3] #文件内容被系统记录的次数
[4] #文件拥有者
[5] #文件所在组
[6] #文件大小
[7] #文件最后一次被更改的时进
[8] #文件名称

5.查看目录属性

ls -ld directoy

[root@localhost html]# ls -ld upload/
drwxrwxrwx 12 root root 4096 May 27 03:05 upload/

[1] ##类型(同文件)
[2] ##权限
[3] ##子目录个数
[4] ##目录拥有者
[5] ##目录所在组
[6] ##目录中内容的属性的大小
[7] ##目录中文件增加或减少或被更名的时间
[8] ##目录名称

三、文件用户组的更改

1.更改文件/目录所属用户

chown 用户名称 文件 ##更改文件所有人

[root@localhost mnt]# chown user happig.sql 
[root@localhost mnt]# ls -l happig.sql 
-rw-r--r-- 1 user group 1938 May 26 03:34 happig.sql

chown -R 用户 目录 ##更改目录本身以及目录中的子文件的所有人

[root@localhost mnt]# chown -R user Directory/
[root@localhost mnt]# ls -lR Directory
Directory:
total 0
-rw-r--r-- 1 user root 0 May 27 04:37 file1
-rw-r--r-- 1 user root 0 May 27 04:37 file2
2.更改文件/目录组

chgrp 组名称 文件 ##更改文件所有组

[root@localhost mnt]# chgrp group happig.sql 
[root@localhost mnt]# ls -l happig.sql 
-rw-r--r-- 1 root group 1938 May 26 03:34 happig.sql

chgrp -R 组名 目录 ##更改目录本身以及目录中的子文件的所有组

[root@localhost mnt]# chgrp -R group Directory/
[root@localhost mnt]# ls -l Directory
total 0
-rw-r--r-- 1 user group 0 May 27 04:37 file1
-rw-r--r-- 1 user group 0 May 27 04:37 file2

猜你喜欢

转载自blog.csdn.net/qq_36747237/article/details/80468191