权限再续
SUID
只对二进制程序有效或者是命令、可执行文件 像Windows中的.exe文件
[root@localhost ~]# ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /bin/passwd
#属主中的s就是具有SUID特殊权限
作用和限制如下:
1、SUID 权限仅对二进制程序(binary program)有效;
2、执行者对于该程序需要具有 x 的可执行权限;
3、本权限仅在执行该程序的过程中有效 (run-time);
4、在执行此文件时,执行者将具有该程序拥有者 (owner) 的权限。
使用方法
drwxr-srwx. 2 root root 17 Jul 25 10:34 b
[root@localhost ~]$ ls -l /home/opt/kiss/a.txt
-rwxr-srwx. 1 root root 0 Jul 25 10:15 /home/opt/kiss/a.txt
[root@localhost ~]$ chmod u+s /home/opt/kiss/a.txt
[root@localhost ~]$ ls -l /home/opt/kiss/a.txt
-rwsr-srwx. 1 root root 0 Jul 25 10:15 /home/opt/kiss/a.txt
#之前a.txt文件属主只有rwx权限 chmod后再看属主权限添加了SUID权限 将x给覆盖了 但是还有x权限
SGID
当 s 标志在文件拥有者的 x 项目为 SUID,那 s 在群组的 x 时则称为 Set GID,即 SGID .
当一个文件具有 SGID(用的情况不多)
SGID 对二进制程序有用;
程序执行者对于该程序来说,需具备 x 的权限;
执行者在执行的过程中将会获得该程序群组的权限
当一个目录具有 SGID
用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;
用户在此目录下的有效群组(effective group)将会变成该目录的群组;
用途:若用户在此目录下具有 w 的权限(可以新建文件),则用户所创建的新文件时,该新文件的群组与此目录的群组相同。
使用方法
[root@localhost home]$ cd /home/opt
[root@localhost opt]$ mkdir dtest
[root@localhost opt]$ chmod g+s dtest/
[root@localhost opt]$ ll -d dtest/
drwxr-sr-x. 2 root root 6 Jul 25 10:45 dtest/
[root@localhost ~]$ chmod 757 /home/opt/dtest/
[root@localhost ~]$ ll -d /home/opt/dtest
drwxr-srwx. 2 root root 6 Jul 25 10:45 /home/opt/dtest
[root@localhost ~]$ su - one
Last login: Thu Jul 25 10:47:39 CST 2019 on pts/0
[one@localhost ~]$ cd /home/opt/dtest
[one@localhost dtest]$ touch abc
[one@localhost dtest]$ ll -d abc
-rw-rw-r--. 1 one root 0 Jul 25 11:43 abc
#使用SGID后是在其他用户访问这个文件的时候属组是属于设置SGID的用户 相当于拥有这个用户的权限
SBIT
SBIT目前只对目录有效i,对于文件已经没有效果了。
SBIT对于目录的作用是:
当前使用者对于此目录具有w,x权限,具有写入的权限;
当该使用者在该目录下创建文件或目录时,仅有自己与root才有权力删除该文件
语法
[root@localhost ~]# ls -ld /tmp
drwxrwxrwt. 27 root root 4096 Jul 25 12:51 /tmp
chmod a+x 目录 #所有用户都添加执行权限
只能是有了权限才能删除 其他人不能删除
权限网址
touch [-acdmt]文件
选项
touch [命令参数][接参数的内容可有可无][filename]
-a #修改access time
-c #如果文件不存在不建立,存在则修改所有时间为当前时间
-d #后面接日期,修改的是atime和mtime
-m #修改mtime
-t #后面接时间,格式为[[CC]YY]MMDDhhmm[.ss]
Linux中的三个时间
atime 就是 access time 最近访问内容的时间
mtime 就是 modify time 最近修改内容的时间
ctime 就是 change time 最近更改文件的时间,包括文件名、大小、内容、权限、属主、属组等。
stat 命令可以查看一个文档的这三个时间戳:
[root@localhost ~]# stat anaconda-ks.cfg
File: ‘anaconda-ks.cfg’
Size: 2229 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 1316560 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2019-07-25 14:14:35.932109666 +0800 #atime
Modify: 2019-01-01 01:01:00.000000000 +0800 #mtime
Change: 2019-07-25 12:00:57.094679850 +0800 #ctime
Birth: -
修改更精确的时间
2018 年 8 月 7 日 18 点 18 分
➜ ~ touch -t 1808071818 anaconda-ks.cfg
find
find [options][path...] [expression][action]
按文件名查找
find /etc -name 文件名
find /etc -iname 文件名 #这样查找忽略大小写
按文件大小查找
find /etc -size +5M //大于5M
find /etc -size 5M
find /etc -size -5M
find /etc -size +5M -ls //-ls找到的处理动作, 不是平时用的ls
ll - h 查看大小
按目录深度
转到第二天笔记
系统的目录树机构
image.pnginode和block
inode 也可以称inode表格 inode内容在记录文件的属性以及该文件实际数据是放在哪几号block内
inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码,只存放这个数据的号码不存放实际数据
block:实际记录文件的内容,若文件太大时会占用多个block。存放着数据 目录的block中存放了这个目录下的文档名和对应的inode号
tree 查看目录结构
sort排序
sort [-fbMnrtuk] [file or stdin]
选项不参数:
-f :忽略大小写
-b :忽略最前面的空格符部分;
-n : 使用『纯数字』进行排序(默认是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,预设是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思
uniq 去重只能去连续的
uniq [-ic]
选项:
-i //忽略大小写
-c //进行统计
wc 字符,行统计
[root@localhost]# wc [-lwm]
选项和参数
-l 列出行
-w 列出多少字
-m 多少字符
tr字符替换
cat /etc/passwd | tr -d ':' //将冒号删除
last | tr '[a-z]' '[A-Z]' //所以小写变成大写
符号目录
. 表示当前目录
.. 表示上层目录
- 表示上次离开的目录
~ 表示当前用户的家目录
~shark 表示shark用户的家目录
操作目录的命令
pwd 显示当前所在的路径
-P 显示出实际路径
cd ~ 到自己的家目录
cd ~shark 到shark用户的家目录
cd - 到上次离开的目录
mkdir 建立新的目录
rmdir 删除空目录
tree 递归查看目录结构
tree -L n 表示查看第n层的目录
文件内容操作
cut字段分隔
cut -d'分隔的字符' -f 文件
-d #后面接分隔符 与-f一起使用
-c #以字符的单位取出固定字符区间
-f #根据-d分隔符分割成数段,用-f取出第几段的意思
export | cut -c 12- 把export输出的信息 取出第十二个字符以后的所有字符
示例
[root@localhost test]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost test]# echo $PATH |cut -d':' -f2
/usr/local/bin
# 通过cut将以冒号分割开选出第二个目录
gerp 关键字搜索
grep [命令参数] [搜索内容] [搜索文件名]
-a #以txt文件的方式搜索数据
-c #计算找到的字符串的次数
-i #忽略大小写
-n #输出行号
-v #反向选择
网友评论