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 ~]# 
posted @ 2022-03-17 21:34  SigNout  阅读(81)  评论(0)    收藏  举报