Linux系统中用户和权限
三种不同类型的用户:文件拥护者(user),同组用户(group),可以访问系统的其他用户(others)。
三种访问文件或目录的方式:可读文件(r),可写文件(w),可执行文件(x)。
在shell环境中执行ls -la 输出当前目录的详细信息
1 | mygit@ubuntu:~/code$ ls -la |
total 148
表示当前目录下有148个文件或目录
drwxr-xr-x 3 mygit mygit 4096 Apr 2 20:49 auto_complete
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
前三个:文件所属用户;中间三个:文件所属组;后三个:其他用户
数字3
表示目录中文件数目或文件的硬连接数
mygit mygit
分别表示文件所属用户名,文件所属组名
数字4096
对于普通文件:表大小;对于目录:包含的文件名所占据的大小(4096的整数倍,至少4096)
Apr 2 20:49
修改日期
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及其子目录文件读写执行权限。