linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit
一 cd :
. 代表当前目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表【目前用户身份】所在的自家目录 与cd效果相同
~account 代表 account 这个用户的自家家目录
二mkdir:
参数:
-m :配置文件目录的权限!我们可以自己设定自己想要的权限,而不需要使用umask定义的默认权限
-p :帮助你直接将所需要的目录递归建立起来!
eg:mkdrr -m 770 test1
:mkdir/rmdir -p /home/test1/test2
三touch:
- modification time (mtime): 当该文件的 内容数据 变更时,就会更新这个时间!内容数据指的是文件的内容,而不是文件的属性或权限!
- status time (ctime): 当该文件的 状态 (status) 改变时,就会更新这个时间,例如如果像是权限与属性被更改了,都会更新这个时间啊。
- access time (atime): 当 该文件的内容被修改 时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/passwd, 就会升级该文件的 atime。
选项与参数:
-a :仅修订 access time;
-c :仅修改文件的时间,若该文件不存在则不创建新文件;
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
-m : 仅修改 mtime ;
-t : 后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
touch命令最常用的情况:
- 创建一个空的文件;
- 将某个文件日期修改为目前 (mtime 与 atime)
四umask:
1.umask (文件默认权限)
在之前的随笔当中我们已经学习了如何建立或者是改变一个目录或文件的属性了。但是,我们是否有考虑过这样一个问题,当建立一个新的文件或者目录时,它的默认权限是什么?
这就要跟现在所讲解的umask命令扯上关系了。通常,umask就是指定 "目前使用者在创建文件或目录时候的权限默认值".那么我们如何设置umask呢?首先我们来查看一下我们系统里默认的umask是什么样的
[root@xiaoluo home]# umask
0022
[root@xiaoluo home]# umask -S
u=rwx,g=rx,o=rx
查看方式有两种,一种可以直接输入 umask ,就可以看到数字型态的权限配置分数, 一种则是加入 -S (Symbolic) 这个选项,就会以符号类型的方式来显示出权限了! 这里显示的 umask 有四组数字, 第一组是特殊权限用的,我们先不要理他,先看后面三组数字。
在默认权限的属性上,目录与文件是不一样的。由于我们不希望文件具有可执行的权限,默认情况下,文件是没有可执行(x)权限的。因此:
- 若使用者创建为 文件 则默认【没有可运行( x )权限】,亦即只有 rw 这两个权限,也就是最大为 666 分,默认权限如下: -rw-rw-rw-
- 若使用者创建为 目录 ,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 分,默认权限如下: drwxrwxrwx
umask 指定的是【该默认值需要减掉的权限!】因为 r、w、x 分别是 4、2、1 ,也就是说,当要拿掉能写的权限,就是输入 2 分,而如果要拿掉能读的权限,也就是 4 分,那么要拿掉读与写的权限,也就是 6 分,而要拿掉执行与写入的权限,也就是 3 分,如果我拿掉5 分的话,那就是拿掉读与执行的权限啦!如果以上面的例子来说明的话,因为 umask 为 022 ,所以 user 并没有被拿掉属性,不过 group 与 others 的属性被拿掉了 2 ( 也就是 w 这个属性 ),那么由于当使用者:
- 建立档案时:(-rw-rw-rw-) – (-----w--w-) ==> -rw-r--r--
- 建立目录时:(drwxrwxrwx) – (d----w--w-) ==> drwxr-xr-x
五chattr/lsattr:设置/显示文件的隐藏属性
这个命令是很重要的,尤其是在系统的数据安全上面!由於这些属性是隐藏的性质,所以需要以 lsattr 命令 才能看到该属性!其中,最重要的当属 +i 与 +a 这个属性了。+i 可以让一个文件无法被更改,对于需要强烈的系统安全的人来说, 这两个属性是最重要的!
六文件特殊权限: SUID/SGID/Sticky Bit
SUID 仅可用在【二进制制档案(binary file)】上, SUID 因为是程序在执行的过程中拥有文件拥有者的权限
进一步来说,如果 s 的权限是在 group 时,那么就是 Set GID ,简称为 SGID。SGID可以用在两个方面上
Sticky Bit 目前只针对目录有效,对于文件已经没有效果了。 SBit 对于目录的作用是:【在具有 SBit 的目录下,用户若在该目录下具有 w 及 x 的权限, 则当用户在该目录下建立文件或目录时,只有文件拥有者与 root 才有权力删除】。换句话说:当甲这个用户于 A 目录下是拥有 group 或者是 other 的项目,并且拥有 w 的权限, 这表示【甲用户对该目录内任何人建立的目录或档案均可进行 "删除/更名/移动" 等动作。】 不过,如果将 A 目录加上了 Sticky bit 的权限项目时, 则甲只能够针对自己建立的文件或目录进行删除/更名/移动等动作。
举例来说,我们的 /tmp 本身的权限是『drwxrwxrwt』, 在这样的权限内容下,任何人都可以在 /tmp 内新增、修改文件,但仅有该档案/目录建立者与 root 能够删除自己的目录或档案。这个特性非常重要!
[root@xiaoluo home]# touch test
[root@xiaoluo home]# chmod 4755 test; ls -l test
-rwsr-xr-x. 1 root root 0 4月 25 23:16 test
[root@xiaoluo home]# chmod 6755 test; ls -l test
-rwsr-sr-x. 1 root root 0 4月 25 23:16 test
[root@xiaoluo home]# chmod 1755 test; ls -l test
-rwxr-xr-t. 1 root root 0 4月 25 23:16 test [root@xiaoluo home]# chmod 7666 test; ls -l test
-rwSrwSrwT. 1 root root 0 4月 25 23:16 test
# 这个例子就要注意一下了!怎么会出现大写的 S 与 T 呢?不都是小写的吗?
# 因为 s 与 t 都是取代 x 这个参数的,但是我们这里修改权限的数字是
# 7666 !也就是说, user, group 以及 others 都没有 x 这个可执行的标志
# 所以,这个 S, T 代表的就是【空的】!
# SUID 是表示【该文件在执行的时候,具有文件拥有者的权限】,但是文件
# 拥有者都无法执行了,哪里来的权限给其他人使用?所以这里当然就是空的!s、t都用大写表示S、T
Linux学习之CentOS(十八)--与Linux文件和目录管理相关的一些重要命令②
linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit的更多相关文章
- Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file
文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...
- Linux文件与目录管理 cp od chattr lsattr
1:在shell脚本中,一定要使用绝对路径. 2:在根目录下,.和..是完全相同的两个目录. 3:cd - 就相当于撤销,表示回到前面状态所在的目录. 4:mkdir -m 700 test 加&qu ...
- linux中suid/sgid/sticky及扩展属性(attr)
suid只适用于命令文件.(如/usr/bin/passwd) 当命令文件上有suid权限时,则操作用户的权限变成属主权限.命令文件上无suid权限则操作用户的权限不变. 查看suid权限: [roo ...
- 第四节 mount /who / mkdir /rmdir /rm /cp /mv /touch /cat /tac/head /tail /more /less / chmod /chown /umask /chattr /lsattr /history /echo
***Linux下的文件类型如下: 9 8 7 6 5 4 3 2 1 0- r w x r - x r - x 第9位表示文件类型,可以为p.d.l.s.c.b和-:p表示命名管道文件 -pipe ...
- 快捷键,命令之tab/ history / alias / ls / cd / mkdir / touch /tree /cp /mv /rm /cat /head/grep
第一阶段 快捷键 1 第二阶段 文件和目录操作命令 1 1.1 date / useradd 1 1.2 echo 调用变量 2 1.3 whoami 查看用户名 2 1.4 tab命令补全 2 1. ...
- Linux基础命令-cd
cd 作用:切换路径 切换至家目录 $ cd $ cd~ 在上一个目录和当前目录来回切换 $ cd - 切换至某用户的家目录 # cd ~ # pwd /root # cd ~quail #pwd / ...
- linux 基础 ls cd 目录含义
- linux文件权限位SUID,SGID,sticky的设置理解
SUID含义:文件的该位被设置为1,在该文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来 执行这个文件,他都有文件所有者的特权,如果所有者是root的话,那么执行人就有超 ...
- 【Linux】文件特殊权限 SUID/SGID/Sticky Bit
linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...
随机推荐
- selenium3 web自动化测试框架 五: 数据驱动简介及基础使用
1.数据驱动概述 相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离,这样的测试脚本设计模式称为数据驱动.简单的理解为数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使 ...
- c# 所有类型都是从object继承,那么值类型默认也有装箱吗?
我们知道,c#所有类型都是从System.Object继承,int等值类型也逃脱不了这种命运,那难道值类型默认有装箱操作吗?答案是否,在CLR via这本书中有简短的解释说明: 1.值类型从Syste ...
- sleep(0) 的作用
思考下面这两个问题: 假设现在是 2019-5-18 12:00:00.00,如果我调用一下 Thread.Sleep(1000) ,在 2019-5-18 12:00:01.00 的时候,这个线程会 ...
- 《C和指针》读书笔记
1. 三字母词 三字母词即用三个字符合起来表示另一个字符,它可以使C环境在某些缺少一些必需字符的字符集上实现. ??( [ ??< { ??= # ??) ] ??> } ??/ \ ?? ...
- [Arc102B]All Your Paths are Different Lengths_构造_二进制拆分
All Your Paths are Different Lengths 题目链接:https://atcoder.jp/contests/arc102/tasks/arc102_b 题解: 构造题有 ...
- 【AtCoder】CODE FESTIVAL 2016 qual A
CODE FESTIVAL 2016 qual A A - CODEFESTIVAL 2016 -- #include <bits/stdc++.h> #define fi first # ...
- 运算符优先级 以及 && (逻辑与) 和||(逻辑或)的优先级:
运算符优先级(从高到低列出) 运算符 描述 . [] () 字段访问.数组下标.函数调用以及表达式分组 ++ -- - ~ ! delete new typeof void 一元运算符.返回数据类型. ...
- python+pycharm+django admin css样式出问题
最近打算学习一下Python,基础知识有了大概的了解,想上手搞搞东西. 我用的python 3.5+pycharm+django 1.11.2 在使用Django,打开127.0.0.1:8000/a ...
- scrapy 框架持久化存储的三个方法 存入 mysql 文件 redis
这里就不做详细讲解了 毕竟不是一句两句能说的清楚,所以我把代码和注释放到了这里 谢谢! import pymysql from redis import Redis # 写入mysql class W ...
- 【第一季】CH09_FPGA多路分频器设计
[第一季]CH09_FPGA多路分频器设计 在第七节的学习中,笔者带大家通过一个入门必学的流水灯实验实现,快速掌握了VIVADO基于FPGA开发板的基本流程.考虑到很多初学者并没有掌握好Vivado ...