Linux权限管理

@TOC

  

目录

Linux权限的概念

文件访问者的分类

Linux修改文件和目录的所属组(chgrp命令)

​编辑

​编辑

修改文件和目录的所有者和所属组(chown命令)

文件类型和访问权限

Linux 读写执行权限(-r,-w,-x)的含义

rwx权限对文件的作用

rwx权限对目录的作用

chmod命令修改文件或者目录权限、

chmod命令使用数字修改文件权限

​编辑

 chmod命令使用字母修改文件权限

 linux umask详解:令新建文件和目录拥有默认权限

粘滞位


       对于初学者来说,Linux系统为啥需要设定不同的权限,所有人都直接使用管理员root不是特别省事?

       由于绝大多数用户使用的是个人计算机,使用者一般都是被信任的人(如家人、朋友等)。在这种情况下,大家都可以使用管理员身份直接登录。但在服务器上就不是这种情况了,往往运行的数据越重要(如游戏数据),价值越高(如电子商城数据、银行数据),则服务器中对权限的设定就要越详细,用户的分级也要越明确。

        假如我有一个软件开发的团队,那么我想让团队的每一个人都可以使用某些目录下的文件,而非团队的其他人则不予以开放,我们可以将团队里的所有人拉到一个群组中, 并赋予这个群组读写目录的权限,这样就可以实现要求。同时我作为团队的核心,我掌控着这台服务器,为了确保这台服务器的正常运行,root用户的密码只能掌握在我的手里,其他人的权限或大或小都应该受到限制,不然有可能会被别人对服务器造成无法挽回的影响。

        因此,在服务器上 ,绝对不是所有的用户都使用root身份登录,而要根据不同的工作需要和职位需要,合理分配用户等级和权限等级

Linux权限的概念

Linux下有两大用户:超级用户(root)和普通用户。

       超级用户:可以在linux系统中做任何事情,不受限制。

       普通用户:在linux下只能做有限的事情

     (超级用户的命令提示符是 # ,普通用户的命令提示符为 $ )

命令:su [用户名]

功能:切换用户

       例如:假如有个普通用户zhangsan,要从root用户切换到普通用户zhangsan,则使用 su zhangsan。要从普通用户zhangsan切换到root用户则使用su root(root可以省略 或者 su - ),此时系统会提醒root用户的命令。

文件访问者的分类

文件和文件目录的所有者u----user
文件和文件目录的所有者所在的组的用户g----group
其他用户o---Others

Linux修改文件和目录的所属组(chgrp命令)

       chgrp命令用于修改文件(或目录)的所属组。

       注:便于记忆可以理解为“change group”的缩写

       chgrp命令的用法很简单,基本格式是:

chgrp [-R] 所属组 文件名(目录名)

      -R(注意是大写)选项常作用于更改目录的所属组,表示更改连同子目录中所有文件的所属组信息

       使用这个命令需要注意的是,要被改变的群组名必须真实存在的,否则命令就无法正确执行,会提醒:invalid group: ‘群组名’

 这行命令是创建一个叫sslx的群组

 可以看到,在具有 sslx群组的前提下,我们成功修改了 test.cpp 文件的所属组,但我们再次试图将所属组修改为 sadfs 时,命令执行失败,就是因为系统的 /etc/group 文件中,没有 sadfs 群组。

修改文件和目录的所有者和所属组(chown命令)

chown命令,可以认为是“ change owner”的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。

chown的基本格式是:

chown [-R] 所有者 文件或目录

-R(注意大写)选项表示连同子目录中的所有文件都更改所有者。

如果需要同时更改所有者和所属组,chown命令的基本格式是:

chown [-R] 所有者:所属组 文件或目录

        注意,在 chown 命令中,所有者和所属组中间也可以使用点(.),但会产生一个问题,如果用户在设定账号时加入了小数点(例如 zhangsan.test),就会造成系统误判。因此,建议使用冒号连接所有者和所属组。

       当然chown命令也支持单纯修改文件或者目录的所属组,例如:chown :sslx test.cpp,就表示修改test.cpp文件的所属组,但修改所属组通常使用chgrp命令,因此不需要使用chown单纯修改文件或者目录的所属组。

将test.cpp的所有者改为pmb,所属组改为root 

注:Linux 系统中,用户等级权限的划分是非常清楚的,root 用户拥有最高权限,可以修改任何文件的权限,而普通用户只能修改自己文件的权限(所有者是自己的文件)

文件类型和访问权限

上图中所示的文字意思解释如下:

 第一位的文件类型的种类:

文件类型表示符号
字母表示文件类型
d文件夹
-普通文件
l软链接(类似windows的快捷方式)
b块设备文件(例如硬盘,光驱等)
p管道文件
c字符设备文件(例如屏幕等串口设备)
s套接口文件

Linux 读写执行权限(-r,-w,-x)的含义

rwx权限对文件的作用

rwx权限对文件的作用
rwx权限对文件的作用
读权限(r)表示可读取此文件中的实际内容,例如,可以对文件执行 cat、more、less、head、tail 等文件查看命令。
写权限(w)表示可以编辑、新增或者修改文件中的内容,例如,可以对文件执行 vim、echo 等修改文件数据的命令。注意,无权限不赋予用户删除文件的权利,除非用户对文件的上级目录拥有写权限才可以。
执行权限(x)表示该文件具有被系统执行的权限。Window系统中查看一个文件是否为可执行文件,是通过扩展名(.exe、.bat 等),但在 Linux 系统中,文件是否能被执行,是通过看此文件是否具有 x 权限来决定的。也就是说,只要文件拥有 x 权限,则此文件就是可执行文件。但是,文件到底能够正确运行,还要看文件中的代码是否正确。

rwx权限对目录的作用

rwx权限对目录的作用
rwx权限对目录的作用
读权限(r)表示具有读取目录结构列表的权限,也就是说,可以看到目录中有哪些文件和子目录。一旦对目录拥有 r 权限,就可以在此目录下执行 ls 命令,查看目录中的内容。
写权限(w)对于目录来说,w 权限是最高权限。对目录拥有 w 权限,表示可以对目录做以下操作:
  • 在此目录中建立新的文件或子目录;
  • 删除已存在的文件和目录(无论子文件或子目录的权限是怎样的);
  • 对已存在的文件或目录做更名操作;
  • 移动此目录下的文件和目录的位置。
一旦对目录拥有 w 权限,就可以在目录下执行 touch、rm、cp、mv 等命令。
执行权限(x)目录是不能直接运行的,对目录赋予 x 权限,代表用户可以进入目录,也就是说,赋予 x 权限的用户或群组可以使用 cd 命令。

       对目录来说,如果只赋予 r 权限,则此目录是无法使用的。很简单,只有 r 权限的目录,用户只能查看目录结构,根本无法进入目录(需要用 x 权限),更不用说使用了。

      因此,对于目录来说,常用来设定目录的权限其实只有 0(---)、5(r-x)、7(rwx)这 3 种。

注:如果在一个普通用户的家目录下面root创建了一个文件,这个文件的所有者和所属组都是root,且其他人的权限为0,那么这个文件对这名普通用户来说无法读、无法编辑也无法执行,也就是说,他无法变动这个文件的内容就是了。但是由于这个文件在他的家目录下,他在此目录下具有 rwx 的完整权限,因此对于这个文件来说,是能够删除的。

chmod命令修改文件或者目录权限、

        通过chmod命令可以手动修改文件的访问权限,chmod命令设定文件权限的方式有两种,分别是可以使用数字或者符号来进行权限的变更。

chmod命令使用数字修改文件权限

linux系统中,文件的基本权限由9个字符组成,以rwxrw-r-x为例,我们可以使用数字来表示各个权限,各个权限与数字之间的对饮关系是:

r4
w2
x1

由于这9个字符分属3类用户,因此每种用户身份包含3个权限(r,w ,x),通过将3种权限对应的数字累加,最终得到的值即可作为每种用户所具有的权限。

所以在wxrw-r-x中,

所有人 = rwx = 4+2+1= 7

所属组 = rw- = 4+2 = 6

其他人 = r - w = 4+1 = 5

所以,此权限对应的权限值就是765

使用数字修改文件权限的chmod命令基本格式为:

chmod [-R] 权限值 文件名

-R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限。

 chmod命令使用字母修改文件权限

      文件的基本权限就是 3 种用户身份(所有者、所属组和其他人)搭配 3 种权限(rwx),chmod 命令中用 u、g、o 分别代表 3 种身份,还用 a 表示全部的身份(all 的缩写)。另外,chmod 命令仍使用 r、w、x 分别表示读、写、执行权限。

 

 linux umask详解:令新建文件和目录拥有默认权限

        Linux 是注重安全性的操作系统,而安全的基础在于对权限的设定,不仅所有已存在的文件和目录要设定必要的访问权限,创建新的文件和目录时,也要设定必要的初始权限

        Windows 系统中,新建的文件和目录时通过继承上级目录的权限获得的初始权限,而 Linux 不同,它是通过使用 umask 默认权限来给所有新建的文件和目录赋予初始权限的。

root用户默认是0022,普通用户默认是0002 

 umask 默认权限确实由 4 个八进制数组成,但第 1 个数代表的是文件所具有的特殊权限(SetUID、SetGID、Sticky BIT),此部分内容放到后续章节中讲解,现在先不讨论。也就是说,后 3 位数字 "022" 才是本节真正要用到的 umask 权限值,将其转变为字母形式为 ----w--w-。

注意,虽然 umask 默认权限是用来设定文件或目录的初始权限,但并不是直接将 umask 默认权限作为文件或目录的初始权限,还要对其进行 "再加工"。

假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

同时umask掩码的值是可以修改的。

基本格式;umask  权限值

粘滞位

书接rwx权限章节,我root用户关键的文件凭什么你一个普通用户就能给我删了,就算是这个目录是你创建的,擅自删除别人的文件也是不对的,为了解决这个问题,出现了粘滞位。

chmod +t [文件名或者目录名]

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

关于权限还有许多知识,等到下次有机会再说。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值