提前预习整理的问题:
- 为什么awk命令筛选的列都在一行展示了
答:因为printf 和print
[root@localhost tmp]# awk -F':' '$3>1000{print$1}' ./passwd
nfsnobody
mysql
ftpuser01
test
test1
test2
test3
[root@localhost tmp]# awk -F':' '$3>1000{printf$1}' ./passwd
nfsnobodymysqlftpuser01testtest1test2test3[root@localhost tmp]#
创建用户和组应用场景
1.创建 dev 与 ops 两个组;
2.创建 bob 用户,设定基本为 dev ,密码为 123 ;
3.创建 alice 用户,设定基本为 ops ,密码为 123 ;
4.创建 /opt/reosurce 文件,然后修改属组为 ops 、权限为 6645.测试发现 alice 用户可以读写,而 bob 用户仅可以查看;6.现在希望 bob 也能够对文件进行读写,如何快速实现 (为 bob 添加 ops 附加组)
[root@localhost ~]# groupadd dev
[root@localhost ~]# groupadd ops
[root@localhost ~]# useradd -g dev bob
[root@localhost ~]# echo '123' | passwd --stdin bob
Changing password for user bob.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# user -g ops alice
bash: user: command not found...
[root@localhost ~]# useradd -g ops alice
[root@localhost ~]# echo '123' | passwd --stdin alice
Changing password for user alice.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# mkdir /opt/resource
[root@localhost ~]# touch /opt/resource
[root@localhost ~]# rmdir /opt/resource
[root@localhost ~]# touch /opt/resource
[root@localhost ~]# ll /opt/resource
-rw-r--r-- 1 root root 0 Nov 9 22:32 /opt/resource
[root@localhost ~]# chown root:ops /opt/resource
[root@localhost ~]# chmod 664 /opt/resource
[root@localhost ~]# ll /opt/resource
-rw-rw-r-- 1 root ops 0 Nov 9 22:32 /opt/resource
[root@localhost ~]# usermod -G ops bob
[root@localhost ~]#
[root@localhost ~]# id bob
uid=1007(bob) gid=10000(dev) groups=10000(dev),10001(ops)
[root@localhost ~]#
权限设定方案应用场景
场景1: 针对 hr 部门的访问目录 /data/hr 设置权限,要求如下。 1.超级管理员 root 用户和 hr 组的员工可以读、写、执行。2.其他用户或者组没有任何权限o
软链接应用场景
软件升级
[root@localhost tmp]# mkdir -p ./data/www_v1
[root@localhost tmp]# echo '123' > ./data/www_v1/index.html
[root@localhost tmp]# ln -s /root/tmp/data/www_v1 /root/tmp/data/www
[root@localhost tmp]# ll /root/tmp/data/
total 0
lrwxrwxrwx 1 root root 21 Nov 10 23:50 www -> /root/tmp/data/www_v1
drwxr-xr-x 2 root root 35 Nov 10 23:46 www_v1
[root@localhost tmp]# cat /root/tmp/data/www/index.html
123
[root@localhost tmp]# mkdir /root/tmp/data/www
www/ www_v1/
[root@localhost tmp]# mkdir /root/tmp/data/www_v2/ && echo '456' > /root/tmp/data/www_v2/index.html
[root@localhost tmp]# rm -rf /root/tmp/data/www && ln -s /root/tmp/data/www_v2/ /root/tmp/data/www
[root@localhost tmp]# cat /root/tmp/data/www/index.html
456
[root@localhost tmp]#
模拟innode分配数用完,但磁盘空间没用完场景
每次创建一个文件都需要一个innode编号
[root@localhost ~]# dd if=/dev/zero of=/opt/bigdata bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 0.0186186 s, 1.1 GB/s
[root@localhost ~]# mkdir /inode
[root@localhost ~]# mkfs.xfs /opt/bigdata
meta-data=/opt/bigdata isize=512 agcount=1, agsize=5120 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5120, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /opt/bigdata /inode/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 22M 1.9G 2% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda3 98G 11G 88G 11% /
/dev/sda1 297M 206M 92M 70% /boot
tmpfs 378M 36K 378M 1% /run/user/0
/dev/loop0 17M 1.1M 16M 7% /inode
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 478658 381 478277 1% /dev
tmpfs 482654 1 482653 1% /dev/shm
tmpfs 482654 1662 480992 1% /run
tmpfs 482654 16 482638 1% /sys/fs/cgroup
/dev/sda3 51225600 174118 51051482 1% /
/dev/sda1 153600 353 153247 1% /boot
tmpfs 482654 21 482633 1% /run/user/0
/dev/loop0 10304 3 10301 1% /inode
[root@localhost ~]# ll /inode/
total 0
[root@localhost ~]# touch /inode/{1..10304}
touch: cannot touch ‘/inode/10302’: No space left on device
touch: cannot touch ‘/inode/10303’: No space left on device
touch: cannot touch ‘/inode/10304’: No space left on device
[root@localhost ~]#
大量的小文件,会消耗innode,一旦被使用完;就会提示空间不足,实际情况空间还能继续存数据;
大文件存储;消耗1个innode,多个Block,如果是block会占用完毕,说明空间是真的不足了;
特殊权限SUID产生背景
普通用户可以修改自己的密码在于 passwd 命令本身,该命令拥有特殊权限 SetuID 也就是在属主的权限位的执行权限上是 s 那如何理解特殊权限 etuD : 当一个执行文件设置setUID 后,用户在执行这个文件时将以文件所有者的身份来执行。
[root@localhost ~]# ll /etc/shadow
---------- 1 root root 1633 Nov 9 22:31 /etc/shadow
[root@localhost ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 27856 Mar 31 2020 /usr/bin/passwd
[root@localhost ~]#
给cat命令加s权限
[root@localhost ~]# echo "666" > /tmp/test.txt
[root@localhost ~]# cat /tmp/test.txt
666
[root@localhost ~]# ll /tmp/test.txt
-rw-r--r-- 1 root root 4 Nov 12 05:30 /tmp/test.txt
[root@localhost ~]# su - bob
[bob@localhost ~]$ cat /tmp/test.txt
666
[bob@localhost ~]$ exit
logout
[root@localhost ~]# chmod 700 /tmp/test.txt
[root@localhost ~]# su - bob
Last login: Sat Nov 12 05:31:18 PST 2022 on pts/26
[bob@localhost ~]$ cat /tmp/test.txt
cat: /tmp/test.txt: Permission denied
[bob@localhost ~]$ exit
logout
[root@localhost ~]# ll /usr/bin/cat
-rwxr-xr-x 1 root root 54080 Nov 16 2020 /usr/bin/cat
[root@localhost ~]# chmod u+s /usr/bin/cat
[root@localhost ~]# ll /usr/bin/cat
-rwsr-xr-x 1 root root 54080 Nov 16 2020 /usr/bin/cat
[root@localhost ~]# su - bob
Last login: Sat Nov 12 05:31:51 PST 2022 on pts/26
[bob@localhost ~]$ cat /tmp/test.txt
666
[bob@localhost ~]$
SGID场景说明
需求描述
系统有两个用户,分别为 ex1 与 ex2 ,这两个用户都拥有 example 附加组;。
1.这两个用户需要共同拥有 /data/code 目录的开发权;
2.互相之间能修改彼此的文件,且该目录不允许其他人进入查阅;
文章评论