chmod [选项] 权限 文件名
-R 递归修改目录及其子目录和文件的权限
-v 显示过程

权限
u 文件的所有者
g 文件所属的组
o 其他用户
a all,所有人

  • 添加权限
    -撤销权限

例子:当前文件权限 rw-r–r-- (644)
需要修改成 rwxr-xr-x (755)

相对法:
chmod u+x,g+x,o+x 文件名
chmod a+x 文件名

绝对法:
chmod u=rwx,g=rx,o=rx 文件名

数值法:
chmod 755 文件名

练习:
在/tmp下创建一个空文件ugo,权限r-x-w—x

chown 修改文件所有者和所属组
chown [选项] 用户名[:组名] 文件名
-R 递归修改目录及其子目录和文件的权限
-v 显示过程

例子:
在/tmp目录下创建目录test
先修改目录的所有者adm
[root@ops14 20200714]# ll /tmp | grep test
drwxr-xr-x. 2 root root 6 Jul 14 16:27 test
[root@ops14 20200714]# chown adm /tmp/test
[root@ops14 20200714]# ll /tmp | grep test
drwxr-xr-x. 2 adm root 6 Jul 14 16:27 test

再修改目录所属的组为lp
[root@ops14 20200714]# chown :lp /tmp/test
[root@ops14 20200714]# ll /tmp | grep test
drwxr-xr-x. 2 adm lp 6 Jul 14 16:27 test

最后修改属主为root,属组为adm
[root@ops14 20200714]# chown root:adm /tmp/test
[root@ops14 20200714]# ll /tmp | grep test
drwxr-xr-x. 2 root adm 6 Jul 14 16:27 test

练习:
1、在/tmp下建目录/tmp/0903

mkdir /tmp/0903

2、在/tmp/0903下创建一个空文件ugo.txt

touch /tmp/0903/ugo.txt

3、查看ugo.txt的ugo权限

ll -d ugo.txt

4、将ugo.txt的权限改为r-x—xr–

chmod 514 ugo.txt

rw-r–r-- 644
r-x—xr-- 514

1、先查看/tmp/0903的详细信息

ll -d /tmp/0903

2、修改/tmp/0903所有者改为lp

chown lp /tmp/0903

3、修改/tmp/0903所属的组为adm

chgrp adm /tmp/0903

4、修改属主root,属组lp

chown root:lp /tmp/0903

chgrp 修改文件所属的组
chgrp [选项] 组名 文件名
-R 递归修改目录及其子目录和文件的权限
-v 显示过程

umask 权限掩码
作用是控制新建文件、目录的初始权限

查看umask
[root@ops14 20200714]# umask
0022

1、root用户的umask默认是0022,普通用户是0002
2、umask值保存在/etc/bashrc或者/etc/profile文件中

权限的定值算法
新建文件的默认权限=满权限-umask
目录的满权限是777,普通文件的满权限是666

例子:
umask=022
新建目录的权限=777-022=755
新建文件的权限=666-022=644

umask=002
新建目录的权限=777-002=775
新建文件的权限=666-002=664

ACL权限
Access Control List,访问控制列表
对传统ugo权限的补充,可以精确控制某个用户对某个文件的访问权限

注意:Linux2.6版本的内核开始,默认是开启ACL权限功能

ACL权限的管理命令
getfacl 查看ACL权限
[zhoukai@ops14 20200714]$ getfacl aaa

file: aaa

owner: zhoukai

group: zhoukai

user::rw-
group::rw-
other::r–
setfacl 设置ACL权限
语法:
setfacl [选项] [{-m|-x} acl条目] 文件或目录
-m 修改ACL规则
-x 删除某条规则
-b 删除索引规则
-d 设置目录默认的ACL规则(只对目录中新建的文件有效)
-R 递归设置

例子:
添加ACL规则,使得zhoukai对文件aaa不可读,不可写不可执行
setfacl -m u:zhoukai:— aaa

添加ACL规则,使得zhoukai组对文件aaa可读可写
setfacl -m g:zhoukai:rw aaa

删除zhoukai组的ACL
setfacl -x g:zhoukai aaa

删除zhoukai用户的ACL
setfacl -x u:zhoukai aaa

S权限
super(超级权限),是系统一种特殊权限
分为suid,sgid,sticky三种,数字代号依次为4,2,1

SUID权限:用于系统命令(suid=4)
功能:让用户以文件属主的身份去执行命令
给一个命令文件添加了SUID权限之后,所有的用户在执行这个命令的时候,都会以命令的属主的身份去执行,权限对应的x位会变成s

例子:用户zhoukai没有权限查看/etc/shadow,使用suid之后可以查看
查找cat命令的路径
#which cat
#chmod -v u+s /usr/bin/cat
#su – zhoukai
$cat /etc/shadow
$exit
#chmod -v u-s /usr/bin/cat

总结:
chmod u+s 命令文件 添加suid权限
chmod u-s 命令文件 撤销suid权限

SGID权限:目录所属组继承权限(组的强制位)sgid=2
当一个目录添加了sgid权限
那么,所有用户在这个目录下创建的文件所属组都会继承这个目录所属的组
(主要用于文件共享),如果设置SGID权限,在所属组权限的x位会变成s

添加sgid权限
chmod g+s 目录名
撤销sgid权限
chmod g-s 目录名
例子:
用root用户在当前目录创建test目录
将test目录所属组设置为adm
将目录的other权限设置为rwx
给目录添加sgid权限
切换到zhoukai用户,在test目录创建a,bc
并查看文件的权限

sticky t权限 sticky=1
功能:
当给一个目录添加t权限之后,只能删除属于自己的文件,不可以修改和删除其他人的文件
给目录设置t权限之后,other权限的x位会变成t

系统中的/tmp目录默认有t权限
ls -ld /tmp

添加t权限 chmod o+t 目录名
撤销t权限 chmod o-t 目录名

例子:
用root用户清空/tmp目录
rm -rf /tmp/*

查看/tmp目录的权限
ls -ld /tmp #发现/tmp目录有t权限

创建用户s1和s2
[root@ops14 tmp]# useradd s1
[root@ops14 tmp]# useradd s2

切换到s1,在/tmp下创建a,b
#su s1
$touch a b

退出s1
$exit

切换掉s2,尝试删除a和b
#su s2
$rm -fv a b

隐藏权限
防止root误删除或者修改文件及目录
隐藏权限用ls看不到
查看隐藏权限
lsattr

例子:
lsattr /etc/hosts #这个文件没有隐藏权限

常见的隐藏权限有2个
i权限
只可以查看,但不能删除或修改
a权限
可以查看,可以追加,但不能做其他操作
(通常用于系统的日志文件)

修改隐藏权限
chattr +i 文件名 添加i权限
chattr -i文件名 取消i权限
chattr +a文件名 添加a权限
chattr -a文件名 取消a权限

例子:
[root@ops14 20200714]# cp -v /etc/hosts ./
‘/etc/hosts’ -> ‘./hosts’
[root@ops14 20200714]# chattr +i hosts
[root@ops14 20200714]# lsattr hosts
----i----------- hosts
[root@ops14 20200714]# echo hello >> hosts ##权限不够
-bash: hosts: Permission denied
[root@ops14 20200714]# rm -fv hosts ##不允许的操作
rm: cannot remove ‘hosts’: Operation not permitted
[root@ops14 20200714]# chattr -i hosts ##撤销i权限
[root@ops14 20200714]# chattr +a hosts ##添加a权限
[root@ops14 20200714]# lsattr hosts
-----a---------- hosts
[root@ops14 20200714]# echo hello >> hosts ##可以追加
[root@ops14 20200714]# rm -fv hosts ##不允许的操作
rm: cannot remove ‘hosts’: Operation not permitted
[root@ops14 20200714]# echo hello.txt > hosts ##不允许的操作
-bash: hosts: Operation not permitted
[root@ops14 20200714]# chattr -a hosts ##撤销a权限
[root@ops14 20200714]# rm -fv hosts ##成功删除
removed ‘hosts’

总结:
隐藏权限的功能是防止root用户操作失误导致重要的文件被删除
隐藏权限对所有用户生效(包括root用户)

UGO是啥,俺告诉你相关推荐

  1. 一篇文章告诉你标准化和归一化的区别?

    一篇文章告诉你标准化和归一化的区别? 2019-02-28 17:12:39 融融网融融网阅读量:484 进一步推进企业的标准化工作,使之发展水平适应经济全球化下市场竞争的要求,促进企业综合实力的提升 ...

  2. 一文告诉你Adam、AdamW、Amsgrad区别和联系 重点

    **序言:**Adam自2014年出现之后,一直是受人追捧的参数训练神器,但最近越来越多的文章指出:Adam存在很多问题,效果甚至没有简单的SGD + Momentum好.因此,出现了很多改进的版本, ...

  3. 在plsql里面怎么去掉空行_盐渍樱花怎么做?详细做法告诉您,一年都不会坏,学会再也不用买...

    盐渍樱花怎么做?详细做法告诉您,一年都不会坏,赶紧收藏学会它!樱花季说的就是现在,虽然到了飘落的季节,但是还是到处可见的樱花朵朵.俗话说:花无百日红.真的是啊,每年的三四月是最美丽的季节,到处花儿朵朵 ...

  4. 田志刚:要你共享,但不告诉你共享什么

    案例所述的问题很典型,是国内各类机构做知识管理的一个典型:我需要你共享,但不告诉你共享什么.问题是,我也不知道你该共享什么.这样的结果就是共享出来的东西都没用也都有用,因为你根本没有标准,所以我说我的 ...

  5. 简单粗暴告诉你什么是区块链

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链是什么?它是如何工作的? 比特币已经成为现代互联网的潮流 - 随之而来的是区块链.人们说区块链技术将导致互联网运作 ...

  6. k8s crd构建方法_告诉您正在构建没人想要的东西的8种方法(以及处理方法)

    k8s crd构建方法 by Geoffrey Bourne 杰弗里·伯恩(Geoffrey Bourne) 告诉您正在构建没人想要的东西的8种方法(以及处理方法) (8 ways to tell y ...

  7. Uber 前无人驾驶工程师告诉你,国内无人驾驶之路还要走多久?

    受访者 | Graviti 创始人&CEO 崔运凯 记者 | Aholiab,编辑 | Carol 出品 | AI科技大本营(ID:rgznai100) 经过数年的发展,现在的人们谈到&quo ...

  8. Go远超Python,机器学习人才极度稀缺,全球16,655位程序员告诉你这些真相

    作者 | 唐小引 题图 | HackerEarth 报告 出品 | AI科技大本营(ID:rgznai100) Go 正变得越来越受开发者欢迎. 几年前,滴滴的工程师曾告诉我,在滴滴 Go 已经得到了 ...

  9. 6个步骤,告诉你如何用树莓派和机器学习DIY一个车牌识别器!(附详细分析)...

    作者 | Robert Lucian Chiriac 翻译 | 天道酬勤,编辑 | Carol 出品 | AI科技大本营(ID:rgznai100) 几个月前,作者开始考虑让汽车能够具备检测和识别物体 ...

最新文章

  1. 混迹于IT纯屌界中独一无二的丸子
  2. boost::math模块使用二项分布复制 NAG 库调用的测试程序
  3. Go案例说明defer panic recover
  4. java float f1=0.5_Java Math类静态float copySign(float f1,float f2)与示例
  5. mysql分区列要包含主键吗_MYSQL的分区字段,必须包含在主键字段内
  6. ArcGIS 10.5河流水系左斜体样式经典设置方法
  7. 数据科学与大数据技术的案例_作为数据科学家解决问题的案例研究
  8. 3dmax物体轴心点坐标和unity3d不一样_Unity3D新手必看:几个让你相见恨晚的小技巧...
  9. ASP.NET MVC 4 (二)控制器
  10. equals方法的使用几种情况
  11. linux电脑蓝牙传输文件在哪里,Linux操作系统下操作蓝牙手机的方法 -电脑资料
  12. 《斯坦福算法博弈论二十讲》学习笔记(持续更新)
  13. QT之TreeWidgetItem基本使用
  14. 十年程序人生__转自黎活明
  15. 基于法律裁判文书的法律判决预测
  16. 解决mangos60级后生命值为什么不变
  17. 密码学和加密数字货币的简介
  18. JAVA征兵管理系统
  19. 4.6Bootstrap学习js插件篇之弹出框
  20. 千克 磅 磅 千克 的转换

热门文章

  1. Neutron网络设备命名规则
  2. AMBA Specification (Rev 2.0)简介
  3. 在屏幕上输出9*9乘法口诀表---C语言编程
  4. java使用aspose实现文件预览工功能
  5. CSS3动画实现背景滚动
  6. 写一个哄女朋友的python小程序
  7. 一叠资料怎么快速打印复印?
  8. 超好用iOS管软件iMazing 2.16.6官网下载及2023新增功能及更新日志
  9. Result和uniqueResult的方法
  10. Hibernate之Query.uniqueResult()结果为数值的注意事项