小白linux运维day-14

昨日内容:
1.什么是权限?
用来约束用户能对系统所做的操作。( 称职为权限 )
2.为什么要有权限?
因为一个系统中存在很多用户,保证每个用户的隐私。
3.权限和用户如何进行绑定?
-rw-r--r--. 1 oldxu oldxu 58112885 3月 13 09:25 access.log
rw- 绑定oldxu用户( 读写 6)
r-- 绑定 oldxu组 ( 读 4 )
r-- 除了oldxu用户、oldxu组,剩下所有人访问该文件只有这个权限 ( 读 4)
权限: 644 三个数字代表了三个身份( 用户、组、其他人 )
4.权限中的rwx是干什么的?
r 读 4
w 写 2
x 执行 1
- 无 0
5.验证权限rwx对文件和对目录的含义?
普通用户去验证,因为root不受权限控制
6.如何变更一个文件至其他用户? (实际生产使用例子)
进程能够以什么样的方式去访问 一个文件,取决于该进程运行的用户身份对该文件拥有什么样的权限。
7.查看用户属于那个组
[root@oldboy ~]# groups oldxu (用户名称)
oldxu : oldxu root adm
今日内容:
1.特殊权限
2.特殊权限SUID
3.特殊权限SGID
4.特殊权限SBIT
5.文件的属性( chattr、lsattr )
6.UMASK默认权限
oldboy用户-->执行-->passwd命令时。
1.由于passwd命令拥有suid特殊权限(在命令属主权限位有一个s),
2.那么在整个命令执行的过程中,会以命令的属主身份去运行该命令。 <-- root
oldxu --> passwd ---> 该命令属主身份root在运行 ---> 依托root身份 --> 变更 /etc/shadow 密码信息
演示:1.登录oldboy用户执行passwd命令
[oldboy@oldboy ~]$ passwd
更改用户 oldboy 的密码 。
为 oldboy 更改 STRESS 密码。
(当前)UNIX 密码:
2.过滤一下passwd这个命令是由那个身份运行起来的 (该进程运行的身份是该命令的属主,而不是oldboy用户)
[root@oldboy ~]# ps aux |grep passwd
root 9099 0.0 0.0 112724 988 pts/0 R+ 16:38 0:00 grep --color=auto passwd
3.结论:
/etc/shadow 这个文本本身是谁都无法修改的,但是root除外。
此时oldboy执行passwd 通过 特殊权限 借助的是root身份运行该命令
所以最终是由root去更新了/etc/shadow 文件,完成的密码修改。
suid使用:
需求:默认情况下所有的普通用户都无法查看/etc/shadow,有没有办法让/etc/sahow让所有的普通用户都能看
方法一:chmod 004 /etc/shadow
方式二:给cat 命令赋予一个suid的权限
设定suid: u+s 4755 == 4表示的特殊权限中的suid
[root@oldboy ~]# which cat #查看cat命令的位置
/usr/bin/cat
[root@oldboy ~]# ll /usr/bin/cat
-rwxr-xr-x. 1 root root 54160 10月 31 2018 /usr/bin/cat
[root@oldboy ~]# chmod 4755 /usr/bin/cat #给cat 命令设置suid(属主特殊权限)
[root@oldboy ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 54160 10月 31 2018 /usr/bin/cat
结论:

  • ​ 当为cat命令赋予了特殊权限后,此时所有的普通用户通过cat去查看文件时,其实都是通过cat的属主身份查看的该文件
    ​ oldboy--> cat ---> /etc/shadow
    ​ 由于cat有suid
    ​ cat的属主又是root
    ​ 转换的结果
    ​ root --> cat --->/etc/shadow -->结果 -->输出到--->oldboy ---> bash窗口
    特殊权限SGID: 组
    表现形式: 在文件的 属组权限上有显示一个s(执行权限) S(没有执行权限)
    oldxu用户-->执行-->passwd命令时。
    1.由于passwd命令拥有SGID特殊权限 (在命令属组权限位有一个s),
    2.那么在整个命令执行的过程中,会以命令的 “属组” 身份去运行该命令。 <-- root组
    oldboy --> passwd ---> 该命令属组身份 root 在运行 ---> 依托root组 身份 --> 变更 /etc/shadow 密码信息
    suid 借助 ” 属主 “ 身份运行该命令程序
    sgid 借助 “ 属组 ” 身份运行该命令程序
    目录:将目录设置为sgid后,如果在该目录下创建文件,都将与该目录的所属组保持一致,演示如下

1.建立测试目录

[root@oldboy ~]# cd /tmp/ && mkdir dest

2.给测试目录赋予SetGID权限,检查SetGID是否生效 chmod 2755 = 2 表示SGID

[root@bgx tmp]# chmod g+s dtest/ && ll -d dtest/
drwxr-sr-x 2 root root 6 Apr 13 05:21 dtest/

3.给测试目录赋予777权限,让普通用户可以写

[root@bgx tmp]# chmod 777 dtest/

4.切换成普通用户lamp,并进入该目录

[root@bgx tmp]# su - lamp
[lamp@bgx ~]$ cd /tmp/dtest/

5.普通用户创建测试文件,检查文件的信息

[lamp@bgx dtest]touch lamp_test [lamp@bgx dtest] ll
-rw-rw-r-- 1 lamp root 0 Apr 13 05:21 lamp_test
演示的整个过程:
[root@oldboy tmp]# ll -d dest
drwxr-xr-x. 2 root root 6 3月 17 17:03
[root@oldboy tmp]# chmod 2755 dest
[root@oldboy tmp]# ll -d dest
drwxr-sr-x. 2 root root 6 3月 17 17:03 dest
[root@oldboy tmp]# chmod 777 dest/
[root@oldboy tmp]# ll -d dest/
drwxrwsrwx. 2 root root 6 3月 17 17:03 dest
[root@oldboy dest]# ls
dest_1 jacky_1
[root@oldboy dest]# ll
-rw-rw-r--. 1 oldboy root 0 3月 17 17:07 dest_1
-rw-rw-r--. 1 jacky root 0 3月 17 17:08 jacky_1
sgid作用
使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单
特殊权限SBIT:
针对的是目录:
目录一旦被赋予了粘滞位,除了 root 可以删除所有文件,普通用户对该目录就算拥有 w 权限,也只能删除自己建立的文件,而不能删除其他用户建立的文件。
[root@oldboy dtest]# ll -d /tmp/
drwxrwxrwt. 9 root root 202 3月 17 10:52 /tmp/
后面学习MySQL的时,当我们要初始化MySQL时,他会创建一些临时文件 /tmp目录下,当初始化完毕后,自己会清理掉里面的数据,别人无法清理。(如果这个目录不是粘滞位,那么初始化MySQL就会报错。)
[root@oldboy tmp]# ll -d /tmp/
drwxrwxrwx. 10 root root 242 3月 17 17:21 /tmp/
[root@oldboy tmp]# chmod 1777 /tmp/
[root@oldboy tmp]# ll -d /tmp/
drwxrwxrwt. 10 root root 242 3月 17 17:21 /tmp
[oldboy@oldboy tmp]ls abc1 jacky1 [oldboy@oldboy tmp] rm -rf jacky1
rm: 无法删除"jacky1": 不允许的操作
[oldboy@oldboy tmp]rm -rf abc1 [jacky@oldboy tmp] rm -rf abc1
rm: 无法删除"abc1": 不允许的操作
[jacky@oldboy tmp]$ rm -rf jacky1
特殊的属性:权限有关
需求:1.我希望创建一个文件,不允许被删除。包括root都不行。
2.我希望这个文件只能往里面追加数据。
chatrr 只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权。
chattr [+-=] [选项] 文件或目录名
选项:+ 增加权限 -减少权限 = 等于某个权限
a :让文件或内容只可以追加内容
i:不得任意改动文件或目录
1.配置一个文件,让其只能追加内容,不允许手动修改,也不允许删除
比如sudo -->日志-->设置为只能追加,不能修改,不能删除 )
[root@oldboy tmp]# touch /mnt/file_a
[root@oldboy tmp]# chattr +a /mnt/file_a
[root@oldboy tmp]# lsattr /mnt/file_a
-----a---------- /mnt/file_a
2.可以追加内容
[root@oldboy tmp]# echo "123" >> /mnt/file_a
[root@oldboy tmp]# echo "123" >> /mnt/file_a
[root@oldboy tmp]# echo "123" >> /mnt/file_a
[root@oldboy tmp]# cat /mnt/file_a
123
123
123
3.不能删除
[root@oldboy tmp]# rm -f /mnt/file_a
rm: 无法删除"/mnt/file_a": 不允许的操作
a属性一般作用于日志类文件,特别是 sudo 记录下来的日志
4.如果想删除特殊属性,需要使用root身份,先取消属性,然后删除
[root@oldboy tmp]# chattr -a /mnt/file_a
[root@oldboy tmp]# lsattr /mnt/file_a
---------------- /mnt/file_a
[root@oldboy tmp]# rm -f /mnt/file_a
示例2:
1.配置一个文件,不能改,不能追加,不能删除。 ( /etc/passwd 可能不需要删除、更改、追加。 )
[root@oldboy tmp]# touch /mnt/file_i
[root@oldboy tmp]# lsattr /mnt/file_i
---------------- /mnt/file_i

2.赋予权限

[root@oldboy tmp]# chattr +i /mnt/file_i

3.验证权限

[root@oldboy tmp]# rm -f /mnt/file_i
rm: 无法删除"/mnt/file_i": 不允许的操作
[root@oldboy tmp]# echo "123" >> /mnt/file_i
-bash: /mnt/file_i: 权限不够
默认权限UMASK:
1.为什么系统中默认创建的文件权限是 644 目录是 755
2.为什么默认创建一个普通用户,他的家目录权限是 700
drwx------. 3 u1 u1 99 3月 17 11:48 u1 (700)
原因:
默认系统规定的权限, 目录 777 文件 666 那么为什么创建出来的文件和目录都不是777 也不是 666呢?
由于UMASK控制了, 比如UMASK 设置为 0022
那么最终创建出来的文件和目录分别就是 目录:755 文件:644
UMASK表示要减权
目录:777-022=755
文件:666-022=644
1.默认创建普通用户家目录的权限,在哪个文件中控制的UMASK:
[root@oldboy tmp]# vim /etc/login.defs
UMASK 077 #创建用户时,设定的UMASK为077
2.假设去创建一个用户那么如何计算这个家目录的权限呢?
777 - 077 = 700
[root@oldboy tmp]# ll -d /home/oldboy/
drwx------. 2 oldboy oldboy 62 3月 17 11:33 /home/oldboy/
3.如果我希望创建出来的目录权限是755,我该怎么做呢?
777 - 755 = 022 (将/etc/login.defs 中UMASK设置为022,那么我们的目录是不是在创建初就为755了)
[root@oldboy tmp]# ll -d /home/olgirl/
drwxr-xr-x. 2 olgirl olgirl 62 3月 17 11:36 /home/olgirl/
2.默认情况下 root用户创建的文件权限,和普通用户创建的文件权限是不一样的?为什么?
那么他们的UMASK又是在哪个文件中控制的呢?
root创建的文件,默认是644
[root@oldboy tmp]# ll root_file
-rw-r--r--. 1 root root 0 3月 17 11:39 root_file
普通用户创建的文件,默认是664
[oldxu@oldboy tmp]ll -rw-rw-r--. 1 oldxu oldxu 0 Mar 17 11:39 oldxu_file root执行 666 - 022 = 644 [root@oldboy tmp]# umask 0022 普通用户执行 666 - 002 =664 [oldxu@oldboy tmp] umask
0002
当一个用户登陆系统时,会去加载一些环境变量,来初始化我们的工作目录。
/etc/profile <--umask就在这里面给控制了
通过查看/etc/profile发现了如下公式:
if [ $UID -gt 199 ] && [ "/usr/bin/id -gn" = "/usr/bin/id -un" ]; then
umask 002
else
umask 022
root: 0 既然你的UID没有大于199,那么就将你的 UMASK 初始化为 022
oldboy: 1000 UID大于199,并且,组名称和用户名称一致,所以条件成立,那么就讲你的UMASK初始化为 002
文件和目录的默认权限都是授UMASK控制,而UMASK是用户在登陆系统时,通过 /etc/profile 中的一个公式来进行的分别设定。
这里的UMASK可以改,但是我们基本不动他。(这是系统默认的机制,了解就可以,不要动!!!!!!!!!!!)
UMASK扩展:如何去临时修改UMASK,来验证我们的权限的说法:
1.假设umask值为:022(所有位为偶数)
文件的起始权限值
6 6 6 - 0 2 2 = 6 4 4
7 7 7 - 0 2 2 = 7 5 5
2.假设umask值为:045(其他用户组位为奇数)
计算出来的权限。由于umask的最后一位数字是5,所以,在其他用户组位再加1。
6 6 6 - 0 4 5 = 6 2 1 + 1 = 622
7 7 7 - 0 4 5 = 7 3 2
3.umask所有位全为偶数时
umask 044
mkdir d044 目录权限为 777 - 044 = 733
touch f044 文件权限为 666 - 044 = 622
4.umask部分位为奇数时
umask 023
mkdir d023 目录权限为777 - 023 = 754
touch f023 文件权限为666 - 023 = 643 + 001 = 644
5.umask部分位为奇数时
umask 032
mkdir d032 目录权限为777 - 032 = 745
touch f032 文件权限为666 - 032 = 634 + 010 = 644
6.umask值的所有位为奇数时
umask 035
mkdir d035 目录权限为777 - 035 = 742
touch f035 文件权限为666 - 035 = 631 + 011 = 642
总结:在临时修改umask值是如果值全偶数则文件和目录都不需要加1,不管umask是奇数还是偶数目录得值不需要增加减。但是如果umask得值有奇数位那文件就需要在相应得奇数位加1

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容

  • 今日内容:基本权限 1.什么是权限?我们可以把它理解为操作系统对用户能够执行的功能所设立的限制,主要用于约束用户能...
    糖永久没有懂醋的酸阅读 377评论 0 0
  • Linux 系统文件除了9位基本权限,还有额外3位特殊权限,分别是SUID(setuid),SGID(setgid...
    DB哥阅读 1,292评论 0 0
  • Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 1.chown chown将指定文件的拥...
    jyt802341阅读 306评论 0 0
  • list:1.输入、输出重定向;2.tr 转换或删除字符;3. | 管道;4.tee 重定向到多个目标; 5.rz...
    溪云初起日沉阁l阅读 506评论 0 2
  • 一、VMware的使用和Linux系统的安装1、VMware的快照、挂起的作用 快照:保存某一个状态,连命令行的输...
    seeiy阅读 1,935评论 0 1