linux权限位

Linux文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主权限、属组权限、其他用户权限。

r:read可读权限,对应数字4;

w:write可写权限,对应数字2;

x:execute执行权限,对应数字1;

-:没有任何权限,对应数字0。

  1. #创建一个用户组
  2. [root@oldboy ~]# groupadd incahome
  3. #创建一个用户指定所属用户组
  4. [root@oldboy ~]# useradd -g incahome oldboy
  5. [root@oldboy ~]# useradd -g incahome oldgirl
  6. #创建一个用户
  7. [root@oldboy ~]# useradd test
  8. #查看用户
  9. [root@oldboy ~]# id oldboy
  10. uid=502(oldboy) gid=502(incahome) groups=502(incahome)
  11. [root@oldboy ~]# id oldgirl
  12. uid=503(oldgirl) gid=502(incahome) groups=502(incahome)
  13. [root@oldboy ~]# id test
  14. uid=504(test) gid=504(test) groups=504(test)

创建一个test.sh,内容:echo "i am oldboy linux"。查看属性:

  1. [root@oldboy oldboy]# ls test.sh -l
  2. -rw-r--r-- 1 root root 25 Dec 25 21:10 test.sh

一个家庭(用户组)incahome,成员oldboy、oldgirl,非家庭用户test,超级用户root。

修改文件权限

  1. [root@oldboy oldboy]# chown oldboy.incahome test.sh
  2. [root@oldboy oldboy]# ls -l test.sh
  3. -rw-r--r-- 1 oldboy incahome 25 Dec 25 21:10 test.sh

分别测试不同用户对该文件的权限。

linux普通文件的读写执行权限说明:

可读r:表示具有读取、阅读文件内容的权限。

可写w:表示具有新增、修改文件内容的权限(如果没有r,那么vi无法编辑,强制编辑会覆盖数据,echo可以写入)

可执行x:表示具有执行文件的权限(1、文件本身要能够执行;2、普通用户同时具备r权限才能执行;3、root都能执行)。

特别提示:删除文件(修改文件名等)的权限是受父目录的权限控制,和文件本身的权限无关。

win下可执行文件:*.exe、*.bat、*.com

linux下可执行文件:*.sh、*.py、*.perl等

有关文件删除说明

linux中的文件名是存在于父目录的block里面,并指向这个文件的inode节点,这个文件的inode节点再标记指向存放这个文件的block的数据块。我们删除文件并不清除inode节点和block的数据。只是在这个文件的父目录里面的block中删除这个文件的名字,从而使这个文件名消失,并且无法指定这个文件的inode节点,当没有文件名指向这个inode节点的时候会同时释放inode节点和存放这个文件的数据块,并更新inodeMAP和blockMAP,让这些位置用于放置其他文件数据。

linux目录的读写执行权限说明:

可读r:表示具有浏览目录下面文件及子目录的权限,即ls dir。不能进到目录里,即无法cd dir。如果没有x权限,ls列表时可以看到所有文件名。但是会提示无权访问目录下的文件。如果ls -l列表,所有的属性会带有问号,也会提示无权访问目录下文件,但是可以看到所有文件名。

可写w:表示具有增加、删除或修改目录内文件名的权限(需要x权限配合)。

可执行x:表示进入目录的权限,例如cd dir。但是没有r无法列表,没有w无法新建和删除。

linux文件与目录权限对比说明:

r(read,读取权限):

对文件表示具有读取阅读文件内容的权限。

对目录表示具有浏览目录下面文件及子目录的权限,即ls dir。

w(write,写入权限):

对文件表示具有新增、修改文件内容的权限。

对目录表示具有新增、删除、移动目录内文件名的权限。

x(execute,执行权限):

对文件表示具有执行文件的权限。

对目录表示具有进入目录的权限。

-(无任何权限):

若对应位置权限位为字符"-",表示对应用户没有读写执行的任何权限。

chmod修改文件权限

chmod:change mode改变文件权限

chmod数字式权限表示法

chmod [数字组合] 文件名

chmod的数字方法的说明:

r:4;w:2;x:1:;-:0。

rwxr-xr-x:755

  1. [root@oldboy oldboy]# chmod 531 test.sh
  2. [root@oldboy oldboy]# ls -l test.sh
  3. -r-x-wx--x 1 oldboy incahome 25 Dec 25 21:10 test.sh

chmod字符式权限表示法

使用权限字符设置权限的命令格式如下。

chmod [用户类型] [+|-|=] [权限字符] 文件名,用表格表示如下:

chmod

用户类型

操作字符

权限字符

文件或目录

u(user)

+(加入)

r

g(group)

 

-

o(others)

-(减去)

w

a(all)

=(设置)

x

rw-rw-r-xàrwx--xr-x:chmod u+x,g=x test.sh

  1. [root@oldboy oldboy]# ls -l test.sh
  2. -r-x-wx--x 1 oldboy incahome 25 Dec 25 21:10 test.sh
  3. [root@oldboy oldboy]# chmod u+w,g=rw,o+r test.sh
  4. [root@oldboy oldboy]# ls -l test.sh
  5. -rwxrw-r-x 1 oldboy incahome 25 Dec 25 21:10 test.sh
  6. [root@oldboy oldboy]# chmod u+x,g=x test.sh
  7. [root@oldboy oldboy]# ls -l test.sh
  8. -rwx--xr-x 1 oldboy incahome 25 Dec 25 21:10 test.sh

默认权限分配的命令umask

  1. [root@oldboy oldboy]# mkdir d755
  2. [root@oldboy oldboy]# touch f644
  3. [root@oldboy oldboy]# ls -lrt
  4. drwxr-xr-x 2 root root 4096 Dec 26 09:15 d755
  5. -rw-r--r-- 1 root root 0 Dec 26 09:15 f644

umask默认值

  1. [root@oldboy oldboy]# umask
  2. 0022

umask的默认值的控制

  1. [root@oldboy oldboy]# sed -n '65,69p' /etc/bashrc
  2.     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
  3.        umask 002
  4.     else
  5.        umask 022
  6.     fi

根据umask值计算文件权限

创建文件默认最大权限为:666-umask,当umask有奇数时,计算权限需要在奇数位加1。

创建目录默认最大权限位:777-umask。

setuid和setgid

setuid介绍

  1. [root@oldboy oldboy]# ls -l `which passwd`
  2. -rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd

setuid使用户执行该命令的时候临时获得属主用户的权限

setuid小结:针对命令和二进制程序

1、用户或属主对应的前三位权限的x位上如果有s就表示setuid权限。当x位上没有小写x执行权限的时候,setuid的权限就显示大写S;当x位上有x执行权限的时候,setuid的权限就显示小写s。

2、setuid作业是让普通用户可以以root(或其他)的用户角色运行只有root(或其他)账号才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等。

注意和su及sudo的区别,setuid为某一个命令设置特殊权限(使用者为所有人)。

3、问题,希望oldboy用户能够删除本来无权删除的文件。

a、sudo给oldboy授权rm。b、给rm命令设置setuid。c、设置上级目录权限。

4、setuid修改的是执行的命令passwd,而不是处理目标文件/etc/shadow。

5、仅对二进制命令程序有效,不能用在shell等类似脚本文件上(因为shell脚本仅仅是调用二进制命令程序而已,因此,具体权限还需要看二进制命令本身)。

6、二进制命令程序需要有可执行权限x配合。

7、setuid权限仅在程序命令执行过程中有效。

8、执行setuid命令的任意系统用户都可以获得命令程序在执行期间对应的拥有者的所有权限。

9、setuid是一把双刃剑,是一个比较危险的功能,对系统安全有一定的威胁。系统setuid的无用的功能取消setuid权利(安全优化)。

setgid介绍

1、与setuid不同的是,setgid既可以针对文件也可以针对目录设置。

2、setgid是针对用户组权限位修改的。

对于文件来说,setgid的功能如下:

1)、setgid仅对二进制命令程序有效。

2)、二进制命令或程序需要有可执行权限x。

3)、执行程序的任意用户可以获得该命令程序执行期间所属组的权限。

对于目录setgid的功能如下:

1)、linux里默认情况所有用户创建文件,默认用户和组都是自身。

2)、setgid可以让用户在此目录下创建的文件和目录具有和此目录相同的用户组设置。

setgid位主要用于在目录中,当为某个目录设置了setgid位以后,在该目录中新创建的文件的所有者权限,而不是创建该文件的用户的默认所有者。这样,使得在多个用户之间共享一个文件变得简单。

locate查找命令

案例:

创建共享目录/home/admins,属组为adminuser,adminuser组成员对目录有写入读写和执行的权限,其他所有用户没有任何权限(root除外),在/home/admins目录中创建的文件会自动继承adminuser组。

  1. [root@oldboy oldboy]# mkdir /home/admins -p
  2. [root@oldboy home]# groupadd adminuser
  3. [root@oldboy home]# ls -ld admins/
  4. drwxr-xr-x 2 root root 4096 Dec 26 15:29 admins/
  5. [root@oldboy home]# chgrp adminuser admins/
  6. [root@oldboy home]# ls -ld admins/
  7. drwxr-xr-x 2 root adminuser 4096 Dec 26 15:29 admins/
  8. [root@oldboy home]# touch admins/test.txt
  9. [root@oldboy home]# ls -l admins/test.txt
  10. -rw-r--r-- 1 root root 0 Dec 26 15:36 admins/test.txt
  11. [root@oldboy home]# chmod g+s admins/
  12. [root@oldboy home]# ls -ld admins/
  13. drwxr-sr-x 2 root adminuser 4096 Dec 26 15:36 admins/
  14. [root@oldboy home]# touch admins/test_2.txt
  15. [root@oldboy home]# ls -l admins/
  16. total 0
  17. -rw-r--r-- 1 root adminuser 0 Dec 26 15:39 test_2.txt
  18. -rw-r--r-- 1 root root 0 Dec 26 15:36 test.txt

粘滞位sticky bit(sbit)及设置方法

用途一般是把一个文件夹的权限都打开,然后来共享文件,例如/tmp目录一样。使用方便但是带来安全隐患,生产环境一般不这样使用。

sticky比setgid的更安全措施,让多个用户具有写权限的目录,每个用户只能删除自己的文件。sticky在other位,用t表示,如果没有执行权限,那么就是T表示;如果有执行权限,那么就是t表示。

特殊权限对应的数字小结

setuid 4000 权限字符s(S),用户位上的x位上设置。授权方法chmod 4755 oldboy.txt。

setgid 2000 权限字符s(S),用户组位的x位上设置。授权方法chmod 2755 oldboy.txt。

粘滞位 1000 权限字符t(T),其他用户位的x位上设置。授权方法chmod 1755 /tmp。

如果对应位有x则字符权限表现为小写,否则表现为大写。

推荐设置方法:

chmod g+s test

chmod u+s test

chmod o+t test

chown和chgrp

chown 用户 文件或目录 à仅仅授权用户

chown :组 文件或目录 à仅仅授权组。等同于"chgrp 组 文件或目录"。

chown 用户:组 文件或目录 à表示授权用户和组

注意:

1、其中的冒号":"可以用点号"."替代。

2、要授权的用户和组名,必须是linux系统里实际存在的。

文件的属主和用户组的特殊情况

  1. [root@oldboy oldboy]# ll
  2. total 12
  3. drwxr-xr-x 2 root root 4096 Dec 26 09:15 d755
  4. -rw-r--r-- 1 root root 0 Dec 26 09:15 f644
  5. drwxr-xr-x 2 root root 4096 Dec 25 23:04 test
  6. --wx--x--x 1 root root 25 Dec 25 21:10 test.sh
  7. [root@oldboy oldboy]# groupadd incahome
  8. [root@oldboy oldboy]# useradd -g incahome oldboy
  9. [root@oldboy oldboy]# chown oldboy:incahome *
  10. [root@oldboy oldboy]# ll
  11. total 12
  12. drwxr-xr-x 2 oldboy incahome 4096 Dec 26 09:15 d755
  13. -rw-r--r-- 1 oldboy incahome 0 Dec 26 09:15 f644
  14. drwxr-xr-x 2 oldboy incahome 4096 Dec 25 23:04 test
  15. --wx--x--x 1 oldboy incahome 25 Dec 25 21:10 test.sh
  16. [root@oldboy oldboy]# userdel -r oldboy
  17. [root@oldboy oldboy]# ll
  18. total 12
  19. drwxr-xr-x 2 505 incahome 4096 Dec 26 09:15 d755
  20. -rw-r--r-- 1 505 incahome 0 Dec 26 09:15 f644
  21. drwxr-xr-x 2 505 incahome 4096 Dec 25 23:04 test
  22. --wx--x--x 1 505 incahome 25 Dec 25 21:10 test.sh
  23. [root@oldboy oldboy]# groupdel incahome
  24. [root@oldboy oldboy]# ll
  25. total 12
  26. drwxr-xr-x 2 505 506 4096 Dec 26 09:15 d755
  27. -rw-r--r-- 1 505 506 0 Dec 26 09:15 f644
  28. drwxr-xr-x 2 505 506 4096 Dec 25 23:04 test
  29. --wx--x--x 1 505 506 25 Dec 25 21:10 test.sh

文件的所属用户和属组变成数字,解决办法创建一个相同uid的用户和相同gid的属组,如果有服务还需要确保创建的用户名与服务配置的用户名一致并且对应uid。

  1. [root@oldboy oldboy]# groupadd incahome -g 506
  2. [root@oldboy oldboy]# ll
  3. total 12
  4. drwxr-xr-x 2 505 incahome 4096 Dec 26 09:15 d755
  5. -rw-r--r-- 1 505 incahome 0 Dec 26 09:15 f644
  6. drwxr-xr-x 2 505 incahome 4096 Dec 25 23:04 test
  7. --wx--x--x 1 505 incahome 25 Dec 25 21:10 test.sh
  8. [root@oldboy oldboy]# useradd oldgirl -u 505 -g incahome
  9. [root@oldboy oldboy]# ll
  10. total 12
  11. drwxr-xr-x 2 oldgirl incahome 4096 Dec 26 09:15 d755
  12. -rw-r--r-- 1 oldgirl incahome 0 Dec 26 09:15 f644
  13. drwxr-xr-x 2 oldgirl incahome 4096 Dec 25 23:04 test
  14. --wx--x--x 1 oldgirl incahome 25 Dec 25 21:10 test.sh

转载于:https://www.cnblogs.com/yinshoucheng-golden/p/6225856.html

Linux基础介绍【第五篇】相关推荐

  1. 计算机应用基础重难点介绍,计算机基础教学计划范文五篇

    在工作计划要达成的目标部分,关键是要清晰的定义目标,表现形式就是清楚的定义目标对应的指标,并设置量化的指标目标值.下面小编给大家整理的计算机基础教学计划范文五篇,希望大家喜欢! 计算机基础教学计划范文 ...

  2. 专业计算机基础教学,计算机基础教学计划范文五篇

    计算机基础教学计划范文五篇 篇一:计算机基础教学计划 本学期学校安排我担任20xx级饭店管理班的<计算机应用基础>课程的教学工作,为了更好的完成本学期的教学任务,特制定本学期的教学计划,具 ...

  3. 前端linux基础,这一篇就够了

    前端linux基础,这一篇就够了 退出当前操作 清理命令窗口 关闭命令窗口 创建文件 创建文件夹 删除文件 删除文件夹 重命名文件 发起请求(curl) 切换工作目录 查看当前完整路径 查看当前目录下 ...

  4. linux基础命令(五)

    linux基础命令(五) 1.文件管理 cat chattr chgrp chmod chown cksum cmp diff diffstat file find git gitview inden ...

  5. 单招计算机英语面试口语,单招面试英语自我介绍范文五篇

    <单招面试英语自我介绍范文五篇>由会员分享,可在线阅读,更多相关<单招面试英语自我介绍范文五篇(3页珍藏版)>请在装配图网上搜索. 1.单招面试英语自我介绍范文五篇大家好!面试 ...

  6. cmd 将文件夹下文件剪切到另外一个文件_总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇...

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  7. python爬虫工程师面试自我介绍范文_计算机工程师面试自我介绍范文五篇

    自我介绍在面试中是必然要过的一关,自我介绍得好不好也直接影响到面试的效果,那么该如何做到与众不同又精彩呢?下面是小编给大家搜集的范文五篇,希望有帮助到大家. 计算机工程师面试自我介绍(一) 面试官您好 ...

  8. Linux 基础介绍-基础命令

    文章目录 01 学习目标 02 Linux/Unix 操作系统简介 2.1 Linux 操作系统的目标 2.2 Linux 操作系统的作用 2.3 Unix 家族历史 2.4 Linux 家族历史 2 ...

  9. linux设备驱动第五篇:驱动中的并发与竟态

    目录[-] 综述 信号量与互斥锁 Completions 机制 自旋锁 其他的一些选择 不加锁算法 原子变量与位操作 seqlock(顺序锁) 读取-拷贝-更新(RCU) 小结 综述 在上一篇介绍了l ...

  10. java 文件 剪切_总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 很多朋友在看我的<java IO总结系列>之前觉得创建文件.文件夹删除文件这些基础操作真的是太简单了.但看了我的文章之后,有小 ...

最新文章

  1. 直击2019WAIC丨李德毅:人工智能是脱离意识的工具,需要约束的是人类自己
  2. 【概念信息】COPC概览
  3. Bootstrap 学习笔记 之代码和表格 (3 day)
  4. java图形旋转动画_Java动画:旋转图像
  5. [补档]noip2019集训测试赛(十五)
  6. 使用EDD枚举域数据
  7. 固态硬盘的速度和内存的速度差距
  8. 29 Redis 应对并发访问的无锁原子操作
  9. 计算机网络自顶向下方法 第二章套接字编程作业 邮件客户 答案
  10. oppo--三面HR面试总结(三)
  11. 【Java设计模式】简单学装饰模式——来杯咖啡,先糖后奶
  12. python基础----简单语法篇
  13. 321套Excel可视化图表、Excel模板(在Excel里面实现数据可视化),史上最全Excel可视化图表,模板
  14. javaweb毕业设计源码 基于ssm农产品供销服务系统
  15. 如何绘制神经网络图,图嵌入 图神经网络
  16. 闲谈GDP(4)-GDP统计的几种方法
  17. 有趣的Python基础教程(上)
  18. linux调节字体大小加粗,Linux下修改终端字体颜色和大小
  19. 视频怎么抠像?这个方法很好用
  20. 第三代酷睿i3处理器_10nm+新架构+Iris Plus核显 第十代酷睿到底有多强?

热门文章

  1. 科多大数据_redis缓存的简单使用—科多大数据
  2. oracle的游标的属性,Oracle 游标属性
  3. 细说OSI七层协议模型及OSI参考模型中的数据封装过程?
  4. Linux系统编程——vfork() 函数详解
  5. android修改对话框大小设置,android – 如何更改对话框首选项消息的文本大小?...
  6. 商城系统使用redis做什么_B2B2C商城系统与B2C商城系统有什么区别呢?企业该如何选择?...
  7. 【渝粤教育】国家开放大学2018年秋季 0734-21T出纳实务 参考试题
  8. caffe中的 AlexNet,LeNet,CaffeNet
  9. 数据预处理第3讲:归一化与离散化
  10. 伯克利,斯坦福,宾大联合发表:从观察和交互中学习预测模型