这篇文章是后面一篇的铺垫,用二进制来管理权限也挺有意思的。
Linux下一个文件一经创建,就具有三种访问方式 1.读,可以显示该文件的内容 2.写,可以编辑或删除它 3.执行,如果该文件是一个shell脚本或者程序
按照所针对的用户,文件的权限可以分为三类
1.文件属主,创建该文件的用户 2.同组用户,文件属主所在用户组的任何用户 3.其他用户,不包含文件属主的其他用户组中的用户
[root@VM_0_14_centos ~]# ll
total 32
drwxr-xr-x 4 root root 4096 Nov 28 00:09 group-chat
drwxr-xr-x 5 root root 4096 Oct 16 11:41 new-blog
-rwxr--r-- 1 root root 2303 Sep 17 11:31 start_sb_app.sh
...
分析一下命令的结果
输出 | 解释 |
---|---|
total 32 | 该目录中所有文件所占的空间 |
drwxr-xr-x | d表示文件的类型,rwxr-xr-x9个字符表示文件的访问权限 |
4 | 该文件硬链接的数目 |
root | 文件的属主 |
root | 文件属主root所在的缺省组(也叫做root) |
28 | 用字节来表示的文件长度 |
Nov 28 00:09 | 文件的更新时间 |
group-chat | 文件名 |
文件的类型有如下几种
符号 | 介绍 |
---|---|
d | 目录 |
l | 符号链接(指向另一个文件) |
s | 套接字文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 命名管道文件 |
- | 普通文件,或者更准确的说,不属于以上几种类型的文件 |
rwxr-xr-x9个字符表示文件的访问权限,这9个字符可以分为三组 rwx:文件属主权限 r-x:同组用户权限 r-x:其他用户权限
rwx位置上的-表示相应的访问权限被禁止 举几个例子演示一下,相信你很快就理解了
权限 | 所代表的的含义 |
---|---|
r-- --- --- | 文件属主可读,但不能写或执行 |
rwx r-- r-- | 文件属主可读,写,执行,同组和其他用户只可读 |
rwx rwx rwx | 所有人可读,写,执行 |
chmod命令的一般格式为
chmod [who] operator [permission] filename
who的含义
字符 | 解释 |
---|---|
u | 文件属主权限 |
g | 同组用户权限 |
o | 其他用户权限 |
a | 所有用户(文件属主,同组用户及其他用户) |
operator的含义
字符 | 解释 |
---|---|
+ | 增加权限 |
- | 取消权限 |
= | 设定权限 |
permission的含义
字符 | 解释 |
---|---|
r | 读权限 |
w | 写权限 |
x | 执行权限 |
举几个例子演示一下,假定myfile文件最开始的权限为rwx rwx rwx
命令 | 结果 | 含义 |
---|---|---|
chmod a-x myfile | rw- rw- rw- | 收回所有用户的执行权限 |
chmod go-w myfile | rw- r-- r-- | 收回同组用户和其他用户的写权限 |
chmod u+x myfile | rwx r-- r-- | 赋予文件属主执行权限 |
用二级制数字的0和1来表示用户的权限,这个思想很牛逼,如下图
当用户同时有读写执行权限时,二进制为是111,转为10进制就是7,所以777就表示文件属主,同组用户和其他用户都拥有读写执行权限
例子如下
命令 | 结果 | 含义 |
---|---|---|
chmod 777 myfile | rwx rwx rwx | 赋予所有用户读,写,执行权限 |
chmod 644 myfile | rw-- r-- r-- | 赋予文件属组读和写的权限,所有其他用户读权限 |
chmod 444 myfile | r-- r-- r-- | 赋予所有用户读权限 |