Linux课程学习笔记来源于网易云课堂:Linux 入门基础
1 权限
权限是操作系统用来限制对资源访问的机制,一般分为读、写、执行、系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定文件进行什么样的操作。
每个进程都是以某个用户的身份运行,进程的权限与该用户的权限一样,用户的权限越大,该进程拥有的权限也就越大。
2 文件权限:
Linux中,每个文件拥有以下三种权限:
r 读取 可读取文件内容 可列出目录内容
w 写入 可以修改文件内容 可在目录中创建删除文件
x 执行 可以作为命令执行 可访问目录内容
(目录必须拥有x权限,否则无法查看其内容)
【
在学习课程时,发现存在ll命令和ls –l命令,实际上两个命令是等同的ll命令是ls –l命令的简写,可以用alias命令(用来设置和查看指令的别名)查看一下:
或者通过输入这两个命令对比一下,还是一样的
】
3 UGO
linux基于UGO模式进行控制
(1) U-user G-group O-other
(2) 每一个文件权限基于UGO进行设置
(3) 权限三个一组(rwx),对应UGO分别设置
(4) 每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件所属用户或所属组的使用O权限
命令ls –l可以查看当前目录下文件的详细信息:
drwxr-xr—2 nash_sutraining 208 Oct 1 13:50 linuxcast.net
第一个部分表示UGO权限
第二个表示链接数量
第三个表示文件所属用户
第四个表示所属组
第五个表示大小
第六个表示创建时间
第七个表示文件名
UGO权限中:
首位表示文件类型,d表示目录,-表示普通文件,l表示链接
第一个rwx表示对应user拥有的权限,三个权限都有
第二个r-x表示对应group拥有的权限,没有w权限
第三个r--表示其他人other拥有的权限,只有r权限
4 修改文件所属用户、组
(1) chown 改变文件所属用户:
chown nash linuxcast.net 将linuxcast.net文件的所属者改为nash
-R [eg: chown –R nashlinuxcast.net]参数表示进行递归修改,就是将一个文件夹及其下面的文件一起改变用户
(2) chgrp 改变文件的所属组,同样可以使用-R参数:
chgrp nash tranning 将tranning 文件的所属组百威nash
5 修改权限
(1)chmod 模式 文件 //用来修改用户的权限
- u、g、o分别代表用户、组和其他
- a表示ugo
- +、-代表加入或删除对应权限
- r、w、x代表三种权限
example:
chmod u+rw linuxcast 对linuxcast文件的用户添加rw权限
chmod g-x linuxcast 对linuxcast文件的所属组减去x权限
chmod go+r linuxcast 对linuxcast文件的用户和所属组添加r权限
chmod a-x linuxcast 对linuxcast文件的UGO各减去x权限
此命令还可以用-R参数[chmod –R a-x linuxcast]
(2)chmod支持数字方式修改权限,三个权限分别由三个数字表示(由二进制转换为十进制表示):
r = 4 (2^2)=100B
w = 2 (2^1)=010B
x = 1 (2^0)=001B
a.使用数字表示权限时,魅族权限分别对应数字之和:
rw = 4+2 = 6 <=110B
rwx = 7 <=111B
r-x = 5 <=101B
b.使用数字表示UGO权限使用如下方式表示:
chmod 660 linuxcast.net ==> rw-rw----
chmod 775 linuxcast.net ==> rwxrwxr-x
使用数字修改时,三个(即UGO)都要修改
6 实例
练习操作:
# 添加用户
[root@localhost ~]# useradd nash_su
[root@localhost ~]# useradd bob
[root@localhost ~]# useradd alice
[root@localhost ~]# useradd john
[root@localhost ~]# useradd steve
[root@localhost ~]# useradd david
# 添加组
[root@localhost ~]#groupadd training
[root@localhost ~]#groupadd market
[root@localhost ~]#groupadd manage
[root@localhost ~]# mkdir /workpractice
# 将用户按照组分类
[root@localhost ~]# usermod -G training nash_su
[root@localhost ~]# usermod -G training bob
[root@localhost ~]# usermod -G market alice
[root@localhost ~]# usermod -G market john
[root@localhost ~]# usermod -G manage steve
[root@localhost ~]# usermod -G manage david
# 建立工作部门的单独文件
[root@localhost ~]# mkdir /workpractice
[root@localhost ~]# cd /workpractice
# 建立各部门单独的目录
[root@localhost workpractice]# mkdir training
[root@localhost workpractice]# mkdir market
[root@localhost workpractice]# mkdir manage
# 将各部门单独的目录与组相配合
[root@localhost workpractice]# chgrp training training
[root@localhost workpractice]# chgrp market market
[root@localhost workpractice]# chgrp manage manage
# 设置各部门之间不能访问
[root@localhost workpractice]# chmod o-rx training
[root@localhost workpractice]# chmod o-rx market
[root@localhost workpractice]# chmod o-rx manage
[root@localhost workpractice]# cd training/
# 建立training部门各用户的工作目录
[root@localhost training]# mkdir nash_su
[root@localhost training]# mkdir bob
# 设置training同部门用户之间可以查看,但不能修改(默认),不同组不能够访问
[root@localhost training]# chmod o-rx nash_su
[root@localhost training]# chmod o-rx bob
[root@localhost training]# cd ..
[root@localhost workpractice]# cd market/
# 建立market部门各用户的工作目录
[root@localhost market]# mkdir alice
[root@localhost market]# mkdir john
# 设置market同部门用户之间可以查看,但不能修改(默认),不同组不能够访问
[root@localhost market]# chmod o-rx alice
[root@localhost market]# chmod o-rx john
[root@localhost market]# cd ..
[root@localhost workpractice]# cd manage/
# 建立manage部门各用户的工作目录
[root@localhost manage]# mkdir steve
[root@localhost manage]# mkdir david
# 设置manange同部门用户之间可以查看,但不能修改(默认),不同组不能够访问
[root@localhost manage]# chmod o-rx steve
[root@localhost manage]# chmod o-rx david
至此,各项要求均已满足。