20220317 day13——特殊权限与其它补充知识

昨日作业笔记

1、如何验证文件被修改过了

(该文件的唯一值是否发生了变化)
用法,对如下四个文件,修改之前,检验md5值,以及修改之后,查看它的值是否变化 
md5sum  /etc/passwd  /etc/shadow  /etc/gshadow /etc/group  

2、不允许创建家目录

useradd -M usernmae        #此参数记忆不牢靠


创建⽤户(useradd)chaoge01,要求uid为1200(-u参数),gid为2000(),不允许创建家⽬录(-M),不允许登录。(-s)
        useradd -u 1200 -g 2000 -M -s /sbin/nologin  chaoge01

3、关于控制命令提示符以及损坏解决方法

su  - chaoge01

系统想加载用户环境变量,进入家目录,没有/home/chaoge01,导致命令提示符错误,如何修复呢?

# linux中可以查询用户相关的,环境变量,命令是 env
# linux中还有一个查询,全系统的环境变量,命令是set
# PS1变量,就是控制命令提示符的

[root@pig ~]# set | grep PS1
PS1='[\u@\h \W]\$ '
\u 显示用户名
\h 显示主机名
\W 显示用户所处目录的最后一级
\w 显示用户所处的绝对路径,省去你敲pwd
\t 以24小时制,显示时间
\$ 显示用户的身份提示符,自动识别root还是普通用户

最终你可以调整PS1 命令提示符如下格式
PS1='[\u@\h   \w \t]\$ '

该变量,临时敲打,临时生效,重新登录后,系统重新加载用户环境变量,该设置丢失
如何永久生效?把你自定义的变量
- 写入到,系统全局环境变量配置文件中(/etc/profile)
- 那么就有关于用户个人的配置文件,在用户家目录下
~/.bash_profile




#当命令提示符出现损坏,以及家目录显示不正常的解决办法

比如如下损坏信息时,
[root@yuanlai-0224 tmp]# su - chaoge01
上一次登录:四 3月 17 09:51:51 CST 2022pts/0 上
su: 警告:无法更改到 /home/chaoge01 目录: 没有那个文件或目录
-bash-4.2$ 
-bash-4.2$ 
-bash-4.2$ 
-bash-4.2$ echo $PS1
\s-\v\$
-bash-4.2$ 

修复原理:
1.表示系统读不到用户的个人配置文件,用户在useradd创建时候,系统会去 /etc/skel 目录下,拷贝所有的用户个人环境变量配置文件,到用户生成的家目录下 /home/chaoge01

2. 用户在登录时,自动加载 /home/chaoge01 下所有的文件内容


3.修复手段,手动的拷贝 前2步操作即可修复
cp -r /etc/skel/  /home/chaoge01 

4.
[root@yuanlai-0224 tmp]# su - chaoge01
上一次登录:四 3月 17 10:08:12 CST 2022pts/0 上
[chaoge01@yuanlai-0224 ~]$ 
[chaoge01@yuanlai-0224 ~]$ pwd
/home/chaoge01

4、修改用户密码的三种方式

1、直接:passwd  用户名

2、echo '123456' |passwd --stdin 用户名

3、准备一个文件,比如用vim /passwrod.txt 
用户名:密码
用户名:密码
用户名:密码

然后 cat /password.txt | chpasswd

5、请修改/data/下所有⽬录,及其⼦⽬录的⽂件,属主改为chaoge01,属组改为devops。

创建完该目录内容后
chown -R chaoge01.devops /data

今日笔记———特殊权限

基础知识

linux提供的12个权限
默认的9个权限
rwx rwx rwx

还有三个隐藏的特殊权限,如下
suid  比如 /usr/bin/passwd    

sgid

sbit 

1.suid

suid特殊权限仅适用于可执行的二进制命令。   如:/usr/bin/ls  usr/bin/rm 等等


suid作用是:只要用户对设有 SUID 的文件有执行权限,那么当用户执行此文件时,会以文件属主的身份去执行此文件 。一旦命令执行结束,身份的切换也随之消失。

以/usr/bin/passwd可执行命令举例

就是让普通用户,执行该命令时,临时以文件属主身份(root)执行,获得root的权限。

实际suid可以让普通用户,修改自己的密码,是因为可执行文件/usr/bin/passwd 有了suid权限。

如何找出系统中包含suid权限的二进制命令。

# find提供权限查找的参数 -perm   -ls find提供的格式化打印参数,就好比-exec -ok  -delete 一样

find / -type f -perm -4000  -ls

2.sgid

1.对于二进制命令来说,sgid的功能和suid基本一样,只不过一个是设置文件属主的权限,一个是设置属组的权限。

2.sgid主要用于文件夹,为某个目录设置sgid之后,在该目录中的创建的文件,都以(目录的属组)权限为准,而不属于创建该文件的用户权限,这就实现了多个用户,可以共享一个目录的作用。

简单举例:
简单总结
1.一个普通的文件夹,普通用户cc03进入后,创建文件,user,group都属于谁?都属于cc03
baoqiang01  进入后,创建文件 ,都属于谁? baoqiang01

2.当一个文件夹设置了sgid,普通用户cc03进入后,创建的文件,user属于cc03,group属于了文件夹的属组。
baoqiang01 进入后,创建了文件,user,group属于谁?user属于baoqiang01,group属于文件夹的属组。

3.sgid结合红帽试题

考生账号是 user01

[user01@yuanlai-0224 ~]$ 

1.创建一个共享目录/home/admins

mkdir /home/admins



2.要求该目录属组是adminuser,adminuser组内成员对该目录的权限是,可读,可写,可执行。

创建组adminuser
groupadd adminuser

修改/home/admins的属组
chgrp  adminuser  /home/admins
修改group角色的权限是 r,w,x
chmod g=rwx /home/admins


3.其他用户均无任何权限(root特例)
chmod o=''  /home/admins

4.这道题,的最后一个难关,是这个》》》》 进入/home/admins创建的文件,自动继承adminuser组的权限。 

(这里用到了sgid的权限吗,你需要给/home/admins设置sgid权限,得用root去设置)

用字母表示法,给文件夹设置sgid权限
chmod g+s /home/admins               或:chmod 2770 /home/admins

[root@yuanlai-0224 ~]# ll /home/admins/ -d
drwxrws---. 2 root adminuser 6 3月  17 11:50 /home/admins/

5.此时你在这个目录下,创建的文件,自动继承adminuser的权限(文件的group,默认就是adminuser了)

[root@yuanlai-0224 ~]# touch /home/admins/我是root.log
[root@yuanlai-0224 ~]# 
[root@yuanlai-0224 ~]# mkdir /home/admins/我是root文件夹
[root@yuanlai-0224 ~]#  
[root@yuanlai-0224 ~]# ll /home/admins/
总用量 0
-rw-r--r--. 1 root adminuser 0 3月  17 11:56 我是root.log
drwxr-sr-x. 2 root adminuser 6 3月  17 11:56 我是root文件夹
[root@yuanlai-0224 ~]# 

发现文件夹,也自动有了s权限,还实现了递归继承的效果

4.sbit

1.创建一个公共目录,给与777权限

mkdir /0224linux/
chmod 777 /0224linux/


2.分别用2个普通用户,去操作,查看权限是如何

3.
比如用户一:ysl01   用户二:ysl02

这俩用户都能同时cd到 /0224linux/目录内,且分别创建文件:
ysl01  touch 一个  ysl001.txt
ysl02  touch 一个  ysl002.txt

此时这俩文件权限属性默认分别为:
-rw-rw-r--  1  ysl01  ysl01  时间  ysl001.txt
-rw-rw-r--  1  ysl02  ysl02  时间  ysl002.txt

按理来说这俩文件属主属组都属于自己,o的权限为只能r。
但是他俩却可以互相删除对方所touch的文件,为什么呢?
原因是:他俩都在同一个目录下,而这个目录的权限为777,那么他俩在这个文件夹内创建的文件当然也就属于这个文件夹,所以他俩都可以删除此文件夹内的文件。
那么如何禁止他俩用户可以互相删除对方文件的这个问题呢?
首先,我们当然可以先修改此文件夹的o的权限,去掉w权限。那么他俩就不可以操作此文件夹内的文件了。

那么如果不修改文件夹的权限,那么就可以引入sbit。

比如系统的/tmp 临时文件夹,它的权限就是777。
但是我们ll -d /tmp 看一下它的权限情况,
drwxrwxrwt. 8 root root 4096 3月  16 18:54 /tmp/
此时o处的x出现了一个特殊权限t

那么sbit(t)的作用就是:这个目录,当然除了root外,其他任何用户,都只能删除、移动、自己创建的文件,而不能操作其他人的文件。如果没有设置粘滞位,且目录是777权限时,也就是任意的user、group、other角色在这个目录下,可以进行读、写、执行任意文件。

如何移除/tmp 的sbit权限(只做命令演示,不建议做此操作)
[root@yuanlai-0224 0224linux]# chmod o-t /tmp
[root@yuanlai-0224 0224linux]# ll -d /tmp
drwxrwxrwx. 11 root root 260 3月  17 12:26 /tmp

5.如何查看 系统所有环境变量 ,且过滤出与root相关的变量。

[root@pig ~]# set | grep 'root'
HISTFILE=/root/.bash_history
HOME=/root
LOGNAME=root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
USER=root
colors=/root/.dircolors

6.如何查看 ⽤户个⼈的环境变量 ,且过滤出与root相关的变量。

[root@pig ~]# env | grep 'root'
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
HOME=/root
LOGNAME=root

7.解释下PS1变量,以及如何修改使⽤PS1。

可以控制命令提示符的显示。该变量只临时生效,重新登陆后,会重新加载用户环境变量,该设置丢失。

[root@pig ~]# set | grep 'PS1'         #查看下当前的命令提示符具体设置情况
PS1='[\u@\h \W]\$ '

[root@pig ~]# PS1='[\u@\h    \w]\$ '

[root@pig    ~]# 

8.如何永久修改PS1变量⽣效?分别演示root、和普通⽤户的配置。

[root@pig  ~]# vim /etc/profile        #root用户下

[YSL@@pig ~]$ vim ~/.bash_profile     #普通用户下

9.按如下要求,创建⽤户,以及解决⽤户故障。

1.创建⽤户,⽆家⽬录
useradd jack01 -M
2.登录⽤户jack01
[root@yuanlai-0224 ~]# su - jack01
su: warning: cannot change directory to /home/jack01: No such file or directory
-bash-4.2$
3.请解决该问题
[root@pig ~]# cp -r /etc/skel/   /home/jack01
[root@pig ~]# su - jack01
Last login: Thu Mar 17 18:05:41 CST 2022 on pts/0
[jack01@pig ~]$ 

今日自学笔记

1.解释umask的作用.

2.如何使用umask.

3.如何修改umask.

1.umask作用:限制新创建文件夹或者文件的权限,防止创建出来权限过大而造成的安全性问题。

2.
linux默认文件夹最大权限是777(文件夹必须、可读、可写、可执行)
linux文件默认最大权限是666(缺少x,因为x专门给可执行命令用,而不是普通文件)

创建的文件或文件夹的初始权限  =  默认最高权限 - umask

文件的
root    666-022=644   rw-r--r--

YSL     666-002=664   rw-rw-r--

文件夹的
root    777-022=755   rwxr-xr-x

YSL     777-002=775   rwxrwxr-x
如果遮罩码(umask)设置为奇数,会自动+1变成偶
3.
方法一:临时修改umask
[root@pig YSL]# umask 044
[root@pig YSL]# touch ./umask_test
[root@pig YSL]# ll umask_test
-rw--w--w-. 1 root root 0 Mar 17 21:28 umask_test
方法二:永久修改umask
vim /etc/profile

umask存在就有它存在的意义,有两面性。
合理的修改umask的后果是好的,方便各类用户操作。
不合理的修改后果就是坏的,严重降低系统安全性稳定性或者降低用户的体验(比如直接设置为666)。

4.锁定/var/log/my_website.log ,限制⽂件只能追加写⼊数据,不得删除⽂件、或清除⽂件内容。

[root@pig YSL]# touch /var/log/my_website.log
[root@pig YSL]# cd /var/log/
[root@pig log]# chattr +a my_website.log
[root@pig log]# echo 'hahaha' > my_website.log 
-bash: my_website.log: Operation not permitted

5.去除/var/log/my_website.log的⽂件锁定,清空⽂件内容后,再删除⽂件。

[root@pig log]# cat my_website.log 
woshiwuyanzu
[root@pig log]# chattr -a my_website.log
[root@pig log]# echo '' > my_website.log 
[root@pig log]# cat my_website.log 

[root@pig log]# rm my_website.log 
rm: remove regular file ‘my_website.log’? y
[root@pig log]# 

6.锁定⽂件/var/spool/cron/root,限制⽂件不得被删除、改名、修改内容。

[root@pig log]# touch ysl_test.log
[root@pig log]# chattr +i ysl_test.log 
[root@pig log]# echo 'hahaha' >> ysl_test.log 
-bash: ysl_test.log: Permission denied
[root@pig log]# mv ysl_test.log  ysl_test.log.bak
mv: cannot move ‘ysl_test.log’ to ‘ysl_test.log.bak’: Operation not permitted
[root@pig log]# rm ysl_test.log 
rm: remove regular empty file ‘ysl_test.log’? y
rm: cannot remove ‘ysl_test.log’: Operation not permitted
[root@pig log]# 

7.去除/var/spool/cron/root⽂件的锁定限制,删除⽂件。

[root@pig log]# chattr -i ysl_test.log 
[root@pig log]# rm ysl_test.log 
rm: remove regular empty file ‘ysl_test.log’? y
[root@pig log]# 

8.如何查看⽂件 /var/spool/cron/root 是否存在特殊属性。

[root@pig log]# mkdir -p /var/spool/cron/
[root@pig log]# touch /var/spool/cron/root
[root@pig log]# lsattr -a /var/spool/cron/root
---------------- /var/spool/cron/root       #没有i或a,证明没有特殊属性
[root@pig log]# 


拓展:
只查看目录本身的属性:
[root@pig log]# lsattr -d /var/spool/cron/
---------------- /var/spool/cron/

递归列出目录以及其下内容的属性:
[root@pig log]# lsattr -R /var/spool/cron/
---------------- /var/spool/cron/root

posted @ 2022-03-17 22:34  AlienCat  阅读(129)  评论(0)    收藏  举报