day 13 笔记
day 13 笔记
每天一记命令
| chown --hlep /man chown | 如何查看修改文件属主的命令的帮助信息,写2个办法 |
|---|---|
| touch /tmp/{1..50}.txt | 在/tmp目录下创建50个txt文件 |
| wc -l /etc/passwd | 数一数linux中有多少个用户 |
| find / -type f -name 'hello.log' | 在系统中找到名字叫做hello.log的文件 |
| tar -zcvf all.tar /* | 打包整个/tmp目录生成文件all.tar |
| tar -zxvf | 解压缩tgz压缩包的命令和参数是 |
| history | 清空历史命令的记录 |
| find ./ -type f -name '*.log' | 找出当前目录下的所有log文件且删掉 |
| cat >>/opt/file.txt<<EOF<br >我寄愁心与明月, >随风直到夜郎西. >EOF |
将两行文本"我寄愁心与明月,随风直到夜郎西"写入文件/opt/file.txt中 |
| su - root touch /opt/hello.log |
以root身份在/opt下创建文件hello.log |
每天一记单词
| unit | 单元 |
|---|---|
| default | 默认 |
| error | 错误 |
| warning | 警告 |
| info | 信息 |
| save | 保存 |
| apply | 应用 |
| change | 更改 |
| complete | 完成 |
| update | 更新 |
1.查看系统/用户的环境变量命令
实现用户的切换(并完全加载用户的环境变量)
su - yuchao01
系统想加载用户环境变量,进入家目路,没有/home/chaoge01,导致命令提示符错误,如何修复呢?
# linux中可以查询用户相关的,环境变量,命令是 env
# linux中还有一个查询,全系统的环境变量,命令是set
#PS1变量,就是控制命令提示符的
[yuchao01@yuanlai0224 root]$ set |grep PS1
PS1='[\u@\h \W]\$ '
\u 显示用户名
@ 分隔符
\h 主机名
\W 显示用户所处目录的最后一级
\w 显示用户所处的绝对路径
\t 以24小时制,显示时间
\$ 显示用户的身份提示符,自动识别root还是普通用户
可以调整PS1 命令提示符服下格式:
PS1='[\u@\h \w \t]\$ '
该变量,临时敲打,临时生效,重新登录后,系统重新加载用户环境变量,该设置丢失
如何永久生效?把你自定义的变量
- 写入到,系统全局环境变量配置文件中(/etc/profile)
- 那么就有关于用户个人的配置文件,在用户家目录下
~/.bash_profile
要想永久保存--
1.写入到系统全局变量 /etc/profile 中
vim /etc/profile
PS1='[\u@\h \w\t]\$ '
2.写入到用户个人环境变量
[yuchao01@yuanlai0224 ~]$ vim ~/.bash_profile
PS1='[\u@\h \w\t]\$ '
实现完全切换用户后执行set命令可以看到如下图

没有完全切换用户后执行set命令可以看到如下图:

在切换用户是命令提示符出错怎么解决?
-bash-4.2$
-bash-4.2$
-bash-4.2$
-bash-4.2$ echo $PS1
\s-\v\$
-bash-4.2$
cp -r /etc/skel/ /home/chaoge01
2.特殊权限对照表
| 类别 | suid | sgid | sticky |
|---|---|---|---|
| 字符表示 | S | S | T |
| 出现位置 | 用户权限位x | 用户组权限位x | 其他用户权限位x |
| 基本权限位有x | s | s | t |
| 数字表示法 | 4 | 2 | 1 |
| 八进制表示法 | 4000 | 2000 | 1000 |
| 生效对象 | 用户位 | 用户组 | 其他用户 |
3.suid命令
suid 的作用
给命令设置了suid 普通用户就可以以root 的身份去执行这个命令
只要用户对设有SUID的文件有执行权限,那么当用户执行此文件时,会以文件属主的身份去执行此文件。
SUID特殊权限仅适用于可执行文件
二进制命令
比如系统的/usr/bin下提供的命令,比如/usr/bin/ls /urs/bin/rm
如下案例:
[root@yuanlai0224 ~]# mkdir /suid_test #创建一个测试文件
[root@yuanlai0224 ~]# ll -d /suid_test/ #查看文件权限
drwxr-xr-x. 2 root root 6 Mar 17 16:29 /suid_test/
[root@yuanlai0224 ~]#
[jak01@yuanlai0224 /]$ rm -rf /suid_test/
rm: cannot remove ‘/suid_test/’: Permission denied #此时其他用户是没有权限删除这个文件的
[jak01@yuanlai0224 /]$
[root@yuanlai0224 ~]# chmod u+s /usr/bin/rm #给rm 增加 suid 特殊权限
[root@yuanlai0224 ~]# ll /usr/bin/rm
-rwsr-xr-x. 1 root root 62864 Apr 11 2018 /usr/bin/rm
[jak01@yuanlai0224 /]$ rm -rf /suid_test/
[jak01@yuanlai0224 /]$ ls
bin data etc lib linux0224 media opt root sbin sys test_linux01 tmp var
boot dev home lib64 log_bak mnt proc run srv test_data test_vim usr
[jak01@yuanlai0224 /]$
找出系统中,所有包含了suid权限的
# find提供权限查找的参数 -perm -ls find提供的格式化打印参数,就好比-exec -ok -delete 一样
find / -type f -perm -4000 -ls
find: ‘/proc/5614/task/5614/fdinfo/6’: No such file or directory
find: ‘/proc/5614/fdinfo/5’: No such file or directory
50504060 32 -rwsr-xr-x 1 root root 32008 Apr 11 2018 /usr/bin/fusermount
50880110 24 -rws--x--x 1 root root 24048 Apr 11 2018 /usr/bin/chfn
50880113 24 -rws--x--x 1 root root 23960 Apr 11 2018 /usr/bin/chsh
50880014 64 -rwsr-xr-x 1 root root 64240 Nov 6 2016 /usr/bin/chage
50880015 80 -rwsr-xr-x 1 root root 78216 Nov 6 2016 /usr/bin/gpasswd
50880017 44 -rwsr-xr-x 1 root root 41776 Nov 6 2016 /usr/bin/newgrp
50880097 200 ---s--x--- 1 root stapusr 203832 Apr 13 2018 /usr/bin/staprun
50880178 44 -rwsr-xr-x 1 root root 44320 Apr 11 2018 /usr/bin/mount
50908559 60 -rwsr-xr-x 1 root root 57576 Apr 11 2018 /usr/bin/crontab
50880193 32 -rwsr-xr-x 1 root root 32184 Apr 11 2018 /usr/bin/su
50880197 32 -rwsr-xr-x 1 root root 32048 Apr 11 2018 /usr/bin/umount
50908427 28 -rwsr-xr-x 1 root root 27680 Apr 11 2018 /usr/bin/pkexec
51055970 140 ---s--x--x 1 root root 143184 Apr 11 2018 /usr/bin/sudo
51056007 28 -rwsr-xr-x 1 root root 27832 Jun 10 2014 /usr/bin/passwd
165251 12 -rwsr-xr-x 1 root root 11216 Apr 11 2018 /usr/sbin/pam_timestamp_check
165253 36 -rwsr-xr-x 1 root root 36280 Apr 11 2018 /usr/sbin/unix_chkpwd
469793 12 -rwsr-xr-x 1 root root 11288 Apr 11 2018 /usr/sbin/usernetctl
34044814 16 -rwsr-xr-x 1 root root 15432 Apr 11 2018 /usr/lib/polkit-1/polkit-agent-helper-1
34044810 60 -rwsr-x--- 1 root dbus 58016 Apr 11 2018 /usr/libexec/dbus-1/dbus-daemon-launch-helper
[root@yuanlai0224 ~]#
#找出系统中所有的 .log 文件并删除(删除时有提示)
find / -type f -name '*.log' -ok rm -f {} \;
4.sgid命令
1.对于二进制命令来说,sgid的功能和suid基本一样,只不过一个是设置文件属主的权限,一个是设置属组的权限,和9位基本rwx那个理解概念一样。
2. suid是获得文件属主的权限,sgid是获得文件属组的权限
3. sgid主要用于文件夹,为某个目录设置sgid之后,在该目录中的创建的文件,都以(目录的属组)权限为准,而不属于创建该文件的用户权限,这就实现了多个用户,可以共享一个目录的作用。
一般直接和文件夹结合使用,给文件夹设置sgid,等于设置了一个共享文件夹的概念
简单总结
1.一个普通的文件夹,普通用户cc03进入后,创建文件,user,group都属于谁?都属于cc03
baoqiang01 进入后,创建文件 ,都属于谁? baoqiang01
2.当一个文件夹设置了sgid,普通用户cc03进入后,创建的文件,user属于cc03,group属于了文件夹的属组。
baoqiang01 进入后,创建了文件,user,group属于谁?user属于baoqiang01,group属于文件夹的属组。
如下案例:
[root@yuanlai0224 /]# mkdir /home/sgid_test #创建一个共享文件夹
[root@yuanlai0224 /]# groupadd feel #创建一个组
[root@yuanlai0224 /]#
[root@yuanlai0224 /]# chgrp feel /home/sgid_test/ #把共享文件的属组给到feel这个组
[root@yuanlai0224 /]#
[root@yuanlai0224 /]# ll -d /home/sgid_test/
drwxr-xr-x. 2 root feel 6 Mar 17 17:00 /home/sgid_test/
[root@yuanlai0224 /]#
[root@yuanlai0224 /]# chmod g+s /home/sgid_test/ #给这个文件设置sgid权限
[root@yuanlai0224 /]# ll -d /home/sgid_test/
drwxr-sr-x. 2 root feel 6 Mar 17 17:00 /home/sgid_test/
[root@yuanlai0224 /]#
[root@yuanlai0224 /]# cd /home/sgid_test/
[root@yuanlai0224 sgid_test]# mkdir nihao
[root@yuanlai0224 sgid_test]# ll -d nihao/
drwxr-sr-x. 2 root feel 6 Mar 17 17:02 nihao/ #可以看到创建的文件夹属于feel这个组
[root@yuanlai0224 sgid_test]#
[root@yuanlai0224 sgid_test]# touch nihao.txt
[root@yuanlai0224 sgid_test]# ll
total 0
drwxr-sr-x. 2 root feel 6 Mar 17 17:02 nihao
-rw-r--r--. 1 root feel 0 Mar 17 17:03 nihao.txt #创建的文件也属于feel这个组
[root@yuanlai0224 sgid_test]#
将sgid和红帽认证考题结合练习
1.创建一个共享目录/home/admins
[root@yuanlai0224 ~]# mkdir /home/admins
2.要求该目录属组是adminuser,adminuser组内成员对该目录的权限是,可读,可写,可执行。
[root@yuanlai0224 ~]# groupadd adminuser #创建adminuser组
[root@yuanlai0224 ~]# chgrp adminuser /home/admins/ #更改文件/home/admins/的属组
[root@yuanlai0224 ~]# chmod g=rwx /home/admins/ #设置文件属组的权限可读,可写,可执行
[root@yuanlai0224 ~]# ll -d /home/admins/
drwxrwxr-x. 2 root adminuser 6 Mar 17 17:08 /home/admins/
[root@yuanlai0224 ~]#
3.其他用户均无任何权限(root特例)
[root@yuanlai0224 ~]# chmod o='' /home/admins/ #设置文件其他人权限位为空
[root@yuanlai0224 ~]# ll -d /home/admins/
drwxrwx---. 2 root adminuser 6 Mar 17 17:08 /home/admins/
[root@yuanlai0224 ~]#
4.进⼊/home/admins创建的⽂件,⾃动继承adminuser组的权限。
[root@yuanlai0224 ~]# chmod g+s /home/admins/
[root@yuanlai0224 ~]# cd /home/admins/
[root@yuanlai0224 admins]# ll -d /home/admins/
drwxrws---. 2 root adminuser 6 Mar 17 17:08 /home/admins/
[root@yuanlai0224 admins]# mkdir test01
[root@yuanlai0224 admins]# touch test01.txt
[root@yuanlai0224 admins]# ll
total 0
drwxr-sr-x. 2 root adminuser 6 Mar 17 17:12 test01
-rw-r--r--. 1 root adminuser 0 Mar 17 17:12 test01.txt
[root@yuanlai0224 admins]#
5.sbit命令
sbit 粘滞位
在一个权限是 777的文件夹下,所有用户,可以进行 r,w,x的操作,也就意味着,可以随便,删除其他人的资料!!
sbit命令就是限制了用户对文件夹的操作,限制用户只能删除自己的文件。
在Linux中就有一个文件是所有用户可以临时存放文件的地方----- /tmp
[root@yuanlai0224 ~]# ll -d /tmp
drwxrwxrwt. 11 root root 4096 Mar 17 20:19 /tmp #可以看到权限是很大的。 但是最后其他人的权限为rwt t就是sbit
[root@yuanlai0224 ~]#
但是由于sbit命令的作用,限制了用户的权限。 在这个文件夹里用户只能移动删除自己的文件。
就以 /tmp 做个测试:
[root@yuanlai0224 tmp]# ll -d /tmp
drwxrwxrwt. 11 root root 4096 Mar 17 20:19 /tmp #此时是由sbit粘滞位的,只有root由权力删除更改文件。
[root@yuanlai0224 tmp]#
[root@yuanlai0224 tmp]# ls
about_opt.txt all_test1 chun.txt jumpserver_txt oui.txt vmware-root
allkeys.txt audit.txt iab.txt learn_vim2.txt test_tar yuchao_linux.txt
#去除/tmp 的粘滞位
[root@yuanlai0224 tmp]# chmod o-t /tmp
[root@yuanlai0224 tmp]# ll -d /tmp
drwxrwxrwx. 11 root root 4096 Mar 17 20:19 /tmp #此时的权限为777 就是说所有用户都可以删除文件
[root@yuanlai0224 tmp]#
#切换到普通用户测试删除文件
[root@yuanlai0224 tmp]# su - zjq #切换到普通用户
Last login: Sun Mar 13 01:05:45 CST 2022 on pts/0
[zjq@yuanlai0224 ~]$
[zjq@yuanlai0224 ~]$ cd /tmp #进入/tmp
[zjq@yuanlai0224 tmp]$ ls
about_opt.txt all_test1 chun.txt jumpserver_txt oui.txt vmware-root
allkeys.txt audit.txt iab.txt learn_vim2.txt test_tar yuchao_linux.txt
[zjq@yuanlai0224 tmp]$
[zjq@yuanlai0224 tmp]$ rm chun.txt #删除文件
rm: remove write-protected regular file ‘chun.txt’? y
[zjq@yuanlai0224 tmp]$ ls
about_opt.txt all_test1 iab.txt learn_vim2.txt test_tar yuchao_linux.txt
allkeys.txt audit.txt jumpserver_txt oui.txt vmware-root
[zjq@yuanlai0224 tmp]$
#恢复/tmp 的sbit 权限,再来看普通用户还能不能删除文件
[root@yuanlai0224 ~]# chmod o+t /tmp #恢复 /tmp 的sbit权限
[root@yuanlai0224 ~]# ll -d /tmp
drwxrwxrwt. 11 root root 4096 Mar 17 20:52 /tmp
[root@yuanlai0224 ~]#
[zjq@yuanlai0224 home]$ cd /tmp
[zjq@yuanlai0224 tmp]$ ls
about_opt.txt all_test1 iab.txt learn_vim2.txt test_tar yuchao_linux.txt
allkeys.txt audit.txt jumpserver_txt oui.txt vmware-root
[zjq@yuanlai0224 tmp]$ rm yuchao_linux.txt
rm: remove write-protected regular empty file ‘yuchao_linux.txt’? y
rm: cannot remove ‘yuchao_linux.txt’: Operation not permitted #这是不允许的操作
6.nmask命令
#umask命令作用:
umask 命令用来限制新文件权限的掩码。
也称之为遮罩码,防止文件、文件夹创建的时候,权限过大
当新文件被创建时,其最初的权限由文件创建掩码决定。
用户每次注册进入系统时,umask命令都被执行,并自动设置掩码改变默认值,新的权限将会把旧的覆盖。
umask默认配置在/etc/profile 61-64行
语法参数:
-S 以字符的形势显示当前的掩码
-p 带umask开头以数字的形势显示当前掩码
#如何计算umask文件权限
公式:
默认的文件、文件夹权限,减去umaks的值等于最终的权限值
文件最大777 文件夹最大777
#默认umask的值, root 和 普通用户不一样
root用户的umak的值:
[root@yuanlai0224 ~]# umask
0022
[root@yuanlai0224 ~]#
普通用户的umask的值
[zjq@yuanlai0224 ~]$ umask
0002
[zjq@yuanlai0224 ~]$
#如何修改umask的值
临时修改默认umask的值
[root@yuanlai0224 ~]# umask 046
[root@yuanlai0224 ~]#
[root@yuanlai0224 ~]#
[root@yuanlai0224 ~]# umask
0046
[root@yuanlai0224 ~]# mkdir test
[root@yuanlai0224 ~]# ll -d test/
drwx-wx--x. 2 root root 6 Mar 17 17:44 test/ #此时创建的文件夹权限是731 就是文件夹最大权限777-046
[root@yuanlai0224 ~]#
7.chattr命令和lsattr命令
chattr
chattr命令用于更改文件的扩展属性,比chmod更改的rwx权限更底层
参数
a: 只能向文件中添加数据,不得删除
-R: 递归更改目录属性
-V: 显示命令执行过程
模式
+ 增加参数
- 移除参数
= 更新为指定参数
A 不让系统修改文件最后访问时间
a 只能追加文件数据,不得删除
i 文件不能被删除、改名、修改内容
lsattr
lsattr命令用于查看文件的扩展属性,结合chattr使用。
参数
-R
递归地列出目录以及其下内容的属性.
-V
显示程序版本.
-a
列出目录中的所有文件,包括以`.'开头的文件的属性.
-d
以列出其它文件的方式那样列出目录的属性, 而不列出其下的内容.
-v
显示文件版本.
如下案例演示:
#锁定/var/log/my_website.log ,限制⽂件只能追加写⼊数据,不得删除⽂件、或清除⽂件内容。
[root@yuanlai0224 ~]# chattr +a /var/log/my_website.log
Must use '-v', =, - or +
[root@yuanlai0224 ~]# ll /var/log/my_website.log
-rw-r--r--. 1 root root 0 Mar 17 17:52 /var/log/my_website.log
[root@yuanlai0224 ~]#
[root@yuanlai0224 ~]# lsattr /var/log/my_website.log
-----a---------- /var/log/my_website.log
#去除/var/log/my_website.log的⽂件锁定,清空⽂件内容后,再删除⽂件。
[root@yuanlai0224 ~]# chattr -a /var/log/my_website.log
[root@yuanlai0224 ~]# lsattr /var/log/my_website.log
---------------- /var/log/my_website.log
[root@yuanlai0224 ~]#
[root@yuanlai0224 log]# rm my_website.log
rm: remove regular empty file ‘my_website.log’? y
[root@yuanlai0224 log]#
8.find命令的扩充
#限定搜索最⼤⽬录为3层,找出系统中的log⽂件。
参数: -maxdepth 最大目录
[root@yuanlai0224 ~]# find / -maxdepth 3 -type f -name '*.log'
/var/log/boot.log
/var/log/vmware-vmsvc.log
/var/log/yum.log
/var/log/test.log
/test_linux01/我是bob.log
[root@yuanlai0224 ~]#
#限定搜索最⼤⽬录为2层,找出系统中权限为640的⽂件,且显示其详细信息。
参数: -perm 权限为多少
[root@yuanlai0224 ~]# find / -maxdepth 2 -type f -perm 640 | xargs -i ls -l {}
-rw-r-----. 1 root root 191 Oct 12 2017 /etc/libaudit.conf
-rw-r-----. 1 root root 3181 Apr 11 2018 /etc/sudo-ldap.conf
-rw-r-----. 1 root root 1786 Apr 11 2018 /etc/sudo.conf
[root@yuanlai0224 ~]#
#限定搜索最⼤⽬录为2层,找出系统中权限为644的⽂件,且统计有多少个。
[root@yuanlai0224 ~]# find / -maxdepth 2 -type f -perm 644 | wc -l
126
9.date命令
date
查看系统当前时间
[root@yuanlai0224 ~]# date
Thu Mar 17 21:16:34 CST 2022
[root@yuanlai0224 ~]#
参数:
-s 可自定义设置时间
%H 表示时
%M 表示分
%S 表示秒
%y 表示年
%m 表示月
%d 表示日
%F 表示日期
%T 表示时间
[root@yuanlai0224 ~]# date '+%y%m%d' #显示日期
220317
[root@yuanlai0224 ~]#
[root@yuanlai0224 ~]# date '+%H:%M:%S' #显示时间
21:27:06
[root@yuanlai0224 ~]#
[root@yuanlai0224 ~]# date '+%F %T' #显示日期和时间
2022-03-17 21:28:40
[root@yuanlai0224 ~]#
[root@yuanlai0224 ~]# date -s '12:12:12 2012-12-12' #格式化修改时间
Wed Dec 12 12:12:12 CST 2012
[root@yuanlai0224 ~]# date
#试⼀试,如何纠正,同步系统为正确的互联⽹时间。
[root@yuanlai0224 ~]# ntpdate
17 Mar 20:20:01 ntpdate[5589]: no servers can be used, exiting
[root@yuanlai0224 ~]# ntpdate ntp2.aliyun.com
17 Mar 20:20:27 ntpdate[5590]: adjust time server 203.107.6.88 offset -0.496970 sec
[root@yuanlai0224 ~]# date
Thu Mar 17 20:20:31 CST 2022
[root@yuanlai0224 ~]#

浙公网安备 33010602011771号