Linux权限管理

Linux权限管理

1.Linux权限概述

1.1 rwx概述

Linux权限     含义
r             # read 读取,是否可以查看文件内容
w             # write 修改,是否可以修改文件内容
x             # exec 可执行,一般是给命令或系统脚本使用,运行命令

1.2 查看文件,目录权限

[root@Kylin-V10-sp3 ~]# ll -d /etc/hostname /etc/
drwxr-xr-x 123 root root 8192  8月 28 20:09 /etc/
-rw-r--r--   1 root root   14  8月 21 11:47 /etc/hostname
[root@Kylin-V10-sp3 ~]# 

1.3 权限与数字关系

字母权限       数字权限
r             4
w             2
x             1
-             0

# 字母<-- --> 数字
drwxr-xr-x. 81 root root 8192 9月 5 09:45 /etc/
-rw-r--r--. 1 root root 16 8月 29 10:25 /etc/hostname
# 写出数字权限
-rw-r--r-- 644
---------- 000
dr-xr-x--- 550
# 假设都是文件(写出字符权限)
644 -rw-r--r--
755 -rwxr-xr-x
600 -rw-------
400 -r--------

rwx 421原理

r,- 1,0
w,- 1,0
x,- 1,0
rwx 111 == 7
r-- 100 == 4
-w- 010 == 2
--x 001 == 1

2 权限管理

  • chmod change mode 修改权限
  • chown change owner 修改所有者

2.1 修改所有者

# 以修改所有者和用户组
[root@Kylin-V10-sp3 /home/xk]# touch 2.txt
[root@Kylin-V10-sp3 /home/xk]# ll
总用量 0
-rw-r--r-- 1 xk   xk   0  8月 28 21:57 1.txt
-rw-r--r-- 1 root root 0  8月 28 22:00 2.txt
[root@Kylin-V10-sp3 /home/xk]# 
[root@Kylin-V10-sp3 /home/xk]# chown xk.xk 2.txt 
[root@Kylin-V10-sp3 /home/xk]# 
[root@Kylin-V10-sp3 /home/xk]# 
[root@Kylin-V10-sp3 /home/xk]# ll
总用量 0
-rw-r--r-- 1 xk xk 0  8月 28 21:57 1.txt
-rw-r--r-- 1 xk xk 0  8月 28 22:00 2.txt
[root@Kylin-V10-sp3 /home/xk]# 


# 递归修改目录及目录下面内容的所有者
[root@Kylin-V10-sp3 /home/xk]# mkdir -p /app/nginx-{01..10}
[root@Kylin-V10-sp3 /home/xk]# 
[root@Kylin-V10-sp3 /home/xk]# 
[root@Kylin-V10-sp3 /home/xk]# tree /app
/app
├── nginx-01
├── nginx-02
├── nginx-03
├── nginx-04
├── nginx-05
├── nginx-06
├── nginx-07
├── nginx-08
├── nginx-09
└── nginx-10

11 directories, 0 files
[root@Kylin-V10-sp3 /home/xk]# chown -R xk.xk /app
[root@Kylin-V10-sp3 /home/xk]# 
[root@Kylin-V10-sp3 /home/xk]# ll /app/
总用量 0
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-01
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-02
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-03
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-04
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-05
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-06
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-07
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-08
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-09
drwxr-xr-x 2 xk xk 6  8月 28 22:15 nginx-10
[root@Kylin-V10-sp3 /home/xk]# 

2.2 修改权限

  • 根据数字形式修改权限.
  • 根据字符形式修改权限.
chmod 权限 文件/目录
chmod 700 nginx-01/
chmod -R 700 /app/

chmod go+rx nginx-01/ #给用户组和其他人位置上增加r和x权限
chmod u=rx nginx-01/ #给所有者位置上设置rx权限如果有其他权限则清除.
chmod 755 nginx-01
chmod u=rwx,g=rx,o=rx nginx-01 #设置755权限的字母写法.

# 给/etc/rc.d/rc.local 文件增加执行权限(红帽)
chmod +x /etc/rc.d/rc.local
# ubt/debian
touch /etc/rc.local
chmod +x /etc/rc.local

# chmod 修改权限 -R
    数字
    字符 ugo 
    +x执行权限
# chown 修改所有者 -R

2.3 文件的rwx权限详解⭐⭐⭐⭐⭐

2.3.1 概述
文件rwx权限    含义
r             # read 读取,是否可以查看文件内容
w             # write 修改,是否可以修改文件内容
x             # exec 可执行,一般是给命令或系统脚本使用.运行命令

准备工作

# 以下操作用root权限执行
# 创建文件夹
[root@Kylin-V10-sp3 ~]# mkdir -p /app/auth/
[root@Kylin-V10-sp3 ~]# 
[root@Kylin-V10-sp3 ~]# cd /app/auth/
[root@Kylin-V10-sp3 /app/auth]# 
# 创建测试文件
[root@Kylin-V10-sp3 /app/auth]# cat > 1.sh <<EOF
> df -h
> hostname
> ip a
> EOF
[root@Kylin-V10-sp3 /app/auth]# 
# 给测试文件添加权限
[root@Kylin-V10-sp3 /app/auth]# chmod 755 1.sh 
[root@Kylin-V10-sp3 /app/auth]# 
# 文件追加内容
[root@Kylin-V10-sp3 /app/auth]# echo uname -a >> 1.sh 
[root@Kylin-V10-sp3 /app/auth]#  
# 查看文件内容
[root@Kylin-V10-sp3 /app/auth]# cat 1.sh 
df -h
hostname
ip a
uname -a
[root@Kylin-V10-sp3 /app/auth]# 
# 执行sh脚本
[root@Kylin-V10-sp3 /app/auth]# ./1.sh 
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 459M     0  459M    0% /dev
tmpfs                    475M     0  475M    0% /dev/shm
tmpfs                    475M   19M  456M    4% /run
tmpfs                    475M     0  475M    0% /sys/fs/cgroup
/dev/mapper/klas-root     66G  4.0G   62G    7% /
tmpfs                    475M     0  475M    0% /tmp
/dev/mapper/klas-backup   32G  312M   32G    1% /backup
/dev/sda1               1014M  151M  864M   15% /boot
tmpfs                     95M     0   95M    0% /run/user/1000
tmpfs                     95M     0   95M    0% /run/user/0
Kylin-V10-sp3
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:8c:ff:3d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.36/24 brd 10.0.0.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::3596:15a7:b72a:6fee/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
Linux Kylin-V10-sp3 4.19.90-52.22.v2207.ky10.x86_64 #1 SMP Tue Mar 14 12:19:10 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@Kylin-V10-sp3 /app/auth]# 

2.3.2 测试文件权限
# 修改1.sh文件所有者和属组为xk root用户执行
[root@Kylin-V10-sp3 /app/auth]# chown xk.xk 1.sh
[root@Kylin-V10-sp3 /app/auth]# ll
总用量 4
-rwxr-xr-x 1 xk xk 29  8月 30 07:10 1.sh
[root@Kylin-V10-sp3 /app/auth]# 


# 测试r权限
# 修改1.sh文件所有者权限为r  root用户执行
[root@Kylin-V10-sp3 /app/auth]# chmod u=r 1.sh
[root@Kylin-V10-sp3 /app/auth]# ll
总用量 4
-r--r-xr-x 1 xk xk 29  8月 30 07:10 1.sh
[root@Kylin-V10-sp3 /app/auth]# 

# xk用户执行
[xk@Kylin-V10-sp3 /etc]$ cd /app/auth/
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ ll
总用量 4
-r--r-xr-x 1 xk xk 29  8月 30 07:10 1.sh
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ cat 1.sh 
df -h
hostname
ip a
uname -a
[xk@Kylin-V10-sp3 /app/auth]$ 

# 测试w权限
# 修改1.sh文件所有者权限为w  root用户执行
[root@Kylin-V10-sp3 /app/auth]# chmod u=w 1.sh
[root@Kylin-V10-sp3 /app/auth]# ll
总用量 4
--w-r-xr-x 1 xk xk 29  8月 30 07:10 1.sh
[root@Kylin-V10-sp3 /app/auth]# 

# xk 用户执行
[xk@Kylin-V10-sp3 /app/auth]$ echo hostnamectl >> 1.sh 
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ cat 1.sh   # 用户可以添加但是不能查看,不符合逻辑
cat: 1.sh: 权限不够
[xk@Kylin-V10-sp3 /app/auth]$ vi 1.sh  # 用vi 编辑看不到内容,加上r权限后正常
~                                                                                                                                                                          
~                                                                                                                                                                          
~                                                                                                                                                                          
~                                                                                                                                                                          
"1.sh" [Permission Denied]


# 测试x权限
# 修改1.sh文件所有者权限为x  root用户执行
[root@Kylin-V10-sp3 /app/auth]# chmod u=x 1.sh 
[root@Kylin-V10-sp3 /app/auth]# ll
总用量 4
---xr-xr-x 1 xk xk 41  8月 30 07:46 1.sh
[root@Kylin-V10-sp3 /app/auth]# 

# xk 用户执行
[xk@Kylin-V10-sp3 /app/auth]$ ./1.sh 
bash: ./1.sh: 权限不够
[xk@Kylin-V10-sp3 /app/auth]$ 

# 修改1.sh文件所有者权限为rx  root用户执行
[root@Kylin-V10-sp3 /app/auth]# chmod u=xr 1.sh 
[root@Kylin-V10-sp3 /app/auth]# 
[root@Kylin-V10-sp3 /app/auth]# ll
总用量 4
-r-xr-xr-x 1 xk xk 41  8月 30 07:46 1.sh
[root@Kylin-V10-sp3 /app/auth]# 

# xk 用户执行
[xk@Kylin-V10-sp3 /app/auth]$ ./1.sh 
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 459M     0  459M    0% /dev
tmpfs                    475M     0  475M    0% /dev/shm
tmpfs                    475M   19M  456M    4% /run
tmpfs                    475M     0  475M    0% /sys/fs/cgroup
/dev/mapper/klas-root     66G  4.0G   62G    7% /
tmpfs                    475M     0  475M    0% /tmp
/dev/mapper/klas-backup   32G  312M   32G    1% /backup
/dev/sda1               1014M  151M  864M   15% /boot
tmpfs                     95M     0   95M    0% /run/user/1000
tmpfs                     95M     0   95M    0% /run/user/0
Kylin-V10-sp3
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host 
      valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
   link/ether 00:0c:29:8c:ff:3d brd ff:ff:ff:ff:ff:ff
   inet 10.0.0.36/24 brd 10.0.0.255 scope global noprefixroute ens33
      valid_lft forever preferred_lft forever
   inet6 fe80::3596:15a7:b72a:6fee/64 scope link noprefixroute 
      valid_lft forever preferred_lft forever
Linux Kylin-V10-sp3 4.19.90-52.22.v2207.ky10.x86_64 #1 SMP Tue Mar 14 12:19:10 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
  Static hostname: Kylin-V10-sp3
        Icon name: computer-vm
          Chassis: vm
       Machine ID: 6853e90e34234ee78f85b3b8b3fdc032
          Boot ID: 0dcd69dd800c4bbbbeeadbcef49c214f
   Virtualization: vmware
 Operating System: Kylin Linux Advanced Server V10 (Lance)
           Kernel: Linux 4.19.90-52.22.v2207.ky10.x86_64
     Architecture: x86-64
[xk@Kylin-V10-sp3 /app/auth]$ 

# 总结
文件rwx权限    含义
r             # read 读取,是否可以查看文件内容
w             # write 修改,是否可以修改文件内容,需要r权限配合
x             # exec 可执行,一般是给命令或系统脚本使用.运行命令.需要r权限配合.)

2.4 目录的rwx权限详解⭐⭐⭐⭐⭐

2.4.1 概述
# Linux目录    rwx权限含义                                         说明 补充
  r           显示目录下面的内容ls/tree                             站在屋子门口看看屋子里面有什么
  w           强大,用户可以在这个目录下面创建,删除,重命名.            可以在屋子里面买一些新的桌椅板凳,删掉旧的桌椅板凳.
  x           是否可以进入到目录. 是否可以查看或修改目录下面属性信息   是否可以进入屋子
2.3.2 测试目录权限
# 环境准备 root运行
[root@Kylin-V10-sp3 /app/auth]# mkdir -p /app/auth/xkdir
[root@Kylin-V10-sp3 /app/auth]# 
[root@Kylin-V10-sp3 /app/auth]# 
[root@Kylin-V10-sp3 /app/auth]# cd /app/auth/xkdir/
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# touch xk{01..10}.txt
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# chown -R xk.xk /app/auth/xkdir/*
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth]# chmod u=r xkdir
[root@Kylin-V10-sp3 /app/auth]# 
[root@Kylin-V10-sp3 /app/auth]# ll
总用量 4
---xr-xr-x 1 xk xk  41  8月 30 07:46 1.sh
dr--r-xr-x 2 xk xk 166  8月 30 08:38 xkdir


# 目录r权限测试 xk用户操作
[xk@Kylin-V10-sp3 /app/auth]$ ll
总用量 4
---xr-xr-x 1 xk xk  41  8月 30 07:46 1.sh
dr--r-xr-x 2 xk xk 166  8月 30 08:38 xkdir
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ ls xkdir/
ls: 无法访问 'xkdir/xk01.txt': 权限不够
ls: 无法访问 'xkdir/xk02.txt': 权限不够
ls: 无法访问 'xkdir/xk03.txt': 权限不够
ls: 无法访问 'xkdir/xk04.txt': 权限不够
ls: 无法访问 'xkdir/xk05.txt': 权限不够
ls: 无法访问 'xkdir/xk06.txt': 权限不够
ls: 无法访问 'xkdir/xk07.txt': 权限不够
ls: 无法访问 'xkdir/xk08.txt': 权限不够
ls: 无法访问 'xkdir/xk09.txt': 权限不够
ls: 无法访问 'xkdir/xk10.txt': 权限不够
xk01.txt  xk02.txt  xk03.txt  xk04.txt  xk05.txt  xk06.txt  xk07.txt  xk08.txt  xk09.txt  xk10.txt
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ ll xkdir/
ls: 无法访问 'xkdir/xk01.txt': 权限不够
ls: 无法访问 'xkdir/xk02.txt': 权限不够
ls: 无法访问 'xkdir/xk03.txt': 权限不够
ls: 无法访问 'xkdir/xk04.txt': 权限不够
ls: 无法访问 'xkdir/xk05.txt': 权限不够
ls: 无法访问 'xkdir/xk06.txt': 权限不够
ls: 无法访问 'xkdir/xk07.txt': 权限不够
ls: 无法访问 'xkdir/xk08.txt': 权限不够
ls: 无法访问 'xkdir/xk09.txt': 权限不够
ls: 无法访问 'xkdir/xk10.txt': 权限不够
总用量 0
-????????? ? ? ? ?             ? xk01.txt
-????????? ? ? ? ?             ? xk02.txt
-????????? ? ? ? ?             ? xk03.txt
-????????? ? ? ? ?             ? xk04.txt
-????????? ? ? ? ?             ? xk05.txt
-????????? ? ? ? ?             ? xk06.txt
-????????? ? ? ? ?             ? xk07.txt
-????????? ? ? ? ?             ? xk08.txt
-????????? ? ? ? ?             ? xk09.txt
-????????? ? ? ? ?             ? xk10.txt
[xk@Kylin-V10-sp3 /app/auth]$ 

# root 用户给xkdir文件夹加上rx权限后正常  [root@Kylin-V10-sp3 /app/auth]# chmod u=rx xkdir
[xk@Kylin-V10-sp3 /app/auth]$ ls xkdir/
xk01.txt  xk02.txt  xk03.txt  xk04.txt  xk05.txt  xk06.txt  xk07.txt  xk08.txt  xk09.txt  xk10.txt
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ ll xkdir/
总用量 0
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk01.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk02.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk03.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk04.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk05.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk06.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk07.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk08.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk09.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk10.txt
[xk@Kylin-V10-sp3 /app/auth]$ 


# 目录w权限测试 xk用户操作
# root 用户给xkdir文件夹加上w权限 [root@Kylin-V10-sp3 /app/auth]# chmod u=w xkdir
[xk@Kylin-V10-sp3 /app/auth]$ echo hello > /app/auth/xkdir/xk01.txt
-bash: /app/auth/xkdir/xk01.txt: 权限不够
[xk@Kylin-V10-sp3 /app/auth]$ 

# root 用户给xkdir文件夹加上rw权限
[xk@Kylin-V10-sp3 /app/auth]$ echo hello > /app/auth/xkdir/xk01.txt
-bash: /app/auth/xkdir/xk01.txt: 权限不够
[xk@Kylin-V10-sp3 /app/auth]$ 
# root 用户给xkdir文件夹加上rwx权限
[xk@Kylin-V10-sp3 /app/auth]$ echo hello > /app/auth/xkdir/xk01.txt
[xk@Kylin-V10-sp3 /app/auth]$ 
[xk@Kylin-V10-sp3 /app/auth]$ cat /app/auth/xkdir/xk01.txt 
hello
[xk@Kylin-V10-sp3 /app/auth]$ 

# 删除文件,需要对文件所在目录拥有w权限(rwx)

2.3 文件和目录rwx权限总结⭐⭐⭐⭐⭐

# 权限     文件                                                  目录
r         是否可以查看文件内容cat/vim/grep/less/head/             是否可以查看目录内容ls/tree,需要x权限配合rx.
w         是否可以修改文件内容,需要r权限配合.一般叫rw >> > vim/vi   是否可以在目录下创建,删除,重命名,需要x权限配合,wx,一般rwx
x         是否可以运行文件(系统脚本,命令),需要r权限,rx或rwx.        是否可以进入目录是否可以查看或修改目录下文件属性

2.4 Permission denied典型故障⭐⭐⭐⭐⭐

# 排查流程:
1.定位目录、文件与用户的关系
2.定位与文件权限还是目录权限相关 
3.找到缺少的权限

2.5 网站框架与权限

文件权限644,属于root root -rw-r--r--
目录权限755,属于root root drwxr-xr-x

保护root方法

1. 普通用户xk sudo (xk ALL=(ALL) NOPASSWD: ALL)
2. 禁止root远程登录(ubt) vim /etc/ssh/sshd_config 有一个
PermitRootLogin yes 改为no
3. 修改远程登录端口号22 改为18326,vim /etc/ssh/sshd_config 有一个
#Port 22,改为Port 18326
4. 重启sshd systemctl restart sshd
5. 其他方法,定时分析安全日志
6. .....
  • 网站服务器,服务在运行的时候需要有个虚拟用户:假设www用户.
  • 假设代码目录/app/code/. 目录下面文件644,目录755,都属于root
  • 网站有上传功能或目录 /app/code/upload/ 目录下面文件644,目录755,都属于虚拟用户
  • 网站会限制上传类型.
  • 安全扫描.
    网站权限控制让网站安全方案
#1.网站通过虚拟用户运行,避免通过root.
#2.权限整体设置(最小化)
/app/code/
文件644 root root
目录755 root root
#3.遇到网站的用户需求上传文件
/app/code/upload/ 存放用户上传的内容.....
目录755 www www
用户的上传,就相当于www用户在upload目录下面创建文件.
#4.程序代码,控制上传文件的类型. 只能上传图片.视频.

2.6 Linux特殊属性

  • Linux中病毒后,会正常命令,常用的命令感染.
  • 通过给文件或命令加锁方式防止文件被修改.
  • 通过Linux特殊属性.
# lsattr 查看是否有特殊属性.
# chattr 修改或设置.
# a append只能追加. 无法删除内容,无法删除文件,无法移动文件.
# i immutable 永垂不朽的,无法毁灭.

[root@Kylin-V10-sp3 /app/auth/xkdir]# ll
总用量 4
-rw-r--r-- 1 xk xk 6  8月 30 09:00 xk01.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk02.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk03.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk04.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk05.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk06.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk07.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk08.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk09.txt
-rw-r--r-- 1 xk xk 0  8月 30 08:38 xk10.txt
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# lsattr 
-------------------- ./xk01.txt
-------------------- ./xk02.txt
-------------------- ./xk03.txt
-------------------- ./xk04.txt
-------------------- ./xk05.txt
-------------------- ./xk06.txt
-------------------- ./xk07.txt
-------------------- ./xk08.txt
-------------------- ./xk09.txt
-------------------- ./xk10.txt
[root@Kylin-V10-sp3 /app/auth/xkdir]# chattr +a xk01.txt 
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# lsattr
-----a-------------- ./xk01.txt
-------------------- ./xk02.txt
-------------------- ./xk03.txt
-------------------- ./xk04.txt
-------------------- ./xk05.txt
-------------------- ./xk06.txt
-------------------- ./xk07.txt
-------------------- ./xk08.txt
-------------------- ./xk09.txt
-------------------- ./xk10.txt
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# rm -f xk01.txt 
rm: 无法删除 'xk01.txt': 不允许的操作
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# echo nice to me you >> xk01.txt 
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# cat xk01.txt 
hello
nice to me you
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# chattr +i xk02.txt 
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# rm -f xk02.txt 
rm: 无法删除 'xk02.txt': 不允许的操作
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# echo nice to me you >> xk02.txt 
-bash: xk02.txt: 不允许的操作
[root@Kylin-V10-sp3 /app/auth/xkdir]# cat xk02.txt 
[root@Kylin-V10-sp3 /app/auth/xkdir]# 

小结:

  • 给系统命令和文件可以加上锁头.
  • 命令可以加上+i.
  • 文件可以加上+a.

2.7 Linux特殊权限

  • 9位权限,12位权限,剩下的3个权限都是特殊权限.
  • 特殊权限不推荐使用,未来做安全优化的时候要去定期检查是否有新增的文件
# Linux特殊权限               特点                            说明
suid etuid passwd命令      所有者的位置上有个s,执行权限         执行命令的时候具有这个命令所有者的权限.
sgid setgid                用户组的位置上有个s,执行权限         执行命令的时候具有这个命令用户组的权限.
sticky粘滞位 /tmp           目录,在其他人的位置上t,执行权限      目录具有这个权限(777),每个用户创建的文件只能自己管理.

查看特殊权限的数字表示(了解)

[root@Kylin-V10-sp3 /app/auth/xkdir]# stat /bin/passwd
  文件:“/bin/passwd”
  大小:30800     	块:64         IO 块:4096   普通文件
设备:fd00h/64768d	Inode:201841487   硬链接:1
权限:(4755/-rwsr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2024-08-28 16:33:07.099210130 +0800
最近更改:2022-04-20 14:01:07.000000000 +0800
最近改动:2024-08-17 10:46:56.564859778 +0800
创建时间:-
[root@Kylin-V10-sp3 /app/auth/xkdir]# 
[root@Kylin-V10-sp3 /app/auth/xkdir]# stat /tmp/
  文件:“/tmp/”
  大小:180       	块:0          IO 块:4096   目录
设备:2ah/42d	Inode:1           硬链接:9
权限:(1777/drwxrwxrwt)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2024-08-28 21:58:07.593148193 +0800
最近更改:2024-08-30 11:30:34.752745287 +0800
最近改动:2024-08-30 11:30:34.752745287 +0800
创建时间:-
[root@Kylin-V10-sp3 /app/auth/xkdir]# 

# 小结: passwd有个suid ,/tmp有个 粘滞位t 1777
posted @ 2024-09-01 16:16  老虎死了还有狼  阅读(16)  评论(0编辑  收藏  举报