课时15 Linux权限机制

来源:互联网 发布:阿里云 discuz 编辑:程序博客网 时间:2024/06/05 02:20

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
至此,各项要求均已满足。

原创粉丝点击