自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置)。
运行模式
运行模式也可以称之为运行级别。
在Linux中存在一个进程:init(initialize,初始化),进程id是1。
查看进程:ps -ef | grep init
该进程存在一个对应的配置文件:inittab(系统运行级别配置文件,位置/etc/inittab)
【注】Ubuntu下找不到此文件,以下笔记均处于CentOS系统环境。
找不到此文件的原因参考:https://blog.csdn.net/heqiyu34/article/details/18793857
根据上述的藐视,可以得知,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
切换之后需要输入用户名和密码,在输入密码时候没有“*”提示输入,确认密码无错,按下回车即可。
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。
验证是否成功创建:
1、cat /etc/passwd,翻到最下面一行,可查到
2、 验证是否存在家目录:#ls /home,发现有zhangsan
【注】Ubuntu不允许直接以root账户登陆,并且passwd与视频中不一致,故从教程视频截图passwd文件的介绍。
【注意】在不添加选项的时候,执行useradd之后会执行一系列的操作
1、创建同名的家目录
2、创建同名的用户组
案例:添加选项,创建用户lisi,让lisi属于1001的主组,附加组1000,自选靓号1666。
b、修改用户
常用语法:#usermod 选项 用户名
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
=u:uid,用户的id(用户的标识符,系统默认会从500之后按顺序分配uid,如果不想使用系统分配,可以通过该选项自定义。
-I:修改用户名
案例:修改zhangsan用户主组为500,附加组改为501。
案例:修改zhangsan用户用户名,改为wangerma
#usermod -l 新的用户名 旧的用户名
#usermod -l wangerma zhangsan
c、设置密码
Linux不允许没有密码的哟用户登陆到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登陆计算机。
常用语法:#passwd 用户名
在设置密码的时候也是没有任何输入提示的,放心输入,确保两次输入的密码一致,按下回车即可。
切换用户命令:# su 【用户名】
如果用户名不指定则表示切换到root用户。
d、删除用户
常用语法:#userdel 选项 用户名
常用选项:
-r:表示删除用户的同时,删除其家目录
【提示】所有跟用户操作的命令(除passwd之外)只有root超级管理员有权限执行。
2、用户组管理
用户组管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
a、用户组添加
常用语法:#groupadd 选项 用户组名
常用选项:
-g:类似用户添加里的“-u”,-g表示自己选择设置一个自定义的用户组ID数字,如果不指定,则默认从500之后递增。
b、用户组编辑
常用语法:#groupmod 选项 用户组名
常用选项:
-g:类似用户添加里的“-u”,-g表示自己选择设置一个自定义的用户组ID数字,如果不指定,则默认从500之后递增。
-n:类似于用户修改“-l”,表示设置新的用户组的名称
c、用户组删除
常用语法:#groupdel 用户组名
【注意】如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果确实需要删除,则先从组内移出所有用户。
三、网络设置
如果后序需要重启网卡怎么去操作呢?
#service network restart
在有的分支版本中可能没有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
服务启动/停止/重启:
#service sshd start/stop/restart
#/etc/init.d/sshd start/stop/restart
1、远程终端
终端工具主要帮助运维人员连接远程的服务器,常见终端工具有:xshell、secureCRT、Putty
五、文件权限与归属
Linux系统使用了不同的字符来加以区分,常见的字符如下所示:
在Linux系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。对于目录文件的权限设置,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;“可执行”表示能够进入该目录。
文件权限的数字表示法基于字符表示(rwx)的权限计算而来,目的是为了简化权限的表示。如权限为7(4+2+1);权限为6(4+2)。
例:现在有一个文件,其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限;而其他人只有可读的权限。那么这个文件的权限就是rwxrw-r–,数字表示法为764.
文件的特殊权限
SUID
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。
在使用SUID赋予权限之后,原来的权限由rwx—–>rws;如果原来没有可执行权限(rw-),在赋予权限后变成了rwS。
SGID
主要实现以下两种功能:
- 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
- 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
【拓展】
- chomd命令
- 格式:chmod 【参数】 权限 文件或目录名称
- 作用:设置文件或目录的权限,如chmod 760 /home/test
- chown命令
- 格式:chown 【参数】 所有者:所属组 文件或目录名称
- 作用:设置文件或目录的所有者和所属组,如chown root:bin test
SBIT
SBIT特殊权限可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件只能被其所有者执行删除操作。
当目录被设置了SBIT特殊权限后,文件的其他人权限部分的x执行权限就会被替换成t或者T;原本有x权限则被替换成t,没有则替换成T。
【注】使用chmod命令,对应参数为o+t代表设置SBIT粘滞位权限。
文件的隐藏属性
隐藏属性即隐藏起来的权限,默认情况下不能被用户发觉。比如,生产环境中碰到明明权限充足却无法删除某个文件的情况,或者仅能在日志文件中追加内容而不能修改或删除内容。
chattr命令
- 作用:用于设置文件的隐藏权限
- 格式:chattr 【参数】 文件
- 如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想把某个隐藏功能移出文件,则需要在命令后面追加“-参数”。
lsattr命令
- 作用:用于显示文件的隐藏权限
- 格式:lsattr 【参数】 文件
- 文件隐藏权限必须由lsattr来查看,ls是无法查看到的
文件访问控制列表
如果希望对某个指定的用户进行单独的权限控制,就需要用到访问控制列表(ACL)了。如果针对某个目录设置了ACL,则目录中的文件会继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL。
setfacl命令
- 作用:用于管理文件的ACL规则
- 格式:setfacl 【参数】 文件名称
- 针对目录使用-R递归参数,针对普通文件使用-m参数,如果想要删除某个文件的ACL,则使用-b参数。
- 常用的ls命令看不到ACL表信息,但可以看到文件权限最后一个点(.)变成了(+)。
getfacl命令
- 作用:显示文件上设置的ACL信息
- 格式:getfacl 文件名称
su命令与sudo命令
- su命令可以解决切换用户身份的需求,使得当前用户在不退出登陆的情况下,顺畅地切换到其他用户。
- su – linuxprobe这一命令中su后面跟随一个“-”号,表示完全将环境切换至新用户,而不是保留原始信息。【强烈建议】
- sudo命令把特定的权限赋予给指定用户,这样既可保证普通用户能完成特定工作,也可以避免泄露root管理员密码。
- sudo命令格式:sudo 【参数】 命令名称
【总结】sudo命令具有以下功能:
- 限制用户执行指定的命令
- 记录用户执行的每一条命令
- 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数
- 验证密码的后5分钟内(默认值)无须再让用户再次验证密码