自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置)。

运行模式

运行模式也可以称之为运行级别

在Linux中存在一个进程:init(initialize,初始化),进程id是1。

查看进程:ps -ef | grep init

该进程存在一个对应的配置文件:inittab(系统运行级别配置文件,位置/etc/inittab)

【注】Ubuntu下找不到此文件,以下笔记均处于CentOS系统环境。

           找不到此文件的原因参考:https://blog.csdn.net/heqiyu34/article/details/18793857

Linux–自有服务-编程知识网

 根据上述的藐视,可以得知,Centos6.5中存在7种运行级别/模式。

0 — 表示关机级别(不要将默认的运行级别设置成0)

1 — 单用户模式

2 –多用户模式,不带NFS(Network File System,如果没网络,就和3一样)

3 — 多用户模式,完全的多用户模式(不带桌面的,纯命令行模式)

4 — 没有被使用的模式(保留模式)

5 — X11,完整的图形化界面模式

6 — 表示重启级别(不要将默认的运行级别设置成0)

 

与该级别相关的几个命令:

#init 0    表示关机

#init 3    表示切换到不带桌面的模式

#init 5    切换到图形界面

#init 6    重启电脑

注意:init指令需要超级管理员的权限,普通用户无法执行。

Ubuntu下获取root权限教程:https://jingyan.baidu.com/article/0bc808fc6184c81bd585b948.html

这些命令其实都是调用的init进程,将数字(运行级别)传递给进程,进程去配置文件执行对应的操作。

1、切换到纯命令行模式下(临时切换,重启之火恢复):

#init 3  

Linux–自有服务-编程知识网

 切换之后需要输入用户名和密码,在输入密码时候没有“*”提示输入,确认密码无错,按下回车即可。

2、回到桌面模式:#init 5

3、设置模式永久为命令行模式:把id:5:initdefault中的数字设置为3,然后重启。

 

用户与用户组管理(重点)

Linux是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个张哈的身份进入系统。要想实现用户账户的管理,要完成工作主要与如下几个方面

用户账户的添加、删除、修改以及用密码的管理。

用户组的管理。

注意三个文件:

/etc/passwd           存储用户的关键信息

/etc/group              存储用户组的关键信息

/etc/shadow           存储用户的密码信息

 

1、用户管理

a、添加用户

常用语法:#useradd 选项 用户名

常用选项:

       -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名

       -G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名

       =u:uid,用户的id(用户的标识符,系统默认会从500之后按顺序分配uid,如果不想使用系统分配,可以通过该选项自定义。

 

案例:新建一个用户zhangsan。

Linux–自有服务-编程知识网

 验证是否成功创建:

1、cat /etc/passwd,翻到最下面一行,可查到

Linux–自有服务-编程知识网

2、 验证是否存在家目录:#ls /home,发现有zhangsan

【注】Ubuntu不允许直接以root账户登陆,并且passwd与视频中不一致,故从教程视频截图passwd文件的介绍。

Linux–自有服务-编程知识网

【注意】在不添加选项的时候,执行useradd之后会执行一系列的操作

             1、创建同名的家目录

             2、创建同名的用户组

 

案例:添加选项,创建用户lisi,让lisi属于1001的主组,附加组1000,自选靓号1666。

Linux–自有服务-编程知识网

Linux–自有服务-编程知识网

Linux–自有服务-编程知识网

 

b、修改用户

常用语法:#usermod 选项 用户名

常用选项:

       -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名

       -G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名

       =u:uid,用户的id(用户的标识符,系统默认会从500之后按顺序分配uid,如果不想使用系统分配,可以通过该选项自定义。

        -I:修改用户名

案例:修改zhangsan用户主组为500,附加组改为501。

Linux–自有服务-编程知识网

Linux–自有服务-编程知识网

案例:修改zhangsan用户用户名,改为wangerma

           #usermod -l 新的用户名 旧的用户名

           #usermod -l wangerma zhangsan

 

c、设置密码

Linux不允许没有密码的哟用户登陆到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登陆计算机。

常用语法:#passwd 用户名

Linux–自有服务-编程知识网

在设置密码的时候也是没有任何输入提示的,放心输入,确保两次输入的密码一致,按下回车即可。

切换用户命令:# su  【用户名】

如果用户名不指定则表示切换到root用户。

Linux–自有服务-编程知识网

 

d、删除用户

常用语法:#userdel 选项 用户名

常用选项:

       -r:表示删除用户的同时,删除其家目录

【提示】所有跟用户操作的命令(除passwd之外)只有root超级管理员有权限执行。

 

2、用户组管理

用户组管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

Linux–自有服务-编程知识网

a、用户组添加

常用语法:#groupadd 选项 用户组名

常用选项:

       -g:类似用户添加里的“-u”,-g表示自己选择设置一个自定义的用户组ID数字,如果不指定,则默认从500之后递增。

 

b、用户组编辑

常用语法:#groupmod 选项 用户组名

常用选项:

       -g:类似用户添加里的“-u”,-g表示自己选择设置一个自定义的用户组ID数字,如果不指定,则默认从500之后递增。

       -n:类似于用户修改“-l”,表示设置新的用户组的名称

 

c、用户组删除

常用语法:#groupdel 用户组名

【注意】如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果确实需要删除,则先从组内移出所有用户。

 

三、网络设置

Linux–自有服务-编程知识网

Linux–自有服务-编程知识网

如果后序需要重启网卡怎么去操作呢?

#service network restart

Linux–自有服务-编程知识网

在有的分支版本中可能没有service命令来快速操作服务,但是有一个共性的目录:/etc/init.d这个目录放着很多对服务的快捷方式

此处重启网卡命令还可以用:#/etc/init.d/network restart

扩展1:如果修改网卡的配置文件,但是配置文件的目录层次很深,此时可以在浅的目录中创建一个快捷方式(软连接),方便以后去查找。

#ln -s 原始文件的路径  快捷方式的路径

扩展2:如何去重启单个网卡?

停止某个网卡:#ifdown 网卡名

开启某个网卡:#ifup 网卡名

例如:需要停止-启动(重启)eth0网卡,则可以输入

#ifdown eth0

#ifup eth0

提示:在实际工作的时候不要随意禁网卡。

 

四、ssh服务(重点)

ssh(secure shell,安全外壳协议),该协议有2个常用的作用:远程连接协议、远程文件传输协议。

协议使用端口号:默认是22【可以被修改,需要修改ssh的配置文件】

配置文件位置:#/etc/ssh/ssh.config

Linux–自有服务-编程知识网

 服务启动/停止/重启:

#service sshd start/stop/restart

#/etc/init.d/sshd start/stop/restart

1、远程终端

终端工具主要帮助运维人员连接远程的服务器,常见终端工具有:xshell、secureCRT、Putty

 

五、文件权限与归属

Linux系统使用了不同的字符来加以区分,常见的字符如下所示:

Linux–自有服务-编程知识网

在Linux系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。对于目录文件的权限设置,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;“可执行”表示能够进入该目录。

Linux–自有服务-编程知识网

文件权限的数字表示法基于字符表示(rwx)的权限计算而来,目的是为了简化权限的表示。如权限为7(4+2+1);权限为6(4+2)。

例:现在有一个文件,其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限;而其他人只有可读的权限。那么这个文件的权限就是rwxrw-r–,数字表示法为764.

 

文件的特殊权限

SUID

SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。

在使用SUID赋予权限之后,原来的权限由rwx—–>rws;如果原来没有可执行权限(rw-),在赋予权限后变成了rwS。

 

SGID

主要实现以下两种功能:

  1. 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
  2. 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)

【拓展】

  1. chomd命令
    1. 格式:chmod 【参数】 权限 文件或目录名称
    2. 作用:设置文件或目录的权限,如chmod 760 /home/test
  2. chown命令
    1. 格式:chown 【参数】 所有者:所属组  文件或目录名称
    2. 作用:设置文件或目录的所有者和所属组,如chown root:bin test

 

SBIT

SBIT特殊权限可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件只能被其所有者执行删除操作。

当目录被设置了SBIT特殊权限后,文件的其他人权限部分的x执行权限就会被替换成t或者T;原本有x权限则被替换成t,没有则替换成T。

【注】使用chmod命令,对应参数为o+t代表设置SBIT粘滞位权限。

 

文件的隐藏属性

隐藏属性即隐藏起来的权限,默认情况下不能被用户发觉。比如,生产环境中碰到明明权限充足却无法删除某个文件的情况,或者仅能在日志文件中追加内容而不能修改或删除内容。

 

chattr命令

  1. 作用:用于设置文件的隐藏权限
  2. 格式:chattr  【参数】  文件
  3. 如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想把某个隐藏功能移出文件,则需要在命令后面追加“-参数”。

Linux–自有服务-编程知识网

Linux–自有服务-编程知识网

 

lsattr命令

  1. 作用:用于显示文件的隐藏权限
  2. 格式:lsattr  【参数】  文件
  3. 文件隐藏权限必须由lsattr来查看,ls是无法查看到的

 

文件访问控制列表

如果希望对某个指定的用户进行单独的权限控制,就需要用到访问控制列表(ACL)了。如果针对某个目录设置了ACL,则目录中的文件会继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL。

setfacl命令

  1. 作用:用于管理文件的ACL规则
  2. 格式:setfacl 【参数】 文件名称
  3. 针对目录使用-R递归参数,针对普通文件使用-m参数,如果想要删除某个文件的ACL,则使用-b参数。
  4. 常用的ls命令看不到ACL表信息,但可以看到文件权限最后一个点(.)变成了(+)。

getfacl命令

  1. 作用:显示文件上设置的ACL信息
  2. 格式:getfacl  文件名称

su命令与sudo命令

  1. su命令可以解决切换用户身份的需求,使得当前用户在不退出登陆的情况下,顺畅地切换到其他用户。
  2. su – linuxprobe这一命令中su后面跟随一个“-”号,表示完全将环境切换至新用户,而不是保留原始信息。【强烈建议】
  3. sudo命令把特定的权限赋予给指定用户,这样既可保证普通用户能完成特定工作,也可以避免泄露root管理员密码。
  4. sudo命令格式:sudo  【参数】  命令名称
  5. Linux–自有服务-编程知识网

【总结】sudo命令具有以下功能:

  1. 限制用户执行指定的命令
  2. 记录用户执行的每一条命令
  3. 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数
  4. 验证密码的后5分钟内(默认值)无须再让用户再次验证密码