0%

Linux 权限管理

Linux系统中用户和权限

三种不同类型的用户:文件拥护者(user),同组用户(group),可以访问系统的其他用户(others)。
三种访问文件或目录的方式:可读文件(r),可写文件(w),可执行文件(x)。

在shell环境中执行ls -la 输出当前目录的详细信息

1
2
3
4
5
6
mygit@ubuntu:~/code$ ls -la
total 148
drwxr-xr-x 24 mygit mygit 4096 Apr 3 02:53 .
drwxr-xr-x 24 mygit mygit 4096 Apr 9 12:20 ..
drwxr-xr-x 3 mygit mygit 4096 Apr 2 20:49 auto_complete

total 148

表示当前目录下有148个文件或目录

drwxr-xr-x 3 mygit mygit 4096 Apr 2 20:49 auto_complete

  1. drwxr-xr-x表示文件类型和用户权限

    第1个字符表示文件类型:

    • d:目录
    • -: 普通文件
    • l :连接文件
    • b:块设备文件
    • c:字符设备文件
    • p:管道文件
    • s:套接字文件

    后面9个字符代表相应用户对该文件的权限:r:读权限 w:写权限 x:执行权限 -无权限

    有权限用1表示,无用0表示,rwx代表最高权限,用二进制数表示为111,即八进制7,—代表无权限,用000表示,即八进制0。

    • rwx 111 7
    • r– 011 3
    • rw- 001 1
    • -w- 010 2

    前三个:文件所属用户;中间三个:文件所属组;后三个:其他用户

  1. 数字3

    表示目录中文件数目或文件的硬连接数

  2. mygit mygit

    分别表示文件所属用户名,文件所属组名

  3. 数字4096

    对于普通文件:表大小;对于目录:包含的文件名所占据的大小(4096的整数倍,至少4096)

  4. Apr 2 20:49

    修改日期

  5. auto_complete

    文件名或目录名

常用命令

chmod(控制文件或目录的访问权限)

使用方式:chmod 参数 文件名/路径名

选项 说明
-c 若该文件权限与目录确实已经更改,才显示其更改动作
-f 若该文件权限与目录无法被更改也不要显示错误讯息
-v 显示权限变更的详细资料
-R 对当前目录下的所有文件与目录进行相同的权限变更
–help 显示辅助说明
–version 显示版本

字符表示法

chmod [u g o a] [= + -] [r w x],字符间不加空格:

例如:chmod u-x,g-w,o+r t1.txt

取消文件所属用户的执行权限,取消文件所属组的读权限,赋予其他用户读权限

字符 说明
a (all) 所有用户
u(user) 文件所属用户
g(group) 文件所属组
o(other) 其它用户
= 该用户将只有一种权限
- 减去某种权限
+ 增加某种权限
r 读权限
w 写权限
x 可执行权限

八进制表示法

使用三位八进制数字分别代表文件拥有者用户,同组用户,其它用户的权限,读,写,执行权限所对应的数值分别是4,2和1。若要表示rwx属性,则4+2+1=7;若要表示rw-属性,则4+2+0=6;若要表示r-x属性,则4+0+1=5。

例如:chmod -R 777 test 递归赋予test及其子目录文件读写执行权限。