项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)

任务三:使用vim编译器配置网络

【任务实施】
           【子任务一】使用【setup】命令配置IP地址      
              第一步: 运行【setup】命令
                   使用【setup】配置IP地址。在终端输入【setup】按enter键,选择网络配置。
                    
              第二步:选择网络配置

                     项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)

              第三步:选择网卡
                    项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
              第四步:填写IP地址
                    项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
                    项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
              第五步:保存IP地址配置选项
                    项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
              第六步:重启网络服务并查看IP地址信息
                      使用【setup】命令修改IP地址后,需重启network服务使之前配置的IP地址生效,输入命令: 【service network restart】重新启动网络服务。
         【ifconfig -a】查询IP地址配置信息。
                      项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)

           【子任务二】使用vim打开网络开关    
              第一步:打开网卡配置文件
                   【vim /etc/sysconfig/network-scripts/ifcg-eth0】使用vim编辑器打开网络配置文件。
              第二步:编辑"ifcfg-eth0"文件
                      按i或a或o中 任意的一个键,进入编辑模式。将第五行的no改为yes.
                      项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)

              第三步:退出并保存编辑文件
                   修改完相应信息后,按左上角的Esc键,退出编辑模式,然后保存编辑的文件。输入【:wp】,保存并退出。
               项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)   

              第四步:打开网络的总开关
                        网卡的开关打开后,系统也不一定能提供网络服务,还需要确认系统的网络开关是打开的。CentOS系统的网络总开关配置文件是/etc/sysconfig/network,使用【vim /etc/sysconfig/network】命令打开网络总开关的配置文件,按i编辑此文件,配置如下:
                项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)

              第五步:重启网络服务
                     对网络相关的任何配置文件进行修改后都需要重启网络服务或者注销系统,让配置生效。
              【service network restart】或【/etc/init.d/network restart】重启network服务使之生效。
                【ifonfig】查询IP地址。

              第六步:总结vim编译器的简单操作
               【vim后跟文件名】,如【vim yhy】,如果有yhy就打开,没有则创建它。
                按i或o或a任意一个键进入编辑模式。再按Esc键退出并保存。
                【:wq】写入磁盘(Write)并退出(Quit)
               【:q】不保存退出。
                 【:q!】 强制退出


           【子任务三】  使用vim配置DNS地址  
              第一步:打开DNS的配置文件
                输入【vim /etc/resolv.conf】命令打开DNS配置文件

              第二步:配置DNS地址
                     文件中有以#开头的注释信息,连续按两次d键,删除光标所在的行。
              第三步:总结vim的使用
                      vim可分为三种状态:
                     (1)指令模式/一般模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段的及进入插入模式下,或者到末行模式下。
                        (2)编辑模式/插入模式:只有在Insert Mode下,才可以做文字输入,按Esc键才可以回到指令模式。
                        (3)末行模式:将文件保存或退vim,也可以设置编辑环境,如寻找字符串,列出行号等。
 项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
           【子任务四】配置临时IP和多IP地址

              第一步:使用命令配置临时IP地址
                       有时为了临时方便及工作需要,需要配置一个临时IP地址,重启网络服务或重启系统后
就会失效,不会永久保存在系统中,可以通过如下命令实现:
【ifeconfig eth0 1.1.1.2 netmask 255.0.0.0】配置网卡的临时IP,重启失效。

              第二步:临时将一个网卡绑定多个IP
                     如果一个临时P地址不够用,还可以绑定多个临时IP,在网卡后面跟“eth0:1"(冒号1)即可:
【ifconfig eth0 :11.1.1.3 netmask 255.0.0.0】eth0 后面跟冒号和1。
             第三步:一个网卡永久绑定多个IP
                  复制配置文件ifcfg-eth0 为ifcfg-eth0:1,此方法为永久修改。
                 使用【cd /etc/sysconfig network srcipt/]命令进人网卡文件存放目录,使用【cp ifcfg-eth0 ifcfg-eth0:1】命令复制网卡文件为ifcfg-eth0:1.然后使用【vim ifcfg-eth0:1】命令修改其中的IP 地址。
             

          【子任务五】操作网卡和测试网络

              第一步:通过命令操作网卡
                     操作网卡的命令主要是【ifconfig】命令,可以通过该命令关闭或启用网卡。
【ifconfig eth0 down]】关闭网卡。
【ifconfig etho up】启用网卡。
【ifconfig eth0 hw ether 00:E0 :23:45: 34:A1】修改网卡物理地址(MAC地址)。
【service network restart或【 /etc,init.d/network restart】重启网络服务。
【ifconfig】查看网卡IP地址与物理地址信息。
第二步: 测试网络状态
测试网络状态主要有【traceroute】、【ping】、【netstat】3 个命令。
  【traceroute www.sina.com.cn)显示数据包到达目的主机所经过的路由。
   【ping www.sina.com.cn]测试到达www.sina.com.cn 网络的连通性。
【ping -c 4 8.8.8.8】测试网络的连通性。
【netstat -I】显示网络接口状态信息。
 【netstat -lpe】显示所有监控中的服务器的Socket 和正使用Socket
【netstat -r】显示内核路由表信息。
【netstat-nr】显示区核路自表信息。
【netstat -t】显示TCP/UDP 传输协议的连接状态。
【netstat -u】显示内核路由表信息。
【arp-a】 查看arp缓存
【arp -s 192.168.33.15 00:60:08:27:CE:B2】添加一个IP 地址和Mac地址的对应记录。
【arp -d 192.168.33.15】删除一个IP地址和Mac地址的对应缓存记录。

          【子任务六】启动图形界面还是字符界面

              第一步:打开inittab配置文件
                            【vim /etc/inittab】使用vim编译器打开/etc/inittab。
                            项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)


                       在这个文件中。我们通过事可以看,Lniux有7个运行级,分别如下所示:
0-hat (关机,让系统关闭所有进程并关机)。
1-Singleustmode(单用户学符界面,通常又称s或S) 。
2-Multiuser,without NFS (不具备网络文件系统功能的多用户字符界面)。
3-Full multiuser  mode(具备网络功能的图形用户界面)。
4-unused(保留不用)
5-X11(具备网络功能的图形用户界面)

6- reboot (关闭所有运行的进程并重新启动系统)。
除此之外还有A、B.C 3 个行级别,但在Linux 中都没有意义。Linux 系统中不同的运行级别(Run Level)代表了系统的不同运行状态,例如Linux 服务器正常运行时处于运行级别3,是能够提供网络服务的多用户模式; 而运行级别1只允许管理员通过服务器主机的单一控制台进行操作,即单用户模式。
          
 第二步:修改Linux启动模式
                  
             按键盘上的i.o或a3 个字符中的任意一个,进入编辑模式,把光标定位到最后一行的
"id:5:initdefault”中,修改数字。如果数字是5,系统启动后默认进人图形界面,设为3 则系
统启动时默认进入字符终端界面。

  第三步: 保存配置文件

按键盘左上角的ESC键,退出编辑模式,输人[:wq](冒号和
wq两个字母),保存并退
出,关闭文件。

第四步: 图形与字符界面的切换


    Linux作为服务器,一般工作在字符界面下,占用资源较少3动牌相强大,但有时需要乐面办公时,即可切换到图形界面。Linux系统作为办公系统,功能阿样盛大。可以完全使用Linux来工作,在Linux 中,一般的办公软件基本都有开源的解决方案。
【init 5】或【startx】在字符界面下切换到图形界面(前提是装好图形界面)。
【init 3】从图形界面或单用户模式进人字符界面( 图形界面有时需要注销)。



                                          任务四:root账号密码的**与保护


【任务说明】
操作系统中的超级管理员,在生产企业如果新老职工在工作交格中root 账户是Linux加境Linux系统的密码,或在现实生活中忘记」root 密码,就需要我们进人单用白格式**Linux 系统的密码。Tnuk 下的启动模式常用到的有单用户模式、普通多用户模式、完全多用户横式和单用户模式下,系统并没有完全运行起来,只是部分程序运行,这时也不担供xWin 模式。任何远程网络服务。进人单用户模式进行系统维护是由ro账户来完成的,而且是由root此户直接进人,没有密码检验。单用户模式给运维人员带来便利的同时,也隐藏着巨大的安个隐患,因为单用户模式下的root账户对系统有完全的操作权限,在可以修复系统的同时,
也可能随时对系统进行破坏。本任务的主要内容是root账户如何进人单用户模式,并修改root密码。以及对进人单用户模式设置障碍,即设置进人单用户模式的密码,防止未经授权的人员轻易进入单用户模式,修改root账户密码,破坏系统。
【任务实施】
要完成此任务,我们通过下面2 个子任务的学习来达到我们的目的。
【子任务一】进人单用户模式并修改root账户密码;
【子任务二】给单用户模式加密。

【子任务一】 进入单用户模式并修改root账户密码
进人单用户模式有两种方式,下面分别介绍。
方式1:使用a操作按键进人单用户模式 (推荐: 操作简单,这是进人单用户模式最快速的方法)
第1步: 进入kernel编辑界面
开机进入GRUB,在读秒的时候,按两次a 键,编辑kernel 参数。
第2步:编辑kernel启动参数
进人kernel编辑界面,输人空格后,再输人数字【1】或【single】,以告诉Linux内核后续的启动过程需要进人单用户模式,然后按Enter键即可进入单用模式。
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
第3步,用【passwd】命令修改root密码
系统无须密码进人单用户模式,使用【passwd】命令修改root 账户口令。
输入【passwd】命令,然后按Enter键,系统等待输人新的root密码。输入完成后按Enter键再次确认输人新的密码,输入完成后按Enter 键即可。需要强调的是,输入密码时候,是没有任何显示的,因为主机接收到键盘的输入字符后不再输出到显示器上,减少了输入密码的失窃风险。

当确认两次密码输入一致后,会看"successful"即密码修改成功的信息提示。
备注:Cent0S6.5 这里的提示不是像5.X 那样提示sh- 3.2井,而是【[email protected] bestyh】#这样的提示。
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
第4步: 进入多用户系统
输人【init 3】进入能够提供网络服务多用户模式文本模式,输人【init5】进入能够提供网络服务的多用户模式图形界面模式,测试刚才改过的口令。
输人用户名root],然后按Enter 键输人修改后的新密码,确认即可进人系统。
备注:输入密码的时候,系统是没有任何显示的。



方式2: 使用e操作按键进人单用户模式
第1步: 进入kernel选择界面
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
第2步: 进入kernl编辑界面
再次按e键,进人如下有3 个菜单的界面
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
第3步: 编辑kernel启动参数
按↑、↓键,移动光标至以"kernel"开头的第二行后再次按e键,编辑Linux启动级系
如图所示。
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
输人2格后,在行未输入数字【1】或【single】.以告诉Lin Ix 内核后续的启动过程需要进入单用户模式,然后按Enter 键,系统返回到启动菜单界面,如图所示。

第4步: 进入单用户模式
按b键,这时系统开机无须密码,进人单用户模式。
第5 步: 使用[passwd)命令修改root 密码
输入Cpasswd]命令,然后按Ente 键,系统等待输人新的root 密码,输人完成后按Enter 键再次确认输人新的密码,输人完成后按Enter键即可。
当确认两次密码输人一致后,会看到"ucucssfully"即密码修改成功的信息提示。
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
如果在输人【passwd】后发现,根本没有提示输人新密码,而是直接跳过去,根本没法更改密码,出现这种情况的原因是,默认安装CentOS 6.5 时seLinux是默认开启的。在selLinux 下,passwd 是没法应用的,要临时关闭seLinux.输人【setenforce 0】关闭seLinux.这样就可以在单用户模式下更改密码了。
备注: 当Linux 系统进入单用户模式后,由于已经停止了任何网络服务和网络配置(网络接口无效),不会有任何其他人(通过网络)干扰系统的运行状态,管理员可以放心地对Linux 系统进行系统级别的维护操作。
在单用户模式下,Linux 系统除了不具备网络功能外,是功能完整的操作系统。在单用户模式下可以进行如下维护和管理工作。
(1) 重新设置超级用户口令。
(2) 维护系统的分区、LVM 和文件系统等。
(3) 进行系统的备份和恢复。
单用户模式的一个典型应用是root 账户的”口令设置”。对于一些临时使用或实验用途的Linux 系统( 如学生实验室),经常会更换使用者,而root 账户的口令可能会被遗失,这时可以进人单用户模式更改root 账户的口令。
【子任务二】
给单用户模式加密
如果能够近距离接触到服务器,就可以轻松地进入单用户模式修改root 账户密码,这
样会存在一定的安全风险。那么,如何给单用户模式设置密码呢? 首先要对GRUB 进行密
码配置,修改/boot/grub grub.conf 或者/etc /grub.conf( /etc grub.conf 是/boot/grub/
grub.conf 的符号链接)配置文件即可。
有两种方式可以对进入单用户模式设置密码: 明文方式和MD5 加密方式。
方式1: 明文方式
明文方式即单用户模式的密码在系统文件(/etc/grub.conf)中是可见的,没有加密的。
第1步: 打开/boot/grub/grub.conf 文件
输入如下命令,使用vim 编辑器打开/boot/grub/grub.conf 文件:
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
【vim /boot/grub/grub.conf】
第2 步: 编辑/boot/grub/grub.conf 文件
在splashimage这个参数下一行添加: password= 密码,如图所示。
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
保存后重新启动计算机,再次登录到GRUB菜单页面的时候就会发现,这时已经不能
直接按键编辑启动标签了,需先使用【p】命令,输入正确的密码后才能够对启动标签进行
编辑。

但是我们设置了明文密码也不是很安全。如果他人通过合法途径进人到系统后得到了/boot/grub/grub.conf 这个文件的明文密码后仍然可以修改GRUB 启动标签从而进入单用户模式、


方式2: MD5加密方式
MD5 加密方式即进入单用户模式的密码是以密文的方式存在系统文件(/ etc/grub.conf ) 中 的。
第1步: 给密码进行md5加密
在终端中输入【grub md5-crypt 】后按Enter 键,这时系统会要求输人两次相同的密码,之后系统便会输出MD5 码。


第2步: 添加md5密文到/etc/grub.conf文件中
将生成的MDS 密文复制下来。然后编辑/ete grub.conf 文件,在splashimage 这个参数
行添加,保存后重新启动计算机,再次登入到GRUB菜单页面的时候就会发现,这时也不能直接按e键编辑启动标签了,曹需先使用【p】命令,输入正确的密码后才能够对启动标签进行编辑。




                      任务五:管理Linux系统的用户与用户组



【任务实施】

第1步: 查看Linux 系统中的用户
系统中所有的用户存放文件为/etc passwd,可通过【vim /etc/passwd】命令打开查看。passwd文件由许多条记录组成,每条记录占一行,记录了一个用户账号的所有信息。每条记录由7 个字段组成,字段间用冒号(: )隔开,其格式如下图所示。
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
(1) 用户名: 它唯一地标识了一个用户账号,用户在登录时使用的就是它。
(2) 加密口令: passwd 文件中存放的密码是经过加密处理的。Linux 的加密算法很严密,其中的口令几乎是不可能被**的。盗用账号的人一般都借助专门的黑客程序,构造出无数个密码,然后使用同样的加密算法将其加密,再和本字段进行比较,如果相同的话,就代表构造出的口令是正确的。因此,建议不要使用生日、常用单词等作为口令,它们在黑客程序面前几乎是不堪一击的。特别是对那些直接连入较大网络的系统来说,系统安全性显得尤为重要。
(3) 用户ID: 用户识别码,简称UID。Linux 系统内部使用UID 来标识用户,而不是用户名。UID是一个整数,用户的UID 互不相同。普通用户的UID默认是从500 开始的。
(4) 组ID: 用户组识别码,简称GID。不同的用户可以属于同一个用户组,享有该用户组共有的权限。与UID类似,GID唯一地标识了一个用户组。普通用户的GID默认是从500 开始的。UID 与GID默认情况下是一致的。
(5) 用户描述: 这是给用户账号做的注解。它一般是用户真实姓名、电话号码、住址等,当然也可以是空的。
(6) 家目录: 这个目录属于该账号,当用户登录后,它就会被置于此目录中,就像回到家一样,一般来说,root账号的家目录是/root.其他账号的家目录都在/home目录下,并且项和用户名同名。目7i录3hell.用户登录后执行的命令,一般来说,这个命令将启动一个shell程序。
              例如,用bbs账号登录后,会直接进入bbs系统,这是因为bbs账号的的login command指向是bbs程序,等系统登录到bbs时就自动运行这些命令。
备注: UID是用户识别码,GID是用户组识别码。如果把普通用户的UID和GID改成与root用户的一样,那么此用户就变成了管理员,拥有管理员的权限。
第2 步: 查看用户密码以及有效期的文件
用户密码以及有效期的存放文件/etc,/shadow 可通过【vim /etc/shadow】命令打开查看。

shadow 文件由许多条记录组成,每条记录占一行,记录了一个用户账号的所有用户密码以及有效等信息。每条记录由8 个字段组成,字段间用冒号(:)隔开,其格式如下图所示:

(1) 用户名: 是与/etc passwd 文件中的登录名相一致的用户账号。
(2) 加密口令: 存放的是加密后的用户口令字符,长度为13个字符。如果为空,则对应用户没有口令,能够登录但是不需要口令; 如果是两个感叹号,则表示该用户没有设置密码,不能登录进系统; 如果含有不属于集合{(./0-9A-Za-z 中的字符,则对应的户不能登录。
(3) 最后一次修改时间: 表示从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如,在SCOLinux中,这个时间起点是1970 年1月1日。
(4) 最小时间间隔: 指两次修改口令之间所需的最小天数。
(5) 最大时间间隔: 指口令保持有效的最大天数。
(6) 警告时间: 表示从系统开始警告用户到用户密码正式失效之间的天数。
(7) 不活动时间: 表示用户没有登录活动但账号仍能保持有效的最大天数。
(8) 失效时间: 给出的是一个绝对的天数。如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也不能再用来登录。系统中还有一些默认的账号,如daemon.bin等。这些账号有特殊的用途,一般用于发统管理。这些账号的口令大部分用( * )号表示,代表它们不能在登录时使用。            
【vim /ete/shadow】编辑用户密码的存放文件。把user2 所在行的第一个冒号与第一个冒号之间的字符删除掉,设置user2 的密码为空。
第3步: 查看账号所属组文件
/ete /group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组; 同一用户组的用户之间具有相似的特征。例如,我们把某一用户加人到root用户组,那么这个用户就可以闻览root用户家目录的文件: 如果root 用户把某个文件的读写执行权限开放。root用户组的所有用户都可以修改此文件,如果是可执行的文件(例如脚本),root 用户组的用户也是可以执行的。
Linux中每建立一个用户时,同时也建立一个同名的组,此用户默认是加入到此组中,组用户文件存放在/ etc /group 里面,可以通过[vim /etc group]命令查看,如下图 所示。
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
在图中 所示的文件中,有4列,每一列对应的释义如下。
第一列: 用户组名称;
第二列: 用户组密码;
第三列:GID,即组ID;
第四列: 用户列表,每个用户之间用逗号(,)分割; 本字段可以为空,如果为空表示用户组为GID的用户名。


第4步: 查看用户组密码文件
/etc/gshadow 是/etc/group 的加密资讯文件,例如用户组(Group)管理密码就存放在这个中。/etc gshadow 和/etc/group 是互补的两个文件; 对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。例如,我们不想让些非用户组成员永久拥有用户组的权限和特性,这时可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码。通过[vim/e tc,/gshadow]命令可以查看用户组密码存放文件,每个用户组独占一行,如2-59 所示。

在图中所示的文件中,有4 列,每一列对应应的释义如下。
第一列: 用户组名称;
第二列: 用户组密码,这个段可以是空的或有叹号(!),如果是空的或有叹号(!),表示没有密码;
第三列: 用户组管理者,这个字段也可为空,如果有多个用户组管理者,用“,”号分割;
第四列: 组成员,如果有多个成员,用逗号(,)分割。

第5步: 建立与删除用户
CentOS中,建立与删除用户的主要命令以及释义如下。
【useradd yhy】新建yhy 用户。
【passwd yhy】为yhy 用户设置密码,密码输人时无任何显示。
【useradd ybs-d /home y】新建ybs用户,并指定家目录为home /y。
【userndd userl-d / h me/user1】此处可以不加d 参数,因为用户的默认家目录就在home 下与用户名相同的目录下。
【useradduser2】增加新用user2.用户默认家目录为/ home/user2.
【userdedyhy】删除用户,但不副除家目录,
【userdel-rybo】删除ybs 用户,并删除用户家目录。


【usermod-l user2 user1】修改用户user1 名称为user2.
【usermod-L user2】锁定用户名user2,锁定后user2不能登录。
【usermod-U user2】解锁用户名user2.
【su - user1】 用户切换到普通用户,不需要密码。
【su-root】普通用户切换到root用户,需要root密码。
备注: [su]命令后加“.”横杆,切换用户时切换到用户的家目录,否则,不改变当前路径。
第6步: 建立与管理用户组
CentOS中建立与管理用户组的主要命令以及释义如下.
【groupadd grp1】新建户组grpl.
【groupde grp 】删除用户组grp1.
【groupmo dgrp2 gr p1】修改用户组名称grpl 为grp2.
【epasswd - a user2 grp2】把用户user2 加人到用户组grp2 中。
【gpasswd -d user 2 grp2】把户user2 从用户组grp2 中删除。
第7步: 几个重要的命令补充
有关用户的操作还有以下命令,详细释义如下。
【who am i】品示当前以哪个用户登录。
【w】显示目前登人系统的用户详细信息,包括登录IP地址等。
【who 】显示目前登人系统的用户简要信息。
【last】记录每个用户的登录次数和持续时间等信息。
【finger】在找并显示用户信息如incrhang-]表示查看zhangs 用户信息。
【su user】切换用户但不切换当前目录。
【su - user1】切换用户并切换到user的家目录。
【ntsysv】启动/关闭系统中的服务。
【setup】设置系统运行参数。


                          任务六管理Linux 系统的文件权限
【任务说明】

由于不可能为每个用户都单独提供完全独立、相互隔离的文件系统,多用户操作系统必须提供一种安全的访问控制机制,使得用户既能和其他用户共享某些文件,又能保证各个用户的文件不会被非法存取或破坏。因而Linux对文件所有者、用户和其他用户,分别设置了存取控制权限,也即读、写和执行权限。文件的权限有两种表示方法:一种是符号化表示法,另一种是十进制数字表示法。符号化表示法使用英文字母r(Read).w(Write)和x(Execute)来分别表示读、写和执行权限。用符号化表示法表示的文件权限共9位,每3位为一组,每一组都是r.w.x 3 个符号与“-”符号的组合,其中“.”符号表示没有该权限。每组分别代表文件所属用户、同组用户和其他非本组用户对该文件的读(r)、写(w)和执行(x)权限。
第1步:认识文件权限说明
执行【ls -l】或【ls -al】或【ll】命令后显示的结果图如下图所示:
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
第 一个字符一般用来区分文件和目录: d表示是一个目录,事实上在ext2fs中,目录是个特殊的文件。— 表示这是一个普通的文件。1表示这是一个符号链接文件,实际上它指向另一个文件。b、c 分别表示区块设备和其他的外围设备,是特殊类型的文件。s、p这些文件关系到系统的数据结构和管道,通常很少见到。第2~10 个字符是用来表示一般权限,每3 个为一组,左边3 个字符表示所有者权限,中间3 个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这3个一组共9 个字符,代表的意义如表2 1所示。
项目二:管理与维护Linux系统(任务三、任务四、任务五、任务六)
第2步使用[chmod]命令改变文件或目录的访问权限
在文本模式下,可执行【chmod】命令改变文件和目录的权限。
【chmod 777123 .txt】把123.txt 文件的权限设置为777。
【chmod 777 /home/user】仅把/home/user目录的权良设置为rwxrwxTw。
【chmod -R777 /home/user】将整个/home/user 目录与其中的文件和子目录的权限都设置为rwxrwxrwx 。
【chmod u=rwx,g=rx,o=rx 123.txt】把123.txt 文件设置为755的权限.
这里的u=rwx代表user( 文件的拥有者的权限等于rwx,g= rx 代表group( 所属组)的权限等于rx.o=rx代表other(其他人的权限等于rx。
第3步: 更改文件的所有者以及所属组
文件与目录的权限可以改变,使用【chown】命令还可以改变其所有者及所属用户组。先使用【tough 123.txt】命令创建一个文件后再执行【ls 】或【ll】命令查看文件的情况,如下图所示。
第4步:认识umask
umask 可以说是一个文件权限的开放标准, 我们新建一个文件或者目录都会有一个默认权限,比如在普通用户下,新建一个文件权限为664,目录为775, 此时我们查看umask 发现为0002, 默认四位,第一位0为补位,后三位分别表示u,g,o的参考权限, 简单求和 我们发现,对于普通文件满权限为 664+002=666,对于目录文件满权限为 775+002=777,那么意味着我们对普通文件默认不给x权限,尽量限制普通用户权限,目录则无法从源头控制,默认最大权限。我们可以修改umask值,来修改预设权限命令格式为 umask xxx, xxx为三个数字表示的基准权限。

第五步:识别特殊权限

特殊权限:SUID、SGID、SBTI



1.SUID/SGID
#看一下这三个文件的权限
# ls -l  /usr/bin/passwd  /etcadow  /etc/passwd
-rw-r--r--  1 root root  1470 Jun 22 19:33 /etc/passwd
----------  1 root root   902 Jun 22 19:33 /etcadow
-rwsr-xr-x. 1 root root 30768 Feb 22  2012 /usr/bin/passwd
我们知道,/etc/passwd和/etcadow存放着用户的账户和密码信息。从它们俩的权限上看,普通用户(others)并不具有对它们修改的权限。但实际上,普通用户登录的状态下,它是可以通过/usr/bin/passwd这个命令来修改自己的密码的。这是为什么呢?我们可以看到/usr/bin/passwd文件的root权限设置为rws,即具有SUID权限。普通用户就可以通过执行passwd命令,临时的拥有root权限,去修改/etc/passwd文件了
所以总结来说: 若普通用户对于该文件有执行权限(x)的前提下;   SUID就是:让普通用户拥有可以执行“只有root权限才能执行”的特殊权限,SGID同理指”组“;   SUID仅能用在二进制程序(binary program)上,对目录无效。查询整个系统的SUID/SGID文件?# find /  -perm  +6000

2.SBTI(Sticky Bit)粘滞位权限
# mkdir /test
# chmod 1777 /test/   ------>#使该目录对所有用户可读写,并增加SBTI权限
# ll -d /test/drwxrwxrwt 2 root root 4096 Jul 11 23:49 /test/
假设该/test目录是对所有用户开放共有的目录,且所有用户都拥有读写权限,
若A用户在/test中创建了一个文件,B用户哪天不爽它还有权限去删掉这个文件,这肯定是不好的。但是设置了sticky bit权限以后是不会出现这样的问题的
# su lyj             ------>#切换普通用户lyj
$ touch lyj1.txt     ------>#创建一个文件
$ ll lyj1.txt
-rw-rw-r-- 1 lyj lyj 0 Jul 11 23:52 lyj1.txt
# su lyj2           ------>#切换普通用户lyj2
$ ls
lyj1.txt
$ rm lyj1.txt -f     ------>#lyj2有权删掉这个lyj创建的文件吗?
rm: cannot remove `lyj1.txt': Operation not permitted #显然不能
$ touch lyj2.txt
$ rm lyj2.txt -f   ------>#它只能删除自己创建的
所以总结来说:
若普通用户对于该目录有w、x权限的前提下;
 SBTI意味着,当该普通用户在该目录下创建了文件/目录,那么只有它自己和root用户可以删除/重命名/移动它,其他用户没有权力这么做;  SBTI只针对目录有效
首先,列一下SUID、SGID、Sticky Bit所代表的权限数值。就好像rwx分别对应4,2,1一样,SUID、SGID、Sticky Bit分别对应的数值也是4、2、1。权限对应的数值

SUID-4 
SGID -2 
Sticky Bit- 1 
r- 4 
w -2 
x -1 
    为了下面的例子做准备,现在假设有一个文件a,权限为 -rw-rw-r--,对应的数值为664 

一、SUID

全称:Set UID

对象:仅用于设置二进制文件的特殊权限

用途:用于开放二进制文件的执行权限。当用户执行文件a的时候,执行过程中暂时获得了文件a所属用户的权限。简单说,假如文件a的所有者是root,但是文件设置了SUID,那么其它用户也可以执行这个文件。


例子:/usr/bin/passwd 

设置方法:chmod 4664 a

设置完成后文件a权限为:-rwSrw-r-- 

(现在我也知道为什么每个用户的umask值为四位数了,如果你不知道umask是什么赶紧google一下吧^_^)

二、SGID

全称:Set GID

对象:用于设置文件和目录的特殊权限

用途:

          文件:如果该文件是二进制文件的话,其他用户执行该文件的时候会以文件所属用户组的神

          目录:在该目录下建立的文件或目录都会自动继承该目录的用户组

设置方式:chmod 2664 a 

设置完成后文件a权限为:-rw-rwSr-- 


三、Sticky Bit

全称:Set UID

对象:只用于设置目录的特殊权限

用途:在设置了Sticky Bit权限的目录下建立的文件只有文件的拥有者和root能删除。

设置方式:chmod 1664 a

设置完成后文件a权限为:-rw-rw-r-t 

第六步:识别文件颜色

绿色文件: 可执行文件,可执行的程序 

红色文件:压缩文件或者包文件

蓝色文件:目录

白色文件:一般性文件,如文本文件,配置文件,源码文件等 

浅蓝色文件:链接文件,主要是使用ln命令建立的文件

红色闪烁:表示链接的文件有问题

黄色:表示设备文件

灰色:表示其他文件


第七步:总结常用的几个命令

文件/目录权限设置命令:chmod 

这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。该命令有两种用法: 

用包含字母和操作符表达式的文字设定法 

其语法格式为:chmod [who] [opt] [mode] 文件/目录名 

其中who表示对象,是以下字母中的一个或组合: 

u:表示文件所有者 

g:表示同组用户 

o:表示其它用户

a:表示所有用户 

opt则是代表操作,可以为:

+:添加某个权限 

-:取消某个权限 

=:赋予给定的权限,并取消原有的权限 

而mode则代表权限: 

r:可读 

w:可写 

x:可执行 

例如:为同组用户增加对文件a.txt的读写权限: 

chmod g+rw a.txt 




用数字设定法 

而数字设定法则更为简单:chmod [mode] 文件名 

关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为: 

111 101 100 

再将其每三位转换成为一个十进制数,就是754。 

例如,我们想让a.txt这个文件的权限为: 

           自己   同组用户    其他用户 

可读       是        是            是 

可写       是        是 



可执行 

那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令: 

chmod 664 a.txt






       chown更改所有者

        chgrp更改所属组

    文件权限rwx

        chmod修改权限

        默认权限umask