首页 > 编程语言 >程序与设计

程序与设计

时间:2023-05-20 19:34:34浏览次数:33  
标签:文件 程序 用户 命令 设计 权限 root 目录

shell命令概述

Shell作用:命令解释器

介于操作系统内核与用户之间,负责解释命令行

获得命令帮助

内部命令help

命令的“--help” 选项

使用man命令阅读手册页

命令行编辑的几个辅助操作
 Tab键:自动补齐
 反斜杠“\”:强制换行
 快捷键 Ctrl+U:清空至行首
 快捷键 Ctrl+K:清空至行尾
 快捷键 Ctrl+L:清屏

Linux命令行的格式

Linux命令的通用命令格式:命令字 [选项] [参数] 选项及参数的含义 选项:用于调节命令的具体功能 以 “-”引导短格式选项(单个字符),例如“-l” 以“--”引导长格式选项(多个字符),例如“--color” 多个短格式选项可以写在一起,只用一个“-”引导,例如“-al” 参数:命令操作的对象,如文件、目录名等

[root@localhost ~]# ls  -l   /home
 总计 8
 drwx------ 2 benet benet 4096 09-08 08:50 benet

文件和目录管理

目录操作命令:pwd、cd、ls、mkdir

pwd命令
   用途:查看工作目录(Print Working Directory)
 cd命令
   用途:切换工作目录(Change Directory)
   格式:cd  [目录位置]
 ls命令
   用途:列表(List)显示目录内容 
   格式:ls  [选项]...  [目录或文件名]
   常用命令选项
     -l :以长格式显示
     -a:显示所有子目录和文件的信息,包括隐藏文件
     -ld:显示目录本身的具体信息
     --color:以颜色区分不同类型文件
 mkdir命令
   用途:创建新的目录(Make Directory) 
   格式:mkdir  [-p]  [/路径/]目录名

文件操作命令:touch、cp、rm、mv、find

touch命令
   用途:新建空文件,或更新文件时间标记
   格式:touch  文件名…
 cp命令
   用途:复制(Copy)文件或目录
   格式:cp  [选项]...  源文件或目录…  目标文件或目录
 rm命令
   用途:删除(Remove)文件或目录
   格式:rm  [选项]...  文件或目录
 rmdir命令
    用途:删除(directory)目录
 mv命令
   用途:移动(Move)文件或目录
     —— 若如果目标位置与源位置相同,则相当于改名
   格式:mv  [选项]...  源文件或目录…  目标文件或目录
 find命令
   用途:用于查找文件或目录
   格式:find  [查找范围]  [查找条件]
   常用查找条件
     -name:按文件名称查找
     -user:按文件属主查找
     -type:按文件类型查找
 根据文件的类型进行查找,这里的类型指的是普通文件(f)、目录(d)

文件内容操作命令:cat、less、grep

cat命令
   用途:显示出文件的全部内容
   格式:cat  目标文件
 less命令
   用途:全屏方式分页显示文件内容
   交互操作方法:
    按Enter键向下逐行滚动
    按空格键向下翻一屏、按b键向上翻一屏
    按q键退出
 grep命令
   用途:在文件中查找并显示包含指定字符串的行
   格式:grep  [选项]...  查找条件  目标文件
   常用命令选项
     -i:查找时忽略大小写
     -v:反转查找,输出与查找条件不相符的行 
   查找条件设置
     要查找的字符串以双引号括起来
     “^……”表示以……开头,“……$”表示以……结尾
     “^$”表示空行

归档及压缩命令:tar

tar命令
 用途:制作归档文件、释放归档文件
 格式:tar  [选项]...  归档文件名  源文件或目录
               tar  [选项]...  归档文件名  [-C 目标目录]
 常用命令
 打包:
 tar  -czvf  [存放路径]归档文件名.tar.gz  源文件或目录
 或  tar  -cjvf  [存放路径]归档文件名.tar.bz2  源文件或目录
 解包:
 tar  -xzvf  [存放路径]归档文件名.tar.gz  [-C  解压目录]
 或  tar  -xjvf  [存放路径]归档文件名.tar.bz2  [-C  解压目录]

Bash的命令历史

命令历史
   保存用户曾经执行过的命令操作
 查看历史命令 
   使用↑、↓按键逐条翻看,允许编辑并重复执行
   执行:history
 清除历史命令:执行:history -c
 调用历史命令:!n:执行历史记录中的第n条命令

Bash的命令别名

命令别名
   为使用频率较高的复杂命令行设置简短的调用名称
 查看命令别名
   格式:alias  [别名]
 设置命令别名
   执行:alias  别名='实际执行的命令'
 取消已设置的命令别名 
   格式:unalias  别名
         unalias  -a

重定向

将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上


输出重定向实例
    将命令输出重定向到文件
  将标准输出重定向到文件
  $ ls /etc/ > etcdir
    将标准输出重定向追加到文件
  $ ls /etc/sysconfig/ >> etcdir 
    将错误输出重定向到文件
  $ nocmd 2> errfile
    将标准输出和错误输出重定向到文件
  $ ls afile bfile &> errfile

vim文本编辑器

文本编辑器的作用: 维护Linux系统中的各种配置文件 编写shell脚本

vim编辑器的工作模式

三种工作模式:命令模式、输入模式、末行模式

1)命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作
 2)输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-- INSERT --”的状态提示信息
 3)末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符

命令模式中的基本操作

光标移动

光标方向移动
  
行内快读跳转
  ctrl+F:向下翻动一页
  ctrl+B:想上翻动一页
行间快速跳转
  1G或gg:跳转到文件的首页
  G:跳转到文件的末尾行
行号显示:
  set nu:在编辑器中显示行号
  :set nonu:取消编辑器中的行号显示

复制粘贴删除

程序与设计_字段

文件内容查找

程序与设计_文件系统_02

撤销编辑及保存退出

u

按一次取消最近的一次操作

多次重复,恢复已进行的多步操作

U

用于取消对当前行所做的所有编辑

ZZ

保存当前的文件内容并退出vi编辑器

末行模式中的基本操作

保存文件及退出vi编辑器

功能

命令

保存文件

:w


:w /root/newfile

退出vi

:q


:q!

保存文件退出vi

:wq

打开新文件或读入其他文件内容

命令

功能

:e ~/install.log

打开新的文件进行编辑

:r /etc/filesystems

在当前文件中读入其他文件内容

文件内容替换

命令

功能

:s /old/new

将当前行中查找到的第一个字符"old"串替换为"new"

:s /old/new/g

将当前行中查找到的所有字符串"old"替换为"new"

:## s/old/new/g

在行号"##"范围内替换所有的字符串"old"为"new"

:% s/old/new/g

在整个文件范围内替换所有的字符串:"old"为"new"

:s /old/new/c


在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认



用户和组账号概述

Linux基于用户身份对资源访问进行控制 用户帐号: 超级用户root、普通用户、 程序用户

超级用户,即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统

普通用户帐号一般只在用户自己的宿主目录中有完全权限

程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin、daemon、ftp、mail等

组帐号: 基本组(私有组) 一个用户一个 只是标识 附加组(公共组)一个用户可以有一个或多个附加组 可以设置权限 UID和GID: UID(User Identity,用户标识号) 0—root;1-200:“系统用户”,静态分配给红帽的系统程序;

201-999:当装软件时,才会动态分配;1000-60000:普通用户分配的范围

GID(Group Identify,组标识号)

用户账号文件——password

用于保存用户的帐号基本信息

文件位置:/etc/passwd

每一行对应一个用户的帐号记录

[root@localhost ~]# tail -2 /etc/passwd
 sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
 student:x:500:500:Student User:/home/student:/bin/bash
字段1:用户帐号的名称
  字段2:用户密码字串或者密码占位符“x”
  字段3:用户帐号的UID号
  字段4:所属基本组帐号的GID号
  字段5:用户全名
  字段6:宿主目录
  字段7:登录Shell信息

用户账号文件——shadow

用于保存密码字串、密码有效期等信息

文件位置:/etc/shadow

每一行对应一个用户的密码记录

[root@localhost ~]# tail -2 /etc/shadow
 sabayon:!!:15495:0:99999:7:::
 student:$1$po/zD0XK$4HSh/Aeae/eJ6dNj1k7Oz1:15495:0:99999:7:::
字段1:用户帐号的名称
  字段2:加密的密码字串信息
  字段3:上次修改密码的时间(距离1970.1.1)
  字段4:密码的最短有效天数,默认值为0
  字段5:密码的最长有效天数,默认值为99999
  字段6:提前多少天警告用户口令将过期,默认值为7
  字段7:在密码过期之后多少天禁用此用户
  字段8:帐号失效时间,默认值为空
  字段9:保留字段(未使用)

组账号文件—group、gshadow

与用户账号文件类似

/etc/group:保存组帐号基本信息 /etc/gshadow:保存组帐号的密码信息

[root@localhost ~]# grep "adm" /etc/group
 sys:x:3:root,bin,adm
 adm:x:4:root,adm,daemon

添加用户账号

useradd命令 格式:useradd [选项]... 用户名 常用命令选项 -u:指定 UID 标记号 -g:指定用户的基本组名(或UID号) -G:指定用户的附加组名(或GID号) -s:指定用户的登录Shell

不添加任何选项,只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户帐号 
 演示添加用户的操作:
 —创建名为st02的用户帐号,并将其UID号指定为504
     [root@localhost ~]# useradd -u 504 st02
     [root@localhost ~]# tail -1 /etc/passwd
     st02:x:504:504::/home/st02:/bin/bash
 ——创建一个考试测试用的帐号exam01,指定属于users组 ,该帐号于2009-07-30失效
     [root@localhost ~]# useradd -g users -e 2009-07-30 exam01
     展示/etc/passwd、/etc/shadow文件中的变化
     说明:使用adduser命令也可以添加用户帐号,在RHEL5系统中adduser命令实际上是useradd命令的符号链接
     useradd  -s  /sbin/nologin  strlt

设置/更改用户口令

passwd命令 格式:passwd [选项]... 用户名 常用命令选项 -d:清空用户的密码,使之无需密码即可登录 -l:锁定用户帐号 -S:查看用户帐号的状态(是否被锁定) -u:解锁用户帐号

修改用户账号的属性

usermod命令 格式:usermod [选项]... 用户名 常用命令选项 -L:锁定用户账户 -U:解锁用户账户 以下选项与useradd命令中的含义相同 -u、-g、-G、-s

删除用户账号

userdel命令 格式:userdel [-r] 用户名 添加 -r 选项时,表示连用户的宿主目录一并删除

[root@localhost ~]# useradd stu01
 [root@localhost ~]# ls -ld /home/stu01/
 drwx------ 2 stu01 stu01 4096 09-09 12:38 /home/stu01/
 [root@localhost ~]# userdel -r stu01
 [root@localhost ~]# ls -ld /home/stu01/
 ls: /home/stu01/: 没有那个文件或目录

改变用户密码期限

chage命令 格式:chage [选项]... 用户帐号名 常用命令选项 -M:密码的最长有效天数 -m:密码的最短有效天数 -W:密码的警告天数 -I:密码的有效天数 -E:账号的过期时间

查看密码的有效天数:chage -l root
 chage -M 60 root   密码的最长有效天数
 chage -m 60 root   密码的最短有效天数

组管理命令

groupadd命令 格式:groupadd [-g GID] 组帐号名 组成员管理: 格式:gpasswd [选项]... 组帐号名 删除组帐号: 格式:groupdel 组帐号名

用户和组账号查询

id命令 用途:查询用户身份标识 格式:id [用户名] groups命令 用途:查询用户所属的组 格式:groups [用户名] users、w 、who命令 用途:查询已登录到主机的用户信息

主要有哪两个用户帐号文件,各有什么作用?
 如何锁定、解锁用户帐号?
 在添加用户帐号时,如何设置其失效时间?
 如何设置一个组的多个用户成员?
 
 部分答案提示:
 【1】/etc/passwd、/etc/shadow
 【2】锁定帐号:usermod  -L  用户名、passwd  -l  用户名 ; 解锁帐号: usermod  -U  用户名、passwd  -u  用户名 
 【3】useradd -e YYYY-mm-dd 用户名  或者  usermod -e YYYY-mm-dd 用户名
 【4】~/.bash_profile、~/.bashrc、~/.bash_logout
 【5】gpasswd  -M  用户1,用户2,用户3  组名

实验案例

需求描述

现雇用一组顾问从事某一项目。为每位顾问创建用户帐户,并将这些帐户掭加到作为补充组,名为consultants、组id为40000的组中。
 这些帐户应在91天后终止时过期。
 以下是顾问姓名及其相应用户名的列表,帐户的初始密码均应为default):
 sspade, bboop, dtracy
先建manager组,创建两个用户natasha,harry附属组为manager,创建第三个用户strlt不允许login 。
 建一个用户susa,指定UID号为4000
 帐户的初始密码均应为default

文件/目录的权限和归属

访问权限 读取:允许查看文件内容、显示目录列表 写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录 可执行:允许运行程序、切换目录 归属(所有权) 属主:拥有该文件或目录的用户帐号 属组:拥有该文件或目录的组帐号

查看文件/目录的权限和归属

程序与设计_文件系统_03

“-rw-r—r--”部分的第一个字符表示文件类型,可以是d(目录)、b(块设备文件)、c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等
 其余部分指定了文件的访问权限
 在表示属主、属组内用户或其他用户对该文件的访问权限时,主要使用了四种不同的权限字符: r    可读 ;w   可写 ;x   可执行 ;-   无权限 
 r、w、x、- 权限字符还可分别表示为8进制数字4、2、1、0

设置文件/目录的权限

chmod命令

格式1:chomd [ugoa] [+-=] [rwx] 文件或目录

格式2:chmod nnn 文件或目录

常用命令选项

-R:递归修改指定目录下所有文件/子目录的权限

详细讲解两种设置文件访问权限的格式,并以实例进行演示,例如:
 —— 重新设置mymkdir文件的权限,为属主用户添加执行权限,去除其他用户的读取权限
 [root@localhost ~]# chmod u+x,o-r mymkdir
 [root@localhost ~]# ls -l mymkdir
 -rwxr----- 1 root root 29588 05-12 06:19 mymkdir
 —— 重新设置mymkdir文件的访问权限,恢复为“rwxr-xr-x”
 [root@localhost ~]# chmod 755 mymkdir
 [root@localhost ~]# ls -l mymkdir
 -rwxr-xr-x 1 root root 29588 05-12 06:19 mymkdir 
 —— 使用递归的方式将“/usr/src/”目录中所有子目录、文件的权限都设置为“rw-r--r--”
 [root@localhost ~]# chmod -R 644 /usr/src/
 
 “nnn”为需要设置的具体权限值,如“755”、“644”等

文件权限设置实例

使用chmod命令设置文件权限 查看文件权限 ls -l 增加文件属主st01的执行权限(x) chmod u+x 文件名 去除文件属组class1的写权限(w) chmod g-w 文件名 设置属主权限为读写,属组其他用户的文件权限为读 chmod u=rw,g=r,o=r 文件名

设置文件/目录的归属

chown命令 格式:chown 属主 文件或目录 chown :属组 文件或目录 chown 属主:属组 文件或目录 常用命令选项 -R:递归修改指定目录下所有文件、子目录的归属

设置文件属主和属组

chown命令用于设置文件的属主和属组
 命令格式
 chown OWNER[:[GROUP]] FILE... 
 设置文件afile的属主为用户st01
 # chown st01 afile 
 设置文件afile的属组为用户组class1
 # chown :class1 afile
 设置文件afile的属主为st03,并设置文件的属组为class2
 # chown st03:class2 afile

实验:文件/目录权限设置

根据以下要求完成对文件/目录权限的设置
 1、添加组group,添加用户aa、bb并加入group组
 2、新建文件/abc.txt
 3、设置用户aa对文件拥有读、写和执行权限
 4、设置组group内成员对文件拥有读和写权限
 5、设置除属主和属组外其他人对文件没有任何权限
 6、新建目录/abc
 7、设置用户bb对目录拥有读、写执行权限
 8、设置组group内成员对目录拥有读和执行权限
 9、设置除属主和属组外其他人对目录没有任何权限

文件ACL权限

ACL是 Access Control List 的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。

ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范,对于需要特殊权限的使用状况非常有帮助。

ACL 主要可以针对以下方面来控制权限: 使用者 (user):可以针对使用者来设定权限; 组群 (group):针对用户组为对象来设定其权限; 预设属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的预设权限

管理文件系统访问控制列表

查看: $ getfacl filename 修改 : $ setfacl -m u:username:rw filename 命令 选项 u:用户名:权限 目录名称 $ setfacl -m g:groupname:rw filename 命令 选项 u:组账号:权限 目录名称 删除 : $ setfacl -x u:username filename 命令 选项 u:用户名 目录名称

tune2fs是linux下面重要的文件系统调整工具,其中的几个选项解释如下:
 -c:表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。
 -i:文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统。
 -l:显示文件系统的很多参数。
 -j:转换为ext3文件系统。
 -m: Set the percentage of reserved filesystem blocks。 设置保留的空间百分比
 -o: Set or clear the indicated default mount options in the filesystem.设置默认加载参数
 通常如果使用ext3文件系统的话,使用-c 0关掉mount次数达到后的文件系统检查
 tune2fs -m 10 /dev/sda1
 tune2fs -o acl,user_xattr /dev/sda1
 tune2fs -i 0 -c0 /dev/sda1
 
 显示当前的磁盘状态(dumpe2fs)
 [root@tonykorn97 /]# dumpe2fs /dev/sda1

使用附加权限

SET位权限 主要用途: 为可执行(有 x 权限的)文件设置,权限字符为“s” 其他用户执行该文件时,将拥有属主或属组用户的权限 SET位权限类型: SUID:表示对属主用户增加SET位权限 SGID:表示对属组内的用户增加SET位权限 如果SGID是设定在目录上面,则在该目录内所建立的文件或目录的所属组,将会自动成为此目录的所属组。

粘滞位权限(Sticky)

主要用途: 为公共目录(例如,权限为777的)设置,权限字符为“t” 用户不能删除该目录中其他用户的文件 应用示例:/tmp、/var/tmp

由于系统及服务程序运行的需要, Linux提供了/tmp、/var/tmp等临时目录,允许任意用户、程序写入数据
 然而试想一下,若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将造成什么后果?
 设置粘滞位以后,正好可以保持一种动态的平衡:允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据 
 
 实验
 
 SUID
 第一步切换普通用户qq
 第二步vim /etc/shadow
 第三步查看vim的位置 which vim
 第四步:chmod u+s /usr/bin/vim
 第五步:ls -l /usr/bin/vim
 第六步:su - qq
 第七步:vim /etc/shadow
 
 SGID
 groupadd aa
 useradd -G aa bb
 mkdir /cc
 chown :aa  /cc
 chmod 777 /cc
 su - bb
 cd /cc
 touch a.txt
 su - root
 chmod  g+s  /cc
 su - bb
 cd /cc
 touch aa.txt
 ls -l

设置SET位、粘滞位权限 使用权限字符 chmod ug±s 可执行文件... chmod o±t 目录名... 使用权限数字: chmod mnnn 可执行文件... m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加

SET位标记字符为“s”,若使用8进制数字形式,则SUID对应为“4”、SGID对应为“2”
 在权限模式中可采用“nnnn”的形式时,如“4755”表示设置SUID权限、“6755”表示同时设置SUID、SGID权限
 以为 /bin/touch 命令设置SUID权限为例进行演示,普通用户使用该命令创建测试文件,比较新建文件的属主变化
 注意:为普通文件(无执行权限的)设置SET位权限从语法上虽然也可行,但没有实际意义(标记字符将变为大写字母“S”)
 通过实例操作演示,展示粘滞位的作用,例如:由普通用户1在 /tmp 目录中尝试删除 普通用户2的文件,对比是否设置粘滞位的区别
 注意:为普通文件或者用户本没有写入权限的目录设置粘滞位语法上也是可行的,但没有实际意义(标记字符将变为大写字母“T”)
 which vim
 chmod  u+s /usr/bin/vim

实验案例:用户和文件权限管理

需求描述 将/etc/fstab 复制到/var/tmp/fstab ,设置harry可以读写,natasha不能做任何操作,其他用户可读,设置manager组为fstab 所属组 设置用户natasha对目录/home/cnrts(创建)有完全控制权限,在目录中创建的文件自动继承组的权限,设置manager组用户对目录有读写执行权行,其他人没有权限,(root除外)

cp /etc/fstab /var/tmp/fstab
 ls -l /var/tmp/fstab (查看一下目录的信息)
 chown:manager /var/tmp/fstab

查看网络接口信息

使用命令查看网络信息
  
查看网络接口信息 
    Ifconfig
  
测试网络连接状态
    ping
  
查看网关地址
    route
  
查看主机名称信息 
    hostname
  
查看DNS服务器
    nslookup

网络的基本配置

通过修改配置文件配置网络信息(需要重启网络服务使配置生效,配置会永久有效) 网络配置工具: 图形界面:NetworkManager服务 命令界面:nmcli 重启网络服务: systemctl restart NetworkManager nmcil connection down/up ip地址

网卡配置文件 存放位置:/etc/sysconfig/network-scripts/ 命名格式:ifcfg-0 主机名称配置文件 /etc/sysconfig/network 停止或启动指定网络接口 nmcli connection down ens ; nmcli connection up ens

网络接口配置文件

网络配置

使用vi编辑器编辑配置网卡文件,配置信息如下:
     IP:192.168.0.(100+X)
     子网掩码:255.255.255.0
     默认网关:192.168.0.254
     DNS:192.168.0.254
     主机名:serverX.example.com
     (注:X为编号)
 重启网卡并验证IP地址

测试与其他主机的网络连接路径

域名查询

nslookup命令可进行域名的查询

域名服务器配置文件

系统使用的DNS服务器的ip地址保存在“resolv.conf”文件中

nameserver配置项用于设置系统使用的DNS服务器地址
 DNS服务器的ip地址

设置主机名称

本地主机名称解析文件

本机名称配置文件

查看和修改网络配置

查看ip地址和子网掩码: ip addr(ifconfig) /etc/sysconfig/network-scripts/ifcfg-eth0 查看路由和默认网关:ip route(route) /etc/sysconfig/network-scripts/ifcfg-eth0 查看系统主机名:hostname /etc/sysconfig/network 查看DNS服务器地址:nslookup(host) /etc/resolv.conf

防火墙的配置

什么是防火墙

防火墙——是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。 它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全策略控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻ji能力。 在逻辑上,防火墙是一个分离器、限制器和分析器,它能有效地监控内部网和Internet之间的任何活动,保证了内部网络的安全。

使用web控制台配置防火墙服务

使用web控制台来配置防火墙服务,请单击“重用我的密码以执行特权任务”选项以特权权限进行登录。允许用户以sudo权限进行修改防火墙服务的命令
单击右侧导航菜单中的Networking选项,以显示主网络页面中的Firewall部分,单击Firewall链接,以访问允许的服务列表
允许的服务列表是指防火墙当前允许的那些服务,单击服务名称左侧的箭头(>)可查看服务详细信息,要添加服务,请单击Firewall Allowed Services页面右上角的Add Services... 按钮

使用web控制台配置防火墙

选择服务,在Filter Services 文本框中输入选择内容,以http为例,搜索文本框中输入字符串http,以查找包含http的服务,即web相关服务。允许这些服务通过防火墙

从命令行配置防火墙

firewall-cmd命令将会与firewalld动态防火墙管理器进行交互。他是作为主firewalld软件包的一不部分安装的,可用于倾向使用命令行的管理员,在没有图形环境的系统上工作,或编写有关防火墙设置的脚本

使用命令行配置防火墙

[root@host ~]# firewall-cmd --set-default-znotallow=dmz
 Warning: ZONE_ALREADY_SET: dmz
 success
 [root@host ~]# firewall-cmd --permanent --znotallow=internal --add-source=192.168.0.0/24
 success
 [root@host ~]# firewall-cmd --permanent --znotallow=internal --add-service=mysql
 success
 [root@host ~]# firewall-cmd --reload 
 success

管理SELINUX安全性

什么是SElinux

SELinux(Security-Enhanced Linux) 是一个额外的系统安全层。SElinux的主要目标是防止已遭泄露的系统服务访问用户数据。大多数linux管理员都熟悉标准的用户/组/其他权限安全模型。这种基于用户和组的模型为自由决定的访问控制。SElinux提供另一层安全,它基于对象并由更加复杂的规则控制,称为强制访问控制

为什么使用SELinux

SElinux实施了一组可以防止一个应用程序的弱点影响其他应用或基础系统的访问规则。
SElinux有三种模式:
强制:SElinux强制执行访问控制规则,计算机通常在该模式下运行。
许可:SElinux处于活动状态,但并不强制执行控制规则,而是记录违反规则的警告。该模式主要用于测试和故障排除。
禁用:SElinux完全关闭-不拒绝任何SElinux违规,甚至不予记录

SElinux上下文修改

SElinux是用于确定哪个进程可以访问哪些文件、目录和端口的一组安全规则。每个文件、进程、目录和端口都具有专门的安全标签,称为SElinux上下文。上下文是一个名称,SElinux策略使用它来确定某个进程能否访问文件、目录和端口。
SElinux标签具有多种上下文:用户、角色、类型和敏感度

程序与设计_用户名_04

实验

更改当前selinux模式

[root@host ~]# getenforce 
Enforcing
[root@host ~]# setenforce 
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@host ~]# setenforce 0
[root@host ~]# geten
getenforce  getent      
[root@host ~]# getenforce 
Permissive
[root@host ~]# setenforce Enforcing
[root@host ~]# getenforce 
Enforcing
[root@host ~]#

控制SElinux端口标记

selinux端口标记
selinux不仅仅是进行文件和进程标记,SElinux策略还严格实施网络流量。SElinux用来控制网络流量的其中一种方法是标记端口
管理SElinux端口标记
在非标准端口上运行服务,SElinux几乎肯定会拦截此流量。在这种情况下,您必须更新SElinux端口标签。在某些情况下targeted策略已经通过可以使用的类型标记了端口;
列出端口标签
要获取所有当前端口标签分配的概述,请运行semanage port -l命令。 -l选项列出当前分配:
输出示例:
[root@host ~]# semanage port -l
SELinux 端口类型                   协议       端口号
要优化搜索,使用grep命令:
[root@host ~]# semanage port -l | grep ftp
ftp_data_port_t                tcp      20
ftp_port_t                     tcp      21, 989, 990
ftp_port_t                     udp      989, 990
tftp_port_t                    udp      69
管理端口标签:
使用semanage命令可以分配新端口标签、删除端口标签或修改现有端口标签。
要向现有端口标签(类型)中添加端口,使用以下语法,-a将添加新端口标签,-t表示类型,-p表示协议。
例如:要允许gopher服务侦听端口71/TCP:
[root@host~]# semanage port -a -t gopher_port_t -p tcp 71
要查看对默认策略的本地更改,管理员可以在semanage命令中添加-c选项。
SELinux 端口类型                   协议       端口号

gopher_port_t                  tcp      71
删除端口标记
删除自定义端口标签的语法与添加端口标签的语法相同,但不是使用-a选项(表示添加),而是使用-d选项(表示删除)
例如:要删除端口71/TCP与gopher_port_t的绑定:
[root@host ~]# semanage port -d -t gopher_port_t -p tcp 71
修改端口绑定:
要更改端口绑定,请使用-m(修改)选项。这种流程比删除旧绑定并添加新绑定更高效。
例如,要将端口71/tcp从gopher_port_t修改为http_port_t,管理员可以使用如下命令:
[root@host ~]# semanage port -m -t http_port_t -p tcp 71


文件/目录的权限和归属

 访问权限

读取:允许查看文件内容、显示目录列表

写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

可执行:允许运行程序、切换目录

归属(所有权)

属主:拥有改文件或目录的用户账号

属组:拥有该文件或目录的组账号,组中用户

查看文件/目录的权限和归属

文件类型 | 文件所有者 | 文件所属组 | 其他用户|

       shell

chmod  修改文件或目录的权限  
chmod  mode  文件:chmod 
u+x  file  ;  file ;  file ;
chmod a=wx file
Permission
Denied:无权限      
rw--  r-- ----  6  4  0       
rwx r-x  r-- 754     
rw-rr--  644     
chmod  nnn  文件      
chown  更改归属权        
chown  用户  文件 ;更改文件属主   
chown : 组 文件:更改文件属组 
chown 用户:组  文件
root

设置文件/目录的权限    

chmod命令

程序与设计_字段_05

格式2:chmod nnn 文件或目录

特殊权限

文件ACL权限

ACL是Access Control List的缩写,主要的目的是在提供传统的ower,group,others的read,write,execute权限之外的细部权限决定

ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范,对于需要特殊权限的使用状况非常有帮助

程序与设计_用户名_06

管理文件系统访问控制列表

设置:

setfacl -m u:username:rw filename
setfacl -m g:groupname:rw filename
查看:
getfacl filename
删除:
setfacl -x u:username filename
setfacl -m u:stu rw-  aaaa   添加acl

setfacl -x u:stu  /host/stu/aaaa  删除某一acl

setfacl -b u:stu  /host/stu/aaaa  清空acl

other rw-

mask -wx

root 创建目录权限  755

创建文件权限  644
777   -umask -x

使用附加权限

SET位权限

为可执行(有×权限的》文件设置,权限宁符为“s",为x位来设置的SGID:一般设置在目录上,用户在设置了SGID的目录下新建文件或子目录时,新建的文件或子目录自动继承父目录的属组,普通用户执行时,是以管理员的身份去执行的

表现在前六位

粘滞位权限(Sticky)

主要用途;

表现在后三位

为公共目录(例如,权限为777的)设置,权限字符为“r"

用户不能删除该目录中其他用户的文件

应用示例:/tmp./var/tmp

  特殊权限

 set位权限:suid sgid:设置用户id  设置组id

 suid 一般设置可执行程序上,程序在被普通用户执行的时候会继承属主的权限

使用绝对路径或者相对路径可以执行一个可执行文件

      sgid一般设置目录上,在目录中创建的文件或目录会继承属组

chmod u+s  file   4

chmod g+s  2

使用数字设置set位权限的时候,只能加,不能减

粘滞位权限:设置在公共目录上(777),设置以后,用户不能删除不属于自己的文件

chmod o+l  file 1

chmod  7755 file

rwxr-sr-x

find  

思维导图

程序与设计_用户名_07


用户 :普通  组:
usera->属主->  属组->  other
ll  file  权限-
sticky  rwt 
r-t

nmtui
 修改配置文件
网络:iPhonev  tcp/ip
ip渠道
    
ip  address 
32位2进制数字
     点分十进制
     4段  8位
  0000  
0000-----1111   1111   0---255
     2^8  256
-1  255
    0.0.0.0---255.255.255.255

   两两与或,如果都为1,则结果为1,如果都为0,结果都为0,或者有一个为0,则为0

子网掩码netmask
网络位全为1
主机位全为0
   同网络
二层访问
  跨网络访问需要路由转发

 

网关  gateway
IPADDRESS

NETWORK
  
GATEWAY
 
DNS
   域名解析
将网址解析为ip
 
高优先级
   /etc/hosts 
terminal ui user interface
Graphical
Ethernet  以太网
网卡 网卡配置
修改配置文件
nmcil


网络配置

查看ip  ipconfig
ip a addr adress ip router

程序与设计_字段_08


nmcli

nmcli dev show ens16e查看网卡
nmcli connection add con-name ethe ifname ens160 type ethernet添加网卡配置配置名 ethe连接到网卡ens160类型是ethernet
 nmcli connection show ethe查看网卡配置
 nmcli c modify ethe ipv4.method manual ipv4.addresses 192.168.151.280/24对已有网卡配置,没置静态ip
 nmcli c modify eth0 ipv4.gateway 192.168.151.2 ipv4.dns 114.114.114.114 autoconnect no配置网关dns
自动连接
nmcli device disconnect ens16e网卡断连
 nmcliconupethe网卡配置ethe生效


程序与设计_文件系统_09


程序与设计_用户名_10


程序与设计_文件系统_11


      

逻辑卷管理

分区  格式化  挂载

建立和管理文件系统

 建立和管理文件系统

文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法

Linux中默认使用文件系统类型

EXT4,第4代扩展(Extended)文件系统

SWAP,交换文件系统

Linux支持的其他文件系统类型

FAT16,FAT32,NTFS

XFS,JFS


文件系统是操作系统用于明确磁盘

free  -h

mkswap  设备  mkswap  /dev/sdc1

swapon  /dev/sdc1  挂载虚拟内存

swapon  -s  列出虚拟内存你的挂载

swapoff  /dev/sdc1  卸载虚拟内存

分区格式化的数据保留在硬盘上 挂载保留在内存里

/etc/fstab

/dev/mapper/rhel-root   /  xfs  defaults  0  0

分区 (已做FS)  挂载点  fstype  defaults(挂载参数)kdump备份  开机检查

mount  设备  /etc/fstab  中条目规则进行挂载

mount -a  /etc/fstab  所有条目挂载

uuid 设备唯一标识  32位

blkid  查看uuid

MB  1000  硬盘厂商

Mib 1024  计算机识别

逻辑卷管理

LVM概述

Logical Volume Manager 逻辑卷管理

屏蔽了底层磁盘布局,便于动态调整磁盘容量

需要注意:

/boot分区用于存放引导文件,不能应用LVM机制

 

LVM 管理多个磁盘,可以动态调整分区容量

物理卷pv: 磁盘| 分区   IT

卷组 vg:物理卷的组合 1 2T

逻辑卷lv:1.5  30G

格式化 挂载

LVM机制的基本概念

PV物理卷

整个硬盘,或使用fdisk等工具建立的普通分区

包括许多默认4MB大小的PE(基本单元)

VG卷组

一个或多个物理卷组合而成的整体

LV逻辑卷

从卷组中分割出的一块空间,用于建立文件系统

 

 

软件管理

管理软件,kernel  +自由软件

核心:开源软件  审核软件

软件包的封装类型


RPM包管理机制

 常见的软件包封装类型

rpm软件包:扩展名为".rpm"

deb软件包:扩展名为".deb"

源代码软件包:一般为".tar.gz"、“.tar.bz2”等格式的压缩包包含程序的原始代码

提供安装程序的软件包:在压缩包内提供install.sh、setup等安装程序或以“.bin”格式的单个执行文件提供

绿色免安装的软件包:在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用

RPM包管理机制

RPM Package Manager
RPM软件包
软件素材参考:http://rpmfind.net

一般命令格式:

bash-3.1-16.1.i386.rpm


x86_64  ppc64le  aarch64  s390x  硬件平台

noarch

el  6789  软件

镜像里边

BaseOS提供系统运行所需要的软件,版本迭代慢,稳定性非常好

AppStream提供一些新特性软件,稳定性较好

使用rpm命令

安装或升级RPM软件

格式:rpm[选项]RPM包文件...

常用选项:

-i:安装一个新的rpm软件包

-U:升级某个rpm软件,若原本未装,则进行安装.

-F:更新某个rpm软件,若原本未装,则放弃安装

辅助选项

-h:以“#"号显示安装的进度

-V:显示安装过程中的详细信息

--nodeps:安装、升级或卸载软件时,忽略依赖关系

常用命令: rpm -ivh***.rpm

卸载指定的RPM软件

格式: rpm -e软件包的名字

 

rpm [选项] RPM包文件

 

-i  install  安装软件

-e  卸载软件

-q 查询软件

-q 查询软件 -a 列出所有  -c  查看软件的配置文件  -l 相关文件  -i软件包信

辅助选项 -v 显示进度

-h 以#显示进度

yum:以rpm为基础,分析依赖环境,并且通过python实现软件安装

dnf :yum v3  python3

软件仓库:软件  软件包数据库  可用性  多个仓库

/etc/yum.repos.d/  下以.repos结尾的文件,都是仓库配置文件

[repo_id]  写仓库id

name=repo_name  写仓库名称

baseul=url  写仓库路径 本地的  网络的(http、ftp) file://

file://media/AppStream  http://huaweicloud.com/centos/8/os/

ftp://bosai.com/ftp/rhel8\

gpgcheck=0|1  软件安装校验  0代表关闭

gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release  前提开启了校验

enable=1  默认为1  不需要写这一行

yum repolost -v

yum install  包名  安装软件

使用YUM源

 

程序与设计_字段_12

systemd  守护进程 完成系统的初始化

systemctl  管理工具  服务

服务 c/s“系统服务  网络服务

web  nfs  samba  dhcp

systemctl  动作 service :start  restart  stop reload

enable 开机自启  disable 开机关闭

status  查看服务状态的

systemctl  enable  --now  httpd  设置服务开启自启,并且立刻启动

systemctl is-enable  httpd  查看是否开机自启的

NTP:时间同步

分布式系统

客户端软件 chrony 软件的守护进程 chronyd

/etc/chrony-conf

pool  这一行注释

server  ntp服务器  iburst  指定时间服务器,是一个客户端配置

allow  网络  允许网络内的主机访问该节点的时间服务器,是一个服务端配置

systemctl  restart  chronyd  启动软件

systemctl  enable  chronyd  设置开机自启

配置cpu  mem  软件  调度

 

 


用户和组账号概述

Linux基于用户身份对资源访问进行控制 用户帐号: 超级用户root、普通用户、 程序用户

超级用户,即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统

普通用户帐号一般只在用户自己的宿主目录中有完全权限

程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin、daemon、ftp、mail等

组帐号: 基本组(私有组) 一个用户一个 只是标识 附加组(公共组)一个用户可以有一个或多个附加组 可以设置权限 UID和GID: UID(User Identity,用户标识号) 0—root;1-200:“系统用户”,静态分配给红帽的系统程序;

201-999:当装软件时,才会动态分配;1000-60000:普通用户分配的范围

GID(Group Identify,组标识号)

用户账号文件——password

用于保存用户的帐号基本信息

文件位置:/etc/passwd

每一行对应一个用户的帐号记录

[root@localhost ~]# tail -2 /etc/passwd
 sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
 student:x:500:500:Student User:/home/student:/bin/bash
字段1:用户帐号的名称
  字段2:用户密码字串或者密码占位符“x”
  字段3:用户帐号的UID号
  字段4:所属基本组帐号的GID号
  字段5:用户全名
  字段6:宿主目录
  字段7:登录Shell信息

用户账号文件——shadow

用于保存密码字串、密码有效期等信息

文件位置:/etc/shadow

每一行对应一个用户的密码记录

[root@localhost ~]# tail -2 /etc/shadow
 sabayon:!!:15495:0:99999:7:::
 student:$1$po/zD0XK$4HSh/Aeae/eJ6dNj1k7Oz1:15495:0:99999:7:::
字段1:用户帐号的名称
  字段2:加密的密码字串信息
  字段3:上次修改密码的时间(距离1970.1.1)
  字段4:密码的最短有效天数,默认值为0
  字段5:密码的最长有效天数,默认值为99999
  字段6:提前多少天警告用户口令将过期,默认值为7
  字段7:在密码过期之后多少天禁用此用户
  字段8:帐号失效时间,默认值为空
  字段9:保留字段(未使用)

组账号文件—group、gshadow

与用户账号文件类似

/etc/group:保存组帐号基本信息 /etc/gshadow:保存组帐号的密码信息

[root@localhost ~]# grep "adm" /etc/group
 sys:x:3:root,bin,adm
 adm:x:4:root,adm,daemon

添加用户账号

useradd命令 格式:useradd [选项]... 用户名 常用命令选项 -u:指定 UID 标记号 -g:指定用户的基本组名(或UID号) -G:指定用户的附加组名(或GID号) -s:指定用户的登录Shell

不添加任何选项,只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户帐号 
 演示添加用户的操作:
 —创建名为st02的用户帐号,并将其UID号指定为504
     [root@localhost ~]# useradd -u 504 st02
     [root@localhost ~]# tail -1 /etc/passwd
     st02:x:504:504::/home/st02:/bin/bash
 ——创建一个考试测试用的帐号exam01,指定属于users组 ,该帐号于2009-07-30失效
     [root@localhost ~]# useradd -g users -e 2009-07-30 exam01
     展示/etc/passwd、/etc/shadow文件中的变化
     说明:使用adduser命令也可以添加用户帐号,在RHEL5系统中adduser命令实际上是useradd命令的符号链接
     useradd  -s  /sbin/nologin  strlt

设置/更改用户口令

passwd命令 格式:passwd [选项]... 用户名 常用命令选项 -d:清空用户的密码,使之无需密码即可登录 -l:锁定用户帐号 -S:查看用户帐号的状态(是否被锁定) -u:解锁用户帐号

修改用户账号的属性

usermod命令 格式:usermod [选项]... 用户名 常用命令选项 -L:锁定用户账户 -U:解锁用户账户 以下选项与useradd命令中的含义相同 -u、-g、-G、-s

删除用户账号

userdel命令 格式:userdel [-r] 用户名 添加 -r 选项时,表示连用户的宿主目录一并删除

[root@localhost ~]# useradd stu01
 [root@localhost ~]# ls -ld /home/stu01/
 drwx------ 2 stu01 stu01 4096 09-09 12:38 /home/stu01/
 [root@localhost ~]# userdel -r stu01
 [root@localhost ~]# ls -ld /home/stu01/
 ls: /home/stu01/: 没有那个文件或目录

改变用户密码期限

chage命令 格式:chage [选项]... 用户帐号名 常用命令选项 -M:密码的最长有效天数 -m:密码的最短有效天数 -W:密码的警告天数 -I:密码的有效天数 -E:账号的过期时间

查看密码的有效天数:chage -l root
 chage -M 60 root   密码的最长有效天数
 chage -m 60 root   密码的最短有效天数

组管理命令

groupadd命令 格式:groupadd [-g GID] 组帐号名 组成员管理: 格式:gpasswd [选项]... 组帐号名 删除组帐号: 格式:groupdel 组帐号名

用户和组账号查询

id命令 用途:查询用户身份标识 格式:id [用户名] groups命令 用途:查询用户所属的组 格式:groups [用户名] users、w 、who命令 用途:查询已登录到主机的用户信息

主要有哪两个用户帐号文件,各有什么作用?
 如何锁定、解锁用户帐号?
 在添加用户帐号时,如何设置其失效时间?
 如何设置一个组的多个用户成员?
 
 部分答案提示:
 【1】/etc/passwd、/etc/shadow
 【2】锁定帐号:usermod  -L  用户名、passwd  -l  用户名 ; 解锁帐号: usermod  -U  用户名、passwd  -u  用户名 
 【3】useradd -e YYYY-mm-dd 用户名  或者  usermod -e YYYY-mm-dd 用户名
 【4】~/.bash_profile、~/.bashrc、~/.bash_logout
 【5】gpasswd  -M  用户1,用户2,用户3  组名

实验案例

需求描述

现雇用一组顾问从事某一项目。为每位顾问创建用户帐户,并将这些帐户掭加到作为补充组,名为consultants、组id为40000的组中。
 这些帐户应在91天后终止时过期。
 以下是顾问姓名及其相应用户名的列表,帐户的初始密码均应为default):
 sspade, bboop, dtracy
先建manager组,创建两个用户natasha,harry附属组为manager,创建第三个用户strlt不允许login 。
 建一个用户susa,指定UID号为4000
 帐户的初始密码均应为default

文件/目录的权限和归属

访问权限 读取:允许查看文件内容、显示目录列表 写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录 可执行:允许运行程序、切换目录 归属(所有权) 属主:拥有该文件或目录的用户帐号 属组:拥有该文件或目录的组帐号

查看文件/目录的权限和归属程序与设计_文件系统_03

“-rw-r—r--”部分的第一个字符表示文件类型,可以是d(目录)、b(块设备文件)、c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等
 其余部分指定了文件的访问权限
 在表示属主、属组内用户或其他用户对该文件的访问权限时,主要使用了四种不同的权限字符: r    可读 ;w   可写 ;x   可执行 ;-   无权限 
 r、w、x、- 权限字符还可分别表示为8进制数字4、2、1、0

设置文件/目录的权限

chmod命令

格式1:chomd [ugoa] [+-=] [rwx] 文件或目录

格式2:chmod nnn 文件或目录

常用命令选项

-R:递归修改指定目录下所有文件/子目录的权限

详细讲解两种设置文件访问权限的格式,并以实例进行演示,例如:
 —— 重新设置mymkdir文件的权限,为属主用户添加执行权限,去除其他用户的读取权限
 [root@localhost ~]# chmod u+x,o-r mymkdir
 [root@localhost ~]# ls -l mymkdir
 -rwxr----- 1 root root 29588 05-12 06:19 mymkdir
 —— 重新设置mymkdir文件的访问权限,恢复为“rwxr-xr-x”
 [root@localhost ~]# chmod 755 mymkdir
 [root@localhost ~]# ls -l mymkdir
 -rwxr-xr-x 1 root root 29588 05-12 06:19 mymkdir 
 —— 使用递归的方式将“/usr/src/”目录中所有子目录、文件的权限都设置为“rw-r--r--”
 [root@localhost ~]# chmod -R 644 /usr/src/
 
 “nnn”为需要设置的具体权限值,如“755”、“644”等

文件权限设置实例

使用chmod命令设置文件权限 查看文件权限 ls -l 增加文件属主st01的执行权限(x) chmod u+x 文件名 去除文件属组class1的写权限(w) chmod g-w 文件名 设置属主权限为读写,属组其他用户的文件权限为读 chmod u=rw,g=r,o=r 文件名

设置文件/目录的归属

chown命令 格式:chown 属主 文件或目录 chown :属组 文件或目录 chown 属主:属组 文件或目录 常用命令选项 -R:递归修改指定目录下所有文件、子目录的归属

设置文件属主和属组

chown命令用于设置文件的属主和属组
 命令格式
 chown OWNER[:[GROUP]] FILE... 
 设置文件afile的属主为用户st01
 # chown st01 afile 
 设置文件afile的属组为用户组class1
 # chown :class1 afile
 设置文件afile的属主为st03,并设置文件的属组为class2
 # chown st03:class2 afile

实验:文件/目录权限设置

根据以下要求完成对文件/目录权限的设置
 1、添加组group,添加用户aa、bb并加入group组
 2、新建文件/abc.txt
 3、设置用户aa对文件拥有读、写和执行权限
 4、设置组group内成员对文件拥有读和写权限
 5、设置除属主和属组外其他人对文件没有任何权限
 6、新建目录/abc
 7、设置用户bb对目录拥有读、写执行权限
 8、设置组group内成员对目录拥有读和执行权限
 9、设置除属主和属组外其他人对目录没有任何权限

文件ACL权限

ACL是 Access Control List 的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。

ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范,对于需要特殊权限的使用状况非常有帮助。

ACL 主要可以针对以下方面来控制权限: 使用者 (user):可以针对使用者来设定权限; 组群 (group):针对用户组为对象来设定其权限; 预设属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的预设权限

管理文件系统访问控制列表

查看: $ getfacl filename 修改 : $ setfacl -m u:username:rw filename 命令 选项 u:用户名:权限 目录名称 $ setfacl -m g:groupname:rw filename 命令 选项 u:组账号:权限 目录名称 删除 : $ setfacl -x u:username filename 命令 选项 u:用户名 目录名称

tune2fs是linux下面重要的文件系统调整工具,其中的几个选项解释如下:
 -c:表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。
 -i:文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统。
 -l:显示文件系统的很多参数。
 -j:转换为ext3文件系统。
 -m: Set the percentage of reserved filesystem blocks。 设置保留的空间百分比
 -o: Set or clear the indicated default mount options in the filesystem.设置默认加载参数
 通常如果使用ext3文件系统的话,使用-c 0关掉mount次数达到后的文件系统检查
 tune2fs -m 10 /dev/sda1
 tune2fs -o acl,user_xattr /dev/sda1
 tune2fs -i 0 -c0 /dev/sda1
 
 显示当前的磁盘状态(dumpe2fs)
 [root@tonykorn97 /]# dumpe2fs /dev/sda1

使用附加权限

SET位权限 主要用途: 为可执行(有 x 权限的)文件设置,权限字符为“s” 其他用户执行该文件时,将拥有属主或属组用户的权限 SET位权限类型: SUID:表示对属主用户增加SET位权限 SGID:表示对属组内的用户增加SET位权限 如果SGID是设定在目录上面,则在该目录内所建立的文件或目录的所属组,将会自动成为此目录的所属组。

粘滞位权限(Sticky)

主要用途: 为公共目录(例如,权限为777的)设置,权限字符为“t” 用户不能删除该目录中其他用户的文件 应用示例:/tmp、/var/tmp

由于系统及服务程序运行的需要, Linux提供了/tmp、/var/tmp等临时目录,允许任意用户、程序写入数据
 然而试想一下,若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将造成什么后果?
 设置粘滞位以后,正好可以保持一种动态的平衡:允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据 
 
 实验
 
 SUID
 第一步切换普通用户qq
 第二步vim /etc/shadow
 第三步查看vim的位置 which vim
 第四步:chmod u+s /usr/bin/vim
 第五步:ls -l /usr/bin/vim
 第六步:su - qq
 第七步:vim /etc/shadow
 
 SGID
 groupadd aa
 useradd -G aa bb
 mkdir /cc
 chown :aa  /cc
 chmod 777 /cc
 su - bb
 cd /cc
 touch a.txt
 su - root
 chmod  g+s  /cc
 su - bb
 cd /cc
 touch aa.txt
 ls -l

设置SET位、粘滞位权限 使用权限字符 chmod ug±s 可执行文件... chmod o±t 目录名... 使用权限数字: chmod mnnn 可执行文件... m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加

SET位标记字符为“s”,若使用8进制数字形式,则SUID对应为“4”、SGID对应为“2”
 在权限模式中可采用“nnnn”的形式时,如“4755”表示设置SUID权限、“6755”表示同时设置SUID、SGID权限
 以为 /bin/touch 命令设置SUID权限为例进行演示,普通用户使用该命令创建测试文件,比较新建文件的属主变化
 注意:为普通文件(无执行权限的)设置SET位权限从语法上虽然也可行,但没有实际意义(标记字符将变为大写字母“S”)
 通过实例操作演示,展示粘滞位的作用,例如:由普通用户1在 /tmp 目录中尝试删除 普通用户2的文件,对比是否设置粘滞位的区别
 注意:为普通文件或者用户本没有写入权限的目录设置粘滞位语法上也是可行的,但没有实际意义(标记字符将变为大写字母“T”)
 which vim
 chmod  u+s /usr/bin/vim

实验案例:用户和文件权限管理

需求描述 将/etc/fstab 复制到/var/tmp/fstab ,设置harry可以读写,natasha不能做任何操作,其他用户可读,设置manager组为fstab 所属组 设置用户natasha对目录/home/cnrts(创建)有完全控制权限,在目录中创建的文件自动继承组的权限,设置manager组用户对目录有读写执行权行,其他人没有权限,(root除外)

cp /etc/fstab /var/tmp/fstab
 ls -l /var/tmp/fstab (查看一下目录的信息)
 chown:manager /var/tmp/fstab

shell命令概述

Shell作用:命令解释器

介于操作系统内核与用户之间,负责解释命令行

获得命令帮助

内部命令help

命令的“--help” 选项

使用man命令阅读手册页

命令行编辑的几个辅助操作
 Tab键:自动补齐
 反斜杠“\”:强制换行
 快捷键 Ctrl+U:清空至行首
 快捷键 Ctrl+K:清空至行尾
 快捷键 Ctrl+L:清屏

Linux命令行的格式

Linux命令的通用命令格式:命令字 [选项] [参数] 选项及参数的含义 选项:用于调节命令的具体功能 以 “-”引导短格式选项(单个字符),例如“-l” 以“--”引导长格式选项(多个字符),例如“--color” 多个短格式选项可以写在一起,只用一个“-”引导,例如“-al” 参数:命令操作的对象,如文件、目录名等

[root@localhost ~]# ls  -l   /home
 总计 8
 drwx------ 2 benet benet 4096 09-08 08:50 benet

文件和目录管理

目录操作命令:pwd、cd、ls、mkdir

pwd命令
   用途:查看工作目录(Print Working Directory)
 cd命令
   用途:切换工作目录(Change Directory)
   格式:cd  [目录位置]
 ls命令
   用途:列表(List)显示目录内容 
   格式:ls  [选项]...  [目录或文件名]
   常用命令选项
     -l :以长格式显示
     -a:显示所有子目录和文件的信息,包括隐藏文件
     -ld:显示目录本身的具体信息
     --color:以颜色区分不同类型文件
 mkdir命令
   用途:创建新的目录(Make Directory) 
   格式:mkdir  [-p]  [/路径/]目录名

文件操作命令:touch、cp、rm、mv、find

touch命令
   用途:新建空文件,或更新文件时间标记
   格式:touch  文件名…
 cp命令
   用途:复制(Copy)文件或目录
   格式:cp  [选项]...  源文件或目录…  目标文件或目录
 rm命令
   用途:删除(Remove)文件或目录
   格式:rm  [选项]...  文件或目录
 rmdir命令
    用途:删除(directory)目录
 mv命令
   用途:移动(Move)文件或目录
     —— 若如果目标位置与源位置相同,则相当于改名
   格式:mv  [选项]...  源文件或目录…  目标文件或目录
 find命令
   用途:用于查找文件或目录
   格式:find  [查找范围]  [查找条件]
   常用查找条件
     -name:按文件名称查找
     -user:按文件属主查找
     -type:按文件类型查找
 根据文件的类型进行查找,这里的类型指的是普通文件(f)、目录(d)

文件内容操作命令:cat、less、grep

cat命令
   用途:显示出文件的全部内容
   格式:cat  目标文件
 less命令
   用途:全屏方式分页显示文件内容
   交互操作方法:
    按Enter键向下逐行滚动
    按空格键向下翻一屏、按b键向上翻一屏
    按q键退出
 grep命令
   用途:在文件中查找并显示包含指定字符串的行
   格式:grep  [选项]...  查找条件  目标文件
   常用命令选项
     -i:查找时忽略大小写
     -v:反转查找,输出与查找条件不相符的行 
   查找条件设置
     要查找的字符串以双引号括起来
     “^……”表示以……开头,“……$”表示以……结尾
     “^$”表示空行

归档及压缩命令:tar

tar命令
 用途:制作归档文件、释放归档文件
 格式:tar  [选项]...  归档文件名  源文件或目录
               tar  [选项]...  归档文件名  [-C 目标目录]
 常用命令
 打包:
 tar  -czvf  [存放路径]归档文件名.tar.gz  源文件或目录
 或  tar  -cjvf  [存放路径]归档文件名.tar.bz2  源文件或目录
 解包:
 tar  -xzvf  [存放路径]归档文件名.tar.gz  [-C  解压目录]
 或  tar  -xjvf  [存放路径]归档文件名.tar.bz2  [-C  解压目录]

Bash的命令历史

命令历史
   保存用户曾经执行过的命令操作
 查看历史命令 
   使用↑、↓按键逐条翻看,允许编辑并重复执行
   执行:history
 清除历史命令:执行:history -c
 调用历史命令:!n:执行历史记录中的第n条命令

Bash的命令别名

命令别名
   为使用频率较高的复杂命令行设置简短的调用名称
 查看命令别名
   格式:alias  [别名]
 设置命令别名
   执行:alias  别名='实际执行的命令'
 取消已设置的命令别名 
   格式:unalias  别名
         unalias  -a

重定向

将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上


输出重定向实例
    将命令输出重定向到文件
  将标准输出重定向到文件
  $ ls /etc/ > etcdir
    将标准输出重定向追加到文件
  $ ls /etc/sysconfig/ >> etcdir 
    将错误输出重定向到文件
  $ nocmd 2> errfile
    将标准输出和错误输出重定向到文件
  $ ls afile bfile &> errfile

vim文本编辑器

文本编辑器的作用: 维护Linux系统中的各种配置文件 编写shell脚本

vim编辑器的工作模式

三种工作模式:命令模式、输入模式、末行模式

1)命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作
 2)输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-- INSERT --”的状态提示信息
 3)末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符

命令模式中的基本操作

光标移动

光标方向移动
  
行内快读跳转
  ctrl+F:向下翻动一页
  ctrl+B:想上翻动一页
行间快速跳转
  1G或gg:跳转到文件的首页
  G:跳转到文件的末尾行
行号显示:
  set nu:在编辑器中显示行号
  :set nonu:取消编辑器中的行号显示

复制粘贴删除

程序与设计_字段

文件内容查找

程序与设计_文件系统_02

撤销编辑及保存退出

u

按一次取消最近的一次操作

多次重复,恢复已进行的多步操作

U

用于取消对当前行所做的所有编辑

ZZ

保存当前的文件内容并退出vi编辑器

末行模式中的基本操作

保存文件及退出vi编辑器

功能

命令

保存文件

:w


:w /root/newfile

退出vi

:q


:q!

保存文件退出vi

:wq

打开新文件或读入其他文件内容

命令

功能

:e ~/install.log

打开新的文件进行编辑

:r /etc/filesystems

在当前文件中读入其他文件内容

文件内容替换

命令

功能

:s /old/new

将当前行中查找到的第一个字符"old"串替换为"new"

:s /old/new/g

将当前行中查找到的所有字符串"old"替换为"new"

:## s/old/new/g

在行号"##"范围内替换所有的字符串"old"为"new"

:% s/old/new/g

在整个文件范围内替换所有的字符串:"old"为"new"

:s /old/new/c


在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认



用户和组账号概述

Linux基于用户身份对资源访问进行控制 用户帐号: 超级用户root、普通用户、 程序用户

超级用户,即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统

普通用户帐号一般只在用户自己的宿主目录中有完全权限

程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin、daemon、ftp、mail等

组帐号: 基本组(私有组) 一个用户一个 只是标识 附加组(公共组)一个用户可以有一个或多个附加组 可以设置权限 UID和GID: UID(User Identity,用户标识号) 0—root;1-200:“系统用户”,静态分配给红帽的系统程序;

201-999:当装软件时,才会动态分配;1000-60000:普通用户分配的范围

GID(Group Identify,组标识号)

用户账号文件——password

用于保存用户的帐号基本信息

文件位置:/etc/passwd

每一行对应一个用户的帐号记录

[root@localhost ~]# tail -2 /etc/passwd
 sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
 student:x:500:500:Student User:/home/student:/bin/bash
字段1:用户帐号的名称
  字段2:用户密码字串或者密码占位符“x”
  字段3:用户帐号的UID号
  字段4:所属基本组帐号的GID号
  字段5:用户全名
  字段6:宿主目录
  字段7:登录Shell信息

用户账号文件——shadow

用于保存密码字串、密码有效期等信息

文件位置:/etc/shadow

每一行对应一个用户的密码记录

[root@localhost ~]# tail -2 /etc/shadow
 sabayon:!!:15495:0:99999:7:::
 student:$1$po/zD0XK$4HSh/Aeae/eJ6dNj1k7Oz1:15495:0:99999:7:::
字段1:用户帐号的名称
  字段2:加密的密码字串信息
  字段3:上次修改密码的时间(距离1970.1.1)
  字段4:密码的最短有效天数,默认值为0
  字段5:密码的最长有效天数,默认值为99999
  字段6:提前多少天警告用户口令将过期,默认值为7
  字段7:在密码过期之后多少天禁用此用户
  字段8:帐号失效时间,默认值为空
  字段9:保留字段(未使用)

组账号文件—group、gshadow

与用户账号文件类似

/etc/group:保存组帐号基本信息 /etc/gshadow:保存组帐号的密码信息

[root@localhost ~]# grep "adm" /etc/group
 sys:x:3:root,bin,adm
 adm:x:4:root,adm,daemon

添加用户账号

useradd命令 格式:useradd [选项]... 用户名 常用命令选项 -u:指定 UID 标记号 -g:指定用户的基本组名(或UID号) -G:指定用户的附加组名(或GID号) -s:指定用户的登录Shell

不添加任何选项,只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户帐号 
 演示添加用户的操作:
 —创建名为st02的用户帐号,并将其UID号指定为504
     [root@localhost ~]# useradd -u 504 st02
     [root@localhost ~]# tail -1 /etc/passwd
     st02:x:504:504::/home/st02:/bin/bash
 ——创建一个考试测试用的帐号exam01,指定属于users组 ,该帐号于2009-07-30失效
     [root@localhost ~]# useradd -g users -e 2009-07-30 exam01
     展示/etc/passwd、/etc/shadow文件中的变化
     说明:使用adduser命令也可以添加用户帐号,在RHEL5系统中adduser命令实际上是useradd命令的符号链接
     useradd  -s  /sbin/nologin  strlt

设置/更改用户口令

passwd命令 格式:passwd [选项]... 用户名 常用命令选项 -d:清空用户的密码,使之无需密码即可登录 -l:锁定用户帐号 -S:查看用户帐号的状态(是否被锁定) -u:解锁用户帐号

修改用户账号的属性

usermod命令 格式:usermod [选项]... 用户名 常用命令选项 -L:锁定用户账户 -U:解锁用户账户 以下选项与useradd命令中的含义相同 -u、-g、-G、-s

删除用户账号

userdel命令 格式:userdel [-r] 用户名 添加 -r 选项时,表示连用户的宿主目录一并删除

[root@localhost ~]# useradd stu01
 [root@localhost ~]# ls -ld /home/stu01/
 drwx------ 2 stu01 stu01 4096 09-09 12:38 /home/stu01/
 [root@localhost ~]# userdel -r stu01
 [root@localhost ~]# ls -ld /home/stu01/
 ls: /home/stu01/: 没有那个文件或目录

改变用户密码期限

chage命令 格式:chage [选项]... 用户帐号名 常用命令选项 -M:密码的最长有效天数 -m:密码的最短有效天数 -W:密码的警告天数 -I:密码的有效天数 -E:账号的过期时间

查看密码的有效天数:chage -l root
 chage -M 60 root   密码的最长有效天数
 chage -m 60 root   密码的最短有效天数

组管理命令

groupadd命令 格式:groupadd [-g GID] 组帐号名 组成员管理: 格式:gpasswd [选项]... 组帐号名 删除组帐号: 格式:groupdel 组帐号名

用户和组账号查询

id命令 用途:查询用户身份标识 格式:id [用户名] groups命令 用途:查询用户所属的组 格式:groups [用户名] users、w 、who命令 用途:查询已登录到主机的用户信息

主要有哪两个用户帐号文件,各有什么作用?
 如何锁定、解锁用户帐号?
 在添加用户帐号时,如何设置其失效时间?
 如何设置一个组的多个用户成员?
 
 部分答案提示:
 【1】/etc/passwd、/etc/shadow
 【2】锁定帐号:usermod  -L  用户名、passwd  -l  用户名 ; 解锁帐号: usermod  -U  用户名、passwd  -u  用户名 
 【3】useradd -e YYYY-mm-dd 用户名  或者  usermod -e YYYY-mm-dd 用户名
 【4】~/.bash_profile、~/.bashrc、~/.bash_logout
 【5】gpasswd  -M  用户1,用户2,用户3  组名

实验案例

需求描述

现雇用一组顾问从事某一项目。为每位顾问创建用户帐户,并将这些帐户掭加到作为补充组,名为consultants、组id为40000的组中。
 这些帐户应在91天后终止时过期。
 以下是顾问姓名及其相应用户名的列表,帐户的初始密码均应为default):
 sspade, bboop, dtracy
先建manager组,创建两个用户natasha,harry附属组为manager,创建第三个用户strlt不允许login 。
 建一个用户susa,指定UID号为4000
 帐户的初始密码均应为default

文件/目录的权限和归属

访问权限 读取:允许查看文件内容、显示目录列表 写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录 可执行:允许运行程序、切换目录 归属(所有权) 属主:拥有该文件或目录的用户帐号 属组:拥有该文件或目录的组帐号

查看文件/目录的权限和归属

程序与设计_文件系统_03

“-rw-r—r--”部分的第一个字符表示文件类型,可以是d(目录)、b(块设备文件)、c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等
 其余部分指定了文件的访问权限
 在表示属主、属组内用户或其他用户对该文件的访问权限时,主要使用了四种不同的权限字符: r    可读 ;w   可写 ;x   可执行 ;-   无权限 
 r、w、x、- 权限字符还可分别表示为8进制数字4、2、1、0

设置文件/目录的权限

chmod命令

格式1:chomd [ugoa] [+-=] [rwx] 文件或目录

格式2:chmod nnn 文件或目录

常用命令选项

-R:递归修改指定目录下所有文件/子目录的权限

详细讲解两种设置文件访问权限的格式,并以实例进行演示,例如:
 —— 重新设置mymkdir文件的权限,为属主用户添加执行权限,去除其他用户的读取权限
 [root@localhost ~]# chmod u+x,o-r mymkdir
 [root@localhost ~]# ls -l mymkdir
 -rwxr----- 1 root root 29588 05-12 06:19 mymkdir
 —— 重新设置mymkdir文件的访问权限,恢复为“rwxr-xr-x”
 [root@localhost ~]# chmod 755 mymkdir
 [root@localhost ~]# ls -l mymkdir
 -rwxr-xr-x 1 root root 29588 05-12 06:19 mymkdir 
 —— 使用递归的方式将“/usr/src/”目录中所有子目录、文件的权限都设置为“rw-r--r--”
 [root@localhost ~]# chmod -R 644 /usr/src/
 
 “nnn”为需要设置的具体权限值,如“755”、“644”等

文件权限设置实例

使用chmod命令设置文件权限 查看文件权限 ls -l 增加文件属主st01的执行权限(x) chmod u+x 文件名 去除文件属组class1的写权限(w) chmod g-w 文件名 设置属主权限为读写,属组其他用户的文件权限为读 chmod u=rw,g=r,o=r 文件名

设置文件/目录的归属

chown命令 格式:chown 属主 文件或目录 chown :属组 文件或目录 chown 属主:属组 文件或目录 常用命令选项 -R:递归修改指定目录下所有文件、子目录的归属

设置文件属主和属组

chown命令用于设置文件的属主和属组
 命令格式
 chown OWNER[:[GROUP]] FILE... 
 设置文件afile的属主为用户st01
 # chown st01 afile 
 设置文件afile的属组为用户组class1
 # chown :class1 afile
 设置文件afile的属主为st03,并设置文件的属组为class2
 # chown st03:class2 afile

实验:文件/目录权限设置

根据以下要求完成对文件/目录权限的设置
 1、添加组group,添加用户aa、bb并加入group组
 2、新建文件/abc.txt
 3、设置用户aa对文件拥有读、写和执行权限
 4、设置组group内成员对文件拥有读和写权限
 5、设置除属主和属组外其他人对文件没有任何权限
 6、新建目录/abc
 7、设置用户bb对目录拥有读、写执行权限
 8、设置组group内成员对目录拥有读和执行权限
 9、设置除属主和属组外其他人对目录没有任何权限

文件ACL权限

ACL是 Access Control List 的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。

ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范,对于需要特殊权限的使用状况非常有帮助。

ACL 主要可以针对以下方面来控制权限: 使用者 (user):可以针对使用者来设定权限; 组群 (group):针对用户组为对象来设定其权限; 预设属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的预设权限

管理文件系统访问控制列表

查看: $ getfacl filename 修改 : $ setfacl -m u:username:rw filename 命令 选项 u:用户名:权限 目录名称 $ setfacl -m g:groupname:rw filename 命令 选项 u:组账号:权限 目录名称 删除 : $ setfacl -x u:username filename 命令 选项 u:用户名 目录名称

tune2fs是linux下面重要的文件系统调整工具,其中的几个选项解释如下:
 -c:表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。
 -i:文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统。
 -l:显示文件系统的很多参数。
 -j:转换为ext3文件系统。
 -m: Set the percentage of reserved filesystem blocks。 设置保留的空间百分比
 -o: Set or clear the indicated default mount options in the filesystem.设置默认加载参数
 通常如果使用ext3文件系统的话,使用-c 0关掉mount次数达到后的文件系统检查
 tune2fs -m 10 /dev/sda1
 tune2fs -o acl,user_xattr /dev/sda1
 tune2fs -i 0 -c0 /dev/sda1
 
 显示当前的磁盘状态(dumpe2fs)
 [root@tonykorn97 /]# dumpe2fs /dev/sda1

使用附加权限

SET位权限 主要用途: 为可执行(有 x 权限的)文件设置,权限字符为“s” 其他用户执行该文件时,将拥有属主或属组用户的权限 SET位权限类型: SUID:表示对属主用户增加SET位权限 SGID:表示对属组内的用户增加SET位权限 如果SGID是设定在目录上面,则在该目录内所建立的文件或目录的所属组,将会自动成为此目录的所属组。

粘滞位权限(Sticky)

主要用途: 为公共目录(例如,权限为777的)设置,权限字符为“t” 用户不能删除该目录中其他用户的文件 应用示例:/tmp、/var/tmp

由于系统及服务程序运行的需要, Linux提供了/tmp、/var/tmp等临时目录,允许任意用户、程序写入数据
 然而试想一下,若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将造成什么后果?
 设置粘滞位以后,正好可以保持一种动态的平衡:允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据 
 
 实验
 
 SUID
 第一步切换普通用户qq
 第二步vim /etc/shadow
 第三步查看vim的位置 which vim
 第四步:chmod u+s /usr/bin/vim
 第五步:ls -l /usr/bin/vim
 第六步:su - qq
 第七步:vim /etc/shadow
 
 SGID
 groupadd aa
 useradd -G aa bb
 mkdir /cc
 chown :aa  /cc
 chmod 777 /cc
 su - bb
 cd /cc
 touch a.txt
 su - root
 chmod  g+s  /cc
 su - bb
 cd /cc
 touch aa.txt
 ls -l

设置SET位、粘滞位权限 使用权限字符 chmod ug±s 可执行文件... chmod o±t 目录名... 使用权限数字: chmod mnnn 可执行文件... m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加

SET位标记字符为“s”,若使用8进制数字形式,则SUID对应为“4”、SGID对应为“2”
 在权限模式中可采用“nnnn”的形式时,如“4755”表示设置SUID权限、“6755”表示同时设置SUID、SGID权限
 以为 /bin/touch 命令设置SUID权限为例进行演示,普通用户使用该命令创建测试文件,比较新建文件的属主变化
 注意:为普通文件(无执行权限的)设置SET位权限从语法上虽然也可行,但没有实际意义(标记字符将变为大写字母“S”)
 通过实例操作演示,展示粘滞位的作用,例如:由普通用户1在 /tmp 目录中尝试删除 普通用户2的文件,对比是否设置粘滞位的区别
 注意:为普通文件或者用户本没有写入权限的目录设置粘滞位语法上也是可行的,但没有实际意义(标记字符将变为大写字母“T”)
 which vim
 chmod  u+s /usr/bin/vim

实验案例:用户和文件权限管理

需求描述 将/etc/fstab 复制到/var/tmp/fstab ,设置harry可以读写,natasha不能做任何操作,其他用户可读,设置manager组为fstab 所属组 设置用户natasha对目录/home/cnrts(创建)有完全控制权限,在目录中创建的文件自动继承组的权限,设置manager组用户对目录有读写执行权行,其他人没有权限,(root除外)

cp /etc/fstab /var/tmp/fstab
 ls -l /var/tmp/fstab (查看一下目录的信息)
 chown:manager /var/tmp/fstab

查看网络接口信息

使用命令查看网络信息
  
查看网络接口信息 
    Ifconfig
  
测试网络连接状态
    ping
  
查看网关地址
    route
  
查看主机名称信息 
    hostname
  
查看DNS服务器
    nslookup

网络的基本配置

通过修改配置文件配置网络信息(需要重启网络服务使配置生效,配置会永久有效) 网络配置工具: 图形界面:NetworkManager服务 命令界面:nmcli 重启网络服务: systemctl restart NetworkManager nmcil connection down/up ip地址

网卡配置文件 存放位置:/etc/sysconfig/network-scripts/ 命名格式:ifcfg-0 主机名称配置文件 /etc/sysconfig/network 停止或启动指定网络接口 nmcli connection down ens ; nmcli connection up ens

网络接口配置文件

网络配置

使用vi编辑器编辑配置网卡文件,配置信息如下:
     IP:192.168.0.(100+X)
     子网掩码:255.255.255.0
     默认网关:192.168.0.254
     DNS:192.168.0.254
     主机名:serverX.example.com
     (注:X为编号)
 重启网卡并验证IP地址

测试与其他主机的网络连接路径

域名查询

nslookup命令可进行域名的查询

域名服务器配置文件

系统使用的DNS服务器的ip地址保存在“resolv.conf”文件中

nameserver配置项用于设置系统使用的DNS服务器地址
 DNS服务器的ip地址

设置主机名称

本地主机名称解析文件

本机名称配置文件

查看和修改网络配置

查看ip地址和子网掩码: ip addr(ifconfig) /etc/sysconfig/network-scripts/ifcfg-eth0 查看路由和默认网关:ip route(route) /etc/sysconfig/network-scripts/ifcfg-eth0 查看系统主机名:hostname /etc/sysconfig/network 查看DNS服务器地址:nslookup(host) /etc/resolv.conf

防火墙的配置

什么是防火墙

防火墙——是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。 它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全策略控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻ji能力。 在逻辑上,防火墙是一个分离器、限制器和分析器,它能有效地监控内部网和Internet之间的任何活动,保证了内部网络的安全。

使用web控制台配置防火墙服务

使用web控制台来配置防火墙服务,请单击“重用我的密码以执行特权任务”选项以特权权限进行登录。允许用户以sudo权限进行修改防火墙服务的命令
单击右侧导航菜单中的Networking选项,以显示主网络页面中的Firewall部分,单击Firewall链接,以访问允许的服务列表
允许的服务列表是指防火墙当前允许的那些服务,单击服务名称左侧的箭头(>)可查看服务详细信息,要添加服务,请单击Firewall Allowed Services页面右上角的Add Services... 按钮

使用web控制台配置防火墙

选择服务,在Filter Services 文本框中输入选择内容,以http为例,搜索文本框中输入字符串http,以查找包含http的服务,即web相关服务。允许这些服务通过防火墙

从命令行配置防火墙

firewall-cmd命令将会与firewalld动态防火墙管理器进行交互。他是作为主firewalld软件包的一不部分安装的,可用于倾向使用命令行的管理员,在没有图形环境的系统上工作,或编写有关防火墙设置的脚本

使用命令行配置防火墙

[root@host ~]# firewall-cmd --set-default-znotallow=dmz
 Warning: ZONE_ALREADY_SET: dmz
 success
 [root@host ~]# firewall-cmd --permanent --znotallow=internal --add-source=192.168.0.0/24
 success
 [root@host ~]# firewall-cmd --permanent --znotallow=internal --add-service=mysql
 success
 [root@host ~]# firewall-cmd --reload 
 success

管理SELINUX安全性

什么是SElinux

SELinux(Security-Enhanced Linux) 是一个额外的系统安全层。SElinux的主要目标是防止已遭泄露的系统服务访问用户数据。大多数linux管理员都熟悉标准的用户/组/其他权限安全模型。这种基于用户和组的模型为自由决定的访问控制。SElinux提供另一层安全,它基于对象并由更加复杂的规则控制,称为强制访问控制

为什么使用SELinux

SElinux实施了一组可以防止一个应用程序的弱点影响其他应用或基础系统的访问规则。
SElinux有三种模式:
强制:SElinux强制执行访问控制规则,计算机通常在该模式下运行。
许可:SElinux处于活动状态,但并不强制执行控制规则,而是记录违反规则的警告。该模式主要用于测试和故障排除。
禁用:SElinux完全关闭-不拒绝任何SElinux违规,甚至不予记录

SElinux上下文修改

SElinux是用于确定哪个进程可以访问哪些文件、目录和端口的一组安全规则。每个文件、进程、目录和端口都具有专门的安全标签,称为SElinux上下文。上下文是一个名称,SElinux策略使用它来确定某个进程能否访问文件、目录和端口。
SElinux标签具有多种上下文:用户、角色、类型和敏感度

程序与设计_用户名_04

实验

更改当前selinux模式

[root@host ~]# getenforce 
Enforcing
[root@host ~]# setenforce 
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@host ~]# setenforce 0
[root@host ~]# geten
getenforce  getent      
[root@host ~]# getenforce 
Permissive
[root@host ~]# setenforce Enforcing
[root@host ~]# getenforce 
Enforcing
[root@host ~]#

控制SElinux端口标记

selinux端口标记
selinux不仅仅是进行文件和进程标记,SElinux策略还严格实施网络流量。SElinux用来控制网络流量的其中一种方法是标记端口
管理SElinux端口标记
在非标准端口上运行服务,SElinux几乎肯定会拦截此流量。在这种情况下,您必须更新SElinux端口标签。在某些情况下targeted策略已经通过可以使用的类型标记了端口;
列出端口标签
要获取所有当前端口标签分配的概述,请运行semanage port -l命令。 -l选项列出当前分配:
输出示例:
[root@host ~]# semanage port -l
SELinux 端口类型                   协议       端口号
要优化搜索,使用grep命令:
[root@host ~]# semanage port -l | grep ftp
ftp_data_port_t                tcp      20
ftp_port_t                     tcp      21, 989, 990
ftp_port_t                     udp      989, 990
tftp_port_t                    udp      69
管理端口标签:
使用semanage命令可以分配新端口标签、删除端口标签或修改现有端口标签。
要向现有端口标签(类型)中添加端口,使用以下语法,-a将添加新端口标签,-t表示类型,-p表示协议。
例如:要允许gopher服务侦听端口71/TCP:
[root@host~]# semanage port -a -t gopher_port_t -p tcp 71
要查看对默认策略的本地更改,管理员可以在semanage命令中添加-c选项。
SELinux 端口类型                   协议       端口号

gopher_port_t                  tcp      71
删除端口标记
删除自定义端口标签的语法与添加端口标签的语法相同,但不是使用-a选项(表示添加),而是使用-d选项(表示删除)
例如:要删除端口71/TCP与gopher_port_t的绑定:
[root@host ~]# semanage port -d -t gopher_port_t -p tcp 71
修改端口绑定:
要更改端口绑定,请使用-m(修改)选项。这种流程比删除旧绑定并添加新绑定更高效。
例如,要将端口71/tcp从gopher_port_t修改为http_port_t,管理员可以使用如下命令:
[root@host ~]# semanage port -m -t http_port_t -p tcp 71


 

 

 

 

 

 



标签:文件,程序,用户,命令,设计,权限,root,目录
From: https://blog.51cto.com/u_15964895/6317753

相关文章

  • 程序与设计
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运......
  • 程序设计进阶模拟试题
    题目描述请编写函数tun。西数的功能是。统计各年龄段的人数。1个年秘通过调用淹机函数获得,并放在主面救的ke数组中,要求函数赶1至虫9乡年龄段的人敷放在d01户中,把0至9岁年龄段的人数放1d门1中,把2.至沙岁年龄段社人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]......
  • 《程序员修炼之道--从小工到专家》阅读笔记01
    《程序员修炼之道–从小工到专家》是一本经典的软件开发实践指南书籍,被许多程序员视为进阶必读之书。以下是本人对该书第一章节的阅读笔记。第一章节题为:为什么需要修炼?显然,程序员和武林中的武功修炼者一样,都需要经过长期的学习、训练和实践,才能成为真正的专家。而与武术不同的是......
  • Fortran程序的Makefile文件
      qqqq #获取文件夹中所有.f90文件列表notdir把展开的文件去除掉路径信息SRCS_F90=$(wildcard*.f90)SRCS_F=$(wildcard./*.f)SRCS_DIR=$(notdir$(SRCS_F))#替换.f90后缀为.o后缀得到.o文件列表OBJS_F90=$(patsubst%.f90,%.o,$(SRCS_F90))OBJS_F=$......
  • DC NXT 库和设计对象介绍
    physicalsynthesis 物理综合概念三种启动方式dcnxt_shell-topographical_mode  #交互式命令行dcnxt_shell-topo-gui                     #图形界面dcnxt_shell-topo-f RUN.tcl|tee-iRUN.log       #批处理模式物理综合就是......
  • 连续签到积分兑换试用流量主小程序开发
    每日签到积分兑换试用流量主小程序开发打卡兑奖小程序。用户签到活得积分。积分可以兑换商品。观看激励视频广告可以积分翻倍。用户可以参加试用商品活动参加试用需要提交信息。可以通过分享方式直接获取试用资格。以下是流量主小程序的功能列表:1.广告位管理:可以创建、编辑和删除......
  • 一些原型设计工具简介
    原型设计是UI/UX设计中至关重要的一步,就像用户体验中的其他环节一样,有数不清的原型工具可以帮你完成原型设计。01PixsoPixso是一个集多种功能于一身的在线设计工具,可以完成从线框图、原型设计、UI设计到协作、设计系统管理、开发人员交付等各种环节。使用Pixso制作原型......
  • 人机交互设计——软件产品用户体验评价
    作业内容:评价一下大家手头正在使用输入法或者搜索类的软件产品。从用户界面、记住用户选择、短期刺激、长期使用的好处坏处、不要让用户犯简单的错误四个方面。我对搜索类软件产品MicrosoftEdge的评价: 用户界面:用户界面简洁,搜索方便,个性化体验友好。短期刺激:界面简洁,可通......
  • 阿里云+微信小程序部署记录
    这两天公司买了阿里云服务器和数据库,然后又说重新部署一套小程序,磕磕绊绊总算成了。记录一下遇到的问题吧。防止下次遇到这些事情,不会就麻烦了。T_T首先是购买了服务器和数据库,emmm不算大,都是2核4G的。害,也没啥业务量,权且先用着吧。注意点:买的过程呢,遇到过那种秒杀款,还好还好,我......
  • 支付宝小程序 | 获取网络状态
    参考文档:https://opendocs.alipay.com/open/025653https://opendocs.alipay.com/mini/api/network-status/***获取网络状态*@returnnetworkAvailable*@returnnetworkType*/exportconstgetNetworkType=async()=>{const{networkAvailable,networkTy......