The secret of getting ahead is getting started.
1 Linux权限的概念
我们知道Linux下有两种用户:超级用户(root)、普通用户。
- 超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情。
- 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
如何从普通用户转到超级用户呢?
命令:
su root (root可以省略)
从超级用户转为普通用户命令:
su username
另外再复习一下Linux下新建用户的指令是:
useradd username
删除用户的命令是:
userdel -r username
为新用户设新密码的命令是:
passwd username
2 文件访问者的分类(人)
在Linux中,文件访问者分成3种:
- 文件和文件目录的所有者:u---User
- 文件和文件目录的所有者所在的组的用户:g---Group
- 其它用户:o---Others
3 文件类型和访问权限(事物属性)
我们创建一个文件text.c ,那这个文件创建好的默认权限是什么呢?
通过上面我们不难看出建立一个普通文件的默认权限是 :rw- r-- r--
而建立一个目录的默认权限是:rwx r-x r-x
这里的 r w x分别代表什么意思呢?
i.读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii.执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv:“—”表示不具有该项权限
具体图解:
这里我们再普及一下文件有哪些类型:
- d:文件夹
- -:普通文件
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
有了上面的了解后,假如我们想修改文件的权限那应该怎么办呢?例如我想将text.c
这个文件的拥有者拥有可执行权限应该怎样操作呢?
这个时候就需要 chmod 这个指令了。
chmod
功能: 设置文件的访问权限
格式: chmod [ 参数 ] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod 命令权限值的格式:
① 用户表示符 +/-= 权限字符
+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
=: 向权限范围赋予权限代号所表示的权限
用户符号:
u :拥有者
g :拥有者同组用
o :其它用户
a :所有用户
我们可以来试试:
这样我就修改了该文件拥有者的权限了,至于减去相应的权限就用 - ,组合用的话可以加一个' ,'例如:
减去相应权限也同理。
②三位8进制数字
这个是什么意思呢?
我列一个表格给大家:
权限符号(读写执行) | 八进制 | 二进制 |
r-- | 4 | 100 |
-w- | 2 | 010 |
--x | 1 | 001 |
rw- | 6 | 110 |
r-x | 5 | 101 |
-wx | 3 | 011 |
rwx | 7 | 111 |
--- | 0 | 000 |
通过八进制数字修改也可以达到我们的需求:
这个很简单,大家都能够理解。