1 概述
Linux需要对登录用户读写、执行文件、进入目录、查看增删目录内容等操作进行控制,不能任由用户随意执行所有操作。
我们从如下几个方面来认识Linux权限控制体系:
用户管理
用户组管理
文件权限信息
chmod、chgrp、chown命令
2 用户和用户组
所谓用户其实就是登录Linux系统时使用的账号。而用户组则是把相同权限的用户归纳到同一个组内以便于管理,类似于Java开发中权限控制体系里面“角色”的概念。
当我们创建一个账号时如果没有指定属于哪一个用户组,那么Linux就会自动创建一个同名的用户组。
用户操作相关命令
3 相关文件
3.1 /etc/passwd
登录Shell部分主要是控制该账号是否可以通过登录界面登入系统。不能通过界面登录的用户往往是为登录专门的服务准备的。
3.2 /etc/shadow
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
3.3 /etc/group
组名:口令:组标识号:组内用户列表
※你打开这个文件会看到“组内用户列表”部分其实大部分都没有值,这是因为每个用户账号中已经通过“组id”字段标记了自己属于哪个用户组。一个账号如果需要设置为属于多个不同用户组那么就需要在这里指定一下。所以“组内用户列表”标记的是原本属于其他组然后再额外加入本组的账号。
4 文件详细信息
4.1 命令ls -l查看到的信息说明
4.2 权限信息说明
4.2.1 格式说明
4.2.2 文件类型
d:表示目录
-:表示文件
b:硬盘、光驱等设备文件
l:软链接文件
c:字符流,设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
s:socket
p:管道
4.2.3 权限字符含义
[1] r:读
文件:查看内容
目录:ls查看内容
[2] w:写
文件:写入内容
目录:重命名目录、删除目录内容(不是删除目录本身)、在目录内创建新内容
[3] x:执行
文件:x控制文件本身是否可以执行,但是还要看文件内部代码是否正确
目录:cd进入目录
[4] -:无
想一想:目录的内容指的是什么?
4.2.4 权限二进制表示
每个权限位上用0表示没有权限,用1表示有权限。
5 权限设置命令
Linux服务
1. 服务的概念
操作系统中在后台持续运行的程序,本身并没有操作界面,需要通过端口号访问和操作。CentOS 6和CentOS 7的服务管理有很大区别,我们分别来看。
2. CentOS6服务
2.1. service命令
service 服务名 start
service 服务名 stop
service 服务名 restart
service 服务名 reload
service 服务名 status
2.2. 服务对应程序文件
/etc/init.d目录下都是
2.3. chkconfig命令
查看服务列表:chkconfig [–list]
设置具体服务开机自动启动状态:chkconfig 服务名 on/off
思考:你能否区分清楚这两种状态呢?
服务现在是否运行
服务是否开机自动运行
2.4. Linux的运行级别
vim /etc/inittab查看系统配置。CentOS6系统使用0~6这7个数字来控制Linux系统的启动方式。
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS),没有网络服务
运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11表示控制台,进入图形界面
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
常用的是3或5。
chkconfig命令使用–level参数和一个数值可以控制一个服务在某个运行级别的是否自动启动。
2.5. 防火墙
服务名:iptables
停止防火墙:service iptables stop
3. CentOS7服务
3.1. systemctl命令
systemctl start 服务名(xxxx.service)
systemctl restart 服务名(xxxx.service)
systemctl stop 服务名(xxxx.service)
systemctl reload 服务名(xxxx.service)
systemctl status 服务名(xxxx.service)
3.2. 服务对应程序文件
/usr/lib/systemd/system目录下都是
3.3. systemctl命令代替chkconfig命令
查看服务状态:systemctl list-unit-files
设置或取消服务开机自动启动:
设置开机自动启动:systemctl enable 服务名
取消开机自动启动:systemctl disable 服务名
3.4. CentOS7简化了运行级别
vim /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
systemctl set-default graphical.target
3.5. 关闭防火墙
systemctl disable firewalld.service