LINUX从零开始——ENGINEER(云计算应用管理)——Day1 [ 基本权限和归属、附加权限、ACL策略管理]

一、环境准备
1.开启CentOS7虚拟机,以root用户登录

课前回顾:
1.创建用户的命令是什么?常用的选项都有那些?
useradd -u -d -G -s
2.修改已存在用户的属性命令是什么?常用的选项都有那些?
usermod -u -d -G -s -l
3.非交互式lisi设置密码为123 请写出该命令
echo 123 | passwd --stdin lisi
4.请写出 存放用户 基本信息 的配置文件
/etc/passwd
用户名:密码占位符X:用户的UID:用户基本组的GID:用户描述信息:家目录:登录的解释器
5.请写出 禁止用户登录系统的解释器程序
/sbin/nologin
6.将harry用户加入tedu组,请写出该命令
gpasswd -a harry tedu
7.请写出 组账号 基本信息 配置文件
/etc/group
8.如何判断一个用户是否存在?
id 或 查看/etc/passwd文件内容
9.如何判断一个组是否存在?
查看/etc/group
10.如何判断一个用户是否在users组中?
id 或 /etc/group
11./etc/passwd文件第六字段与第七字段,分别表示的含义?
家目录:登录的解释器
12.请写出您熟悉的Linux命令?(至少10条)
ls pwd cd cat hostname ifconfig poweroff reboot head tail grep less man

昨日习题:
案例1:为虚拟机配置以下静态地址参数
– 主机名:nb.tedu.cn
[root@A ~]# echo nb.tedu.cn > /etc/hostname
[root@A ~]# cat /etc/hostname
案例2:指定yum软件源

  1. 将光驱设备挂载到/os/centos目录,以/os/centos目录作为其访问点
  2. 利用/os/centos目录提供光盘内容作为软件源,构建本地Yum仓库
  3. 安装软件包gcc
    [root@A ~]# mkdir -p /os/centos
    [root@A ~]# mount /dev/cdrom /os/centos
    [root@A ~]# ls /os/centos
    [root@A ~]# vim /etc/yum.repos.d/dvd.repo
    [centos]
    name=centos7
    baseurl=file:///os/centos
    enabled=1
    gpgcheck=0
    [root@A ~]# yum -y install gcc

案例3:tar制作/释放归档压缩包(zcf、ztf、zxf、jcf、jtf、jxf、cf、tf)
首先创建/root/boothome/与/root/usrsbin/目录
1)备份/boot、/home这两个文件夹,保存为bh.tar.gz文件
2)查看bh.tar.gz文件内包含哪些内容
3)将bh.tar.gz释放到文件夹/root/boothome/下
4)备份/usr/sbin目录,保存为usr.tar.bz2文件
5)查看usr.tar.bz2文件内包含哪些内容
6)将usr.tar.bz2释放到/root/usrsbin/文件夹下
[root@A ~]# mkdir /root/boothome /root/usrsbin
[root@A ~]# tar -zcf /opt/bh.tar.gz /home /boot
[root@A ~]# ls /opt
[root@A ~]# tar -xf /opt/bh.tar.gz -C /root/boothome

[root@A ~]# tar -jcf /opt/usr.tar.bz2 /usr/sbin
[root@A ~]# ls /opt
[root@A ~]# tar -xf /opt/usr.tar.bz2 -C /root/usrsbin

案例4:添加并测试用户账号
1)创建一个名为stu01的用户账号
2)检查/etc/passwd、/etc/shadow文件的最后一行
3)检查/home/新增加的宿主目录(家目录)
4)为用户stu01设置一个密码(123456)
[root@A ~]# useradd stu01
[root@A ~]# grep stu01 /etc/passwd
[root@A ~]# grep stu01 /etc/shadow
[root@A ~]# ls /home
[root@A ~]# echo 123456 | passwd --stdin stu01

案例5:添加账号时设置不同属性
1)新建用户zh01,宿主目录位于/opt/zh01
2)新建系统账号sys01,将UID设为1234,登录Shell设为/sbin/nologin
3)为用户sys01设置密码,并测试是否能够登录
4)新建用户admin,将其基本组设为users,附加组设为adm、root
[root@A ~]# useradd -d /opt/zh01 zh01
[root@A ~]# grep zh01 /etc/passwd
[root@A ~]# useradd -u 1234 -s /sbin/nologin sys01
[root@A ~]# echo 123 | passwd --stdin sys01
[root@A ~]# grep sys01 /etc/passwd
[root@A ~]# useradd -g users -G adm,root admin

案例6:passwd设置密码
1)交互式给用户zh01设置密码123456
2)采用–stdin方式将用户zh01的密码设为654321
[root@A ~]# passwd zh01
[root@A ~]# echo 654321 | passwd --stdin zh01

案例7:usermod修改用户
1)新建一个用户zh03,将宿主目录设为/opt/home03,并设置密码
2)设置zh03密码为redhat
3)将用户zh03的宿主目录改为/home/zh03
4)将用户sys01的登录Shell改为/bin/bash
[root@A ~]# useradd -d /opt/home03 zh03
[root@A ~]# grep zh03 /etc/passwd
[root@A ~]# echo redhat | passwd --stdin zh03
[root@A ~]# usermod -d /home/zh03 zh03
[root@A ~]# grep zh03 /etc/passwd
[root@A ~]# usermod -s /bin/bash sys01

案例8:组账号基本管理
1)新建组账号stugrp
2)为stugrp组添加三个成员用户(user01、root、zhangsan)
3)从stugrp组删除一个成员(user01)
[root@A ~]# groupadd stugrp
[root@A ~]# useradd user01
[root@A ~]# useradd zhangsan
[root@A ~]# gpasswd -M user01,root,zhangsan stugrp
[root@A ~]# grep stugrp /etc/group
[root@A ~]# gpasswd -d user01 stugrp
[root@A ~]# grep stugrp /etc/group

####################################################################################################
cron任务概述
•用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务
•软件包:cronie、crontabs
•系统服务:crond
•日志文件:/var/log/cron

使用 crontab 命令
编辑:crontab -e [-u 用户名]
查看:crontab -l [-u 用户名]
清除:crontab -r [-u 用户名]

计划任务书写格式
•配置格式可参考 /etc/crontab 文件
–分 时 日 月 周 任务命令行(绝对路径)

30 8 * * * #每天的早上8:30
30 23 * * * #每天的晚上11:30

30 23 * * 5 #每周五的晚上11:30
30 23 * * 1-5 #每周的周一至周五,晚上11:30
30 23 * * 1,4,7 #每周的周一、周四、周日,晚上11:30

30 23 1 * * #每月的1号,晚上11:30
30 23 1 * 1 #每月的1号,晚上11:30 或者 每周一,晚上11:30

          •   #每分钟执行一次
            
  • 8 * * * #每天早上8点,每分钟执行一次,执行60次
    */5 * * * * #每隔5分钟执行一次
    */2 * * * * #每隔2分钟执行一次

*:匹配范围内任意时间
,:分隔多个不连续的时间点
-:指定连续时间范围
/n:指定时间频率,每n …

每分钟记录当前的系统时间,写入到/opt/time.txt
[root@A ~]# date
2020年 03月 03日 星期二 10:17:06 CST
[root@A ~]# date >> /opt/time.txt
[root@A ~]# cat /opt/time.txt
[root@A ~]# crontab -e #编辑计划任务,调用文本编辑器

          • date >> /opt/time.txt

[root@A ~]# crontab -l #查看当前用户的计划任务

          • date >> /opt/time.txt

[root@A ~]# cat /opt/time.txt

[root@A ~]# crontab -e #删除计划任务,利用文本编辑器方法进行删除整行内容
crontab: installing new crontab
[root@A ~]#

##################################################################################################
基本权限和归属
•访问权限
–读取:允许查看内容-read r
–写入:允许修改内容-write w
–可执行:允许运行和切换-excute x

对于文本文件:
r:cat less head tail grep
w:vim(可以保存) > >>
x:针对Shell脚本

•归属关系
–所有者:拥有此文件/目录的用户-user u
–所属组:拥有此文件/目录的组-group g
–其他用户:除所有者、所属组以外的用户-other o

zhangsan(所有者) zhangsan组(所属组) 1.txt

解析文件/目录权限
•执行 ls -l … … 命令查看
–输出信息包括7个字段
权限位 硬连接数 属主 属组 大小 最后修改时间 文件/目录名称

以-开头:文本文件
以d开头:目录
以l开头:快捷方式
[root@A ~]# ls -l /etc/passwd
[root@A ~]# ls -ld /etc/
[root@A ~]# ls -ld /root/
[root@A ~]# ls -ld /home/

[root@A ~]# useradd natasha
[root@A ~]# ls -ld /home/natasha/

[root@A ~]# ls -l /etc/shadow
[root@A ~]# ls -l /etc/gshadow

[root@A ~]# ls -ld /tmp/ #默认具备附加权限(特殊权限)

权限控制
设置基本权限
•chmod命令
–格式:chmod [ugoa] [±=][rwx] 文件…
chmod [nnn] 文件…
•常用命令选项: -R:递归修改权限

[root@A ~]# mkdir /nsd10
[root@A ~]# ls -ld /nsd10
[root@A ~]# chmod u-w /nsd10 #所有者去掉w权限
[root@A ~]# ls -ld /nsd10
[root@A ~]# chmod u+w /nsd10 #所有者加上w权限
[root@A ~]# ls -ld /nsd10
[root@A ~]# chmod g+w /nsd10 #所属组加上w权限
[root@A ~]# ls -ld /nsd10
[root@A ~]# chmod o=rwx /nsd10 #其他人重新定义权限为rwx
[root@A ~]# ls -ld /nsd10
[root@A ~]# chmod o=r /nsd10 #其他人重新定义权限为r
[root@A ~]# ls -ld /nsd10
root@A ~]# chmod a=r /nsd10 #所有人重新定义权限为r
[root@A ~]# ls -ld /nsd10
[root@A ~]# chmod a=rwx /nsd10 #所有人重新定义权限为rwx
[root@A ~]# ls -ld /nsd10
[root@A ~]# chmod u=rwx,g=rx,o=— /nsd10 #分别为所有者、属组、其他人重新定义权限
[root@A ~]# ls -ld /nsd10

[root@A ~]# mkdir -p /opt/aa/bb/cc/dd
[root@A ~]# ls -R /opt/aa
[root@A ~]# chmod -R o=— /opt/aa #递归设置权限
[root@A ~]# ls -ld /opt/aa
[root@A ~]# ls -ld /opt/aa/bb/
[root@A ~]# ls -ld /opt/aa/bb/cc/
[root@A ~]# ls -ld /opt/aa/bb/cc/dd/

##########################################################################################################

Linux中如何判断一个用户具备的权限
1.首先判断用户对于该数据所处的身份 顺序:所有者>所属组>其他人 原则:匹配及停止
2.查看相应身份的权限位

对于目录权限的影响:
r:可以查看目录下内容
w:可以进行创建、改名、删除、移动…修改目录下内容的操作
x:是否可以切换到此目录下,一位用户能否cd到目录下,只和x权限有关

Ctrl+shift+t:可以在当前终端在开启一个标签页(新开一个终端)
[root@A ~]# useradd lisi
[root@A ~]# id lisi

以root用户新建/nsddir/目录,在此目录下新建readme.txt文件
并进一步完成下列操作
1)使用户lisi能够在此目录下创建子目录 切换用户 su - lisi
chmod o+w /nsddir/
2)使用户lisi不能够在此目录下创建子目录
chmod o-w /nsddir/
3)使用户lisi能够修改readme.txt文件
chmod o+w /nsddir/readme.txt
4)调整此目录的权限,使所有用户都不能cd进入此目录
chmod u-x,g-x,o-x /nsddir/ 或者 chmod a-x /nsddir
5)为此目录及其下所有文档设置权限 rwxr-x—
chmod -R u=rwx,g=rx,o=— /nsddir/

#################################################################################################################
权限的数字方式表示:
权限位的8进制数表示
r、w、x分别对应4、2、1,后3组分别求和
[root@A ~]# mkdir /nsd13
[root@A ~]# ls -ld /nsd13

[root@A ~]# chmod 700 /nsd13
[root@A ~]# ls -ld /nsd13

[root@A ~]# chmod 007 /nsd13
[root@A ~]# ls -ld /nsd13

[root@A ~]# chmod 750 /nsd13
[root@A ~]# ls -ld /nsd13

[root@A ~]# chmod 777 /nsd13
[root@A ~]# ls -ld /nsd13

#################################################################################################################
文件/目录的默认权限
默认情况下:目录的默认权限为755 文件的默认权限为644
–取决于 umask 设置
[root@A ~]# umask #显示当前umask值(权限掩码值)
0022
[root@A ~]# umask 077
[root@A ~]# umask

[root@A ~]# mkdir /nsd15
[root@A ~]# ls -ld /nsd15

[root@A ~]# touch /nsd15/1.txt
[root@A ~]# ls -l /nsd15/1.txt

[root@A ~]# umask 022
[root@A ~]# umask
[root@A ~]# umask -S
u=rwx,g=rx,o=rx

•创建新文件夹时,直接设置权限
–利用mkdir的-m选项
[root@svr7 ~]# mkdir -m 755 udir2
[root@svr7 ~]# ls -ld udir2
drwxr-xr-x. 2 root root 4096 11月 4 20:00 udir2

#################################################################################################################
设置归属关系
•chown命令
–chown 属主 文件…
–chown 属主:属组 文件…
–chown :属组 文件…
•常用命令选项
–-R:递归修改权限

chmod :修改权限
chown:修改归属关系

[root@A ~]# mkdir /nsd16
[root@A ~]# ls -ld /nsd16

[root@A ~]# useradd dc #创建dc用户
[root@A ~]# groupadd mn #创建mn组

[root@A ~]# chown dc:mn /nsd16 #修改所有者与所属组
[root@A ~]# ls -ld /nsd16

[root@A ~]# chown lisi /nsd16 #仅修改所有者
[root@A ~]# ls -ld /nsd16

[root@A ~]# chown zhangsan /nsd16 #仅修改所有者
[root@A ~]# ls -ld /nsd16

[root@A ~]# chown :root /nsd16 #仅修改所属组
[root@A ~]# ls -ld /nsd16

利用root用户新建/nsd20目录,并进一步完成下列操作
1)将属主设为gelin01,属组设为tarena组
[root@server0 /]# useradd gelin01
[root@server0 /]# groupadd tarena
[root@server0 /]# chown gelin01:tarena /nsd20
2)使用户gelin01对此目录具有rwx权限
除属主与属组之外的人,对此目录无任何权限
[root@server0 /]# chmod o=— /nsd20
3)使用户gelin02能进入、查看此目录
[root@server0 /]# useradd gelin02
[root@server0 /]# gpasswd -a gelin02 tarena
4)将gelin01加入tarena组, 将nsd20目录的权限设为rw-r-x—
再测试gelin01用户能否进入此目录
[root@server0 /]# chmod u=rw,g=rx /nsd20

################################################################################################################
附加权限(特殊权限)的作用
•Set GID权限
–占用属组(Group)的 x 位
–显示为 s 或 S,取决于属组是否有 x 权限
–对目录有效
–在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份
[root@A ~]# groupadd tarena #创建组tarena
[root@A ~]# mkdir /nsd22
[root@A ~]# chown :tarena /nsd22 #修改所属组身份
[root@A ~]# ls -ld /nsd22

[root@A ~]# mkdir /nsd22/abc01
[root@A ~]# ls -ld /nsd22/abc01

[root@A ~]# chmod g+s /nsd22 # 赋予Set GID权限
[root@A ~]# ls -ld /nsd22

[root@A ~]# mkdir /nsd22/abc02
[root@A ~]# ls -ld /nsd22/abc02

•粘滞位,Sticky Bit 权限
–占用其他人(Other)的 x 位
–显示为 t 或 T,取决于其他人是否有 x 权限
–适用于目录,用来限制用户滥用写入权
–在设置了粘滞位的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档

[root@A ~]# mkdir /home/public
[root@A ~]# chmod 777 /home/public
[root@A ~]# ls -ld /home/public
[root@A ~]# chmod o+t /home/public
[root@A ~]# ls -ld /home/public
#############################################################################################
课后习题:
案例1:计划任务
-指定一个计划任务,以root身份,每2分钟记录当前的系统时间,写入到/opt/two.txt

案例2:chmod权限设置
1)以root用户新建/nsddir/目录,在该目录下新建文件readme.txt
mkdir /nsddir touch /nsddir/readme.txt
2)使用户zhangsan能够在/nsddir/目录下创建/删除子目录
chmod o+w /nsddir
3)使用户zhangsan能够修改/nsddir/readme.txt文件的容
chmod o+w /nsddir/readme.txt chmod -R o+w /nsddir

案例3:chown归属设置
1)新建/tarena1目录
mkdir /tarena1
a)将属主设为gelin01,属组设为tarena组
chown gelin01:tarena /tarena1
b)使用户gelin01对此目录具有rwx权限,其他人对此目录无任何权限
chown u=rwx,o=— /tarena1
2)使用户gelin02能进入、查看/tarena1文件夹(提示:将gelin02加入所属组) useradd -G tarena gelin02

3)新建/tarena2目录    mkdir  /tarena2
a)将属组设为tarena  chown  :tarena  /tarena2
b)使tarena组的任何用户都能在此目录下创建、删除文件
       chmod   g+w  /tarena2
4)新建/tarena/public目录

mkdir -p -m 777 /tarena/public
a)使任何用户对此目录都有rwx权限

案例4:权限设置
1、创建文件夹/data/test,设置目录的访问权限,使所有者和所属组具备读写执行的权限;其他人无任何权限。
mkdir -p -m 770 /tarena/public
2、递归修改文件夹/data/test的归属使所有者为zhangsan,所属组为tarena。 chown -R zhangsan:tarena /data/test
3、请实现在test目录下,新建的所有子文件或目录的所属组都会是tarena。 chmod g+s /data/test

案例5:虚拟机上操作
创建一个共用目录 /home/admins,要求如下:
– 此目录的所属组是 adminuser
– adminuser 组的成员对此目录有读写和执行的权限,并且其他用户没有任何权限
– 在此目录中创建的文件,其所属组会自动设置为 属于 adminuser 组

发布了0 篇原创文章 · 获赞 0 · 访问量 113

猜你喜欢

转载自blog.csdn.net/hufei_/article/details/105024720