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 ...
随机推荐
- SpringBoot: 15.异常处理方式5(通过实现HandlerExceptionResolver类)(转)
修改异常处理方式4中的全局异常处理controller package com.bjsxt.exception; import org.springframework.context.annotati ...
- 利用Anaconda搭建TensorFlow环境并在Jupyter Notebook使用
打开Anaconda Prompt 创建一个tensorflow 虚拟环境:conda create -n tensorflow python=3.6 激活tensorflow虚拟环境activate ...
- Redfish技术介绍
1.1 概述 Redfish是一种基于HTTPs服务的管理标准,利用RESTful接口实现设备管理.每个HTTPs操作都以UTF-8编码的JSON格式(JSON是一种key-value对的数据格式) ...
- Unit Testing, Integration Testing and Functional Testing
转载自:https://codeutopia.net/blog/2015/04/11/what-are-unit-testing-integration-testing-and-functional- ...
- 【VS开发】winsock 错误多 windows.h和winsock2.h的顺序
Windows平台下用C++做网络开发很多时候都会同时包含这两个头文件,如若顺序不当(windows.h先于winsock2.h)就会出现很多莫名其妙的错误.诸如: c:\program files ...
- 最新 欢聚时代java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.欢聚时代等10家互联网公司的校招Offer,因为某些自身原因最终选择了欢聚时代.6.7月主要是做系统复习.项目复盘.Leet ...
- pycharm2017注册码
BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...
- idea查看源码没有注释的问题
进入idea的设置 勾选这两个 然后重新导入 页面的右上角有个下载download source的提示,点击下载即可 然后页面就要源码注释了
- SQL FIND_IN_SET() 判断某一个数是否存在于数据表某个以逗号分隔开字段数据中
数据表中的字段存储的是以逗号分隔开的字符串, 例如 (1,2,6,8) 以前不知道这个用法, 碰到比如 8 是否包含在改字符串里面只能一个个取出来, 然后解析成数组,再判断是否在该数组中,效率极低: ...
- 小菜鸟之crond
前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...