Linux须要对登陆用户读写执行文件、进入目录、查看增删目录内容等操做进行控制,不能任由用户随意执行全部操做。html
咱们从以下几个方面来认识Linux权限控制体系:app
- 用户管理
- 用户组管理
- 文件权限信息
- chmod、chgrp、chown命令
所谓用户其实就是登陆Linux系统时使用的帐号。而用户组则是把相同权限的用户概括到同一个组内以便于管理,相似于Java开发中权限控制体系里面“角色”的概念。socket
当咱们建立一个帐号时若是没有指定属于哪个用户组,那么Linux就会自动建立一个同名的用户组。加密
用户操做相关命令url |
|
检查用户是否存在spa |
id [用户名]3d |
添加帐号htm |
useradd [用户名]blog |
为帐号设置密码ci |
passwd [用户名]而后根据提示操做 |
切换登陆用户 |
su [用户名] |
显示当前登陆系统的用户列表 |
who |
显示当前登陆系统的用户 |
who am i |
删除用户,保留家目录 |
userdel [用户名] |
删除用户,连同家目录一块儿删除 |
userdel -r [用户名] |
用户组相关命令 |
|
建立用户组 |
groupadd group_name |
删除用户组 |
groupdel group_name |
重命名用户组 |
groupmod -n new_group_name old_group_name |
用户、用户组操做 |
|
建立用户并直接添加到某一个用户组中 |
useradd -g 组名 用户名 |
查看全部用户组 |
cat /etc/group |
修改用户所在的用户组 |
usermod -g 组名 用户名 |
3.1 /etc/passwd
登陆Shell部分主要是控制该帐号是否能够经过登陆界面登入系统。不能经过界面登陆的用户每每是为登陆专门的服务准备的。
3.2 /etc/shadow
登陆名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
3.3 /etc/group
组名:口令:组标识号:组内用户列表
※你打开这个文件会看到“组内用户列表”部分其实大部分都没有值,这是由于每一个用户帐号中已经经过“组id”字段标记了本身属于哪一个用户组。一个帐号若是须要设置为属于多个不一样用户组那么就须要在这里指定一下。因此“组内用户列表”标记的是本来属于其余组而后再额外加入本组的帐号。
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:执行
文件:只有能够执行的文件才可以执行
目录:cd进入目录
【4】 -:无
想想:目录的内容指的是什么?
4.2.4 权限二进制表示
每一个权限位上用0表示没有权限,用1表示有权限。
字符表示 |
二进制表示 |
十进制换算 |
rwx |
111 |
7 |
rw- |
110 |
6 |
r-- |
100 |
4 |
r-x |
101 |
5 |
改变文件或目录权限 |
chmod |
改变文件或目录的所属组 |
chgrp |
改变文件或目录的所属主 |
chown |