个人博客网:https://wushaopei.github.io/    (你想要这里多有)

1、 概述

Linux需要对登录用户读写执行文件、进入目录、查看增删目录内容等操作进行控制,不能任由用户随意执行所有操作。

我们从如下几个方面来认识Linux权限控制体系:

  • 用户管理
  • 用户组管理
  • 文件权限信息
  • chmod、chgrp、chown命令

2、用户和用户组

所谓用户其实就是登录Linux系统时使用的账号。而用户组则是把相同权限的用户归纳到同一个组内以便于管理,类似于Java开发中权限控制体系里面“角色”的概念。

当我们创建一个账号时如果没有指定属于哪一个用户组,那么Linux就会自动创建一个同名的用户组。

用户操作相关命令

检查用户是否存在

id [用户名]

添加账号

useradd [用户名]

为账号设置密码

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、相关文件

    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:执行

文件:只有可以执行的文件才能够执行

目录:cd进入目录

【4】 -:无

想一想:目录的内容指的是什么?

4.2.4  权限二进制表示

每个权限位上用0表示没有权限,用1表示有权限。

字符表示

二进制表示

十进制换算

rwx

111

7

rw-

110

6

r--

100

4

r-x

101

5

5、权限设置命令

改变文件或目录权限

chmod

改变文件或目录的所属组

chgrp

改变文件或目录的所属主

chown

Linux (七)权限控制的更多相关文章

  1. 第十二章:Linux中权限控制实例

    前言 前文对 Linux 中的权限进行了较为透彻的分析.而本文,则在前文的基础上,具体说明如何在代码中进行权限控制. 下面的代码涉及到以下几个方面: 1. 创建文件时设置文件权限 2. 修改文件的默认 ...

  2. Linux 中权限控制实例

    前言 前文对 Linux 中的权限进行了较为透彻的分析.而本文,则在前文的基础上,具体说明如何在代码中进行权限控制. 下面的代码涉及到以下几个方面: 1. 创建文件时设置文件权限 2. 修改文件的默认 ...

  3. Linux中权限控制ACL命令

    很多小伙伴觉得,Linux的权限管理命令不就是chown和chmod命令吗,什么时候有了ACL了? 什么是ACLACL是访问控制列表(Access Control List)的缩写,主要的目的是在提供 ...

  4. Linux访问权限控制及时间同步实践

    1.编写脚本/root/bin/checkip.sh,每5分钟检查一次,如果发现通过ssh登录失败 次数超过10次,自动将此远程IP放入Tcp Wrapper的黑名单中予以禁止防问 方式一:脚本+定时 ...

  5. 【Linux下权限控制之chmod与chown命令】

    chmod 用于配置文件/目录权限 命名格式:chmod [选项] 文件/目录名 . 权限类别: r 读取 可用数字4表示 w 写入 可用数字2表示 x 执行 可用数字1表示 . 归属类别: u 属主 ...

  6. LInux ACL权限控制

    1.ACL简介 ACL是一种可以实现灵活的权限管理(文件的额外赋权机制)除了文件所有者,所属组和其他人,可以对更多的用户设置权限,这就是访问控制列表(Access Control List) 2.AC ...

  7. [development][suricata] linux下一代权限控制 capabilities

    读suricata源码过程中,  读到了 libcap-ng 应该就是anthroid手机,每次安装app时候, 询问的那个capablities.....吧.... 中文文档: http://rk7 ...

  8. Linux系统文件权限管理(6)

    Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限,每当我们使用用户名登录操作系统时,linux ...

  9. <实训|第九天>掌握linux中普通的权限控制和三种特殊的权限(sst),做合格的运维工程师

    linux中,权限的学习是必不可少的,不论是作为一名运维工程师或者是单一的管理者,学习好linux中的权限控制,你就可以保护好自己的隐私同时规划好你所管理的一切. 权限的学习是很多的,不要认为自己已经 ...

随机推荐

  1. Day_11【集合】扩展案例1_遍历打印学生信息,获取学生成绩的最高分,获取成绩最高的学员,获取学生成绩的平均值,获取不及格的学员数量

    分析以下需求,并用代码实现: 1.按照以下描述完成类的定义 学生类 属性: 姓名name 年龄age 成绩score 行为: 吃饭eat() study(String content)(content ...

  2. vue路由元之进入路由需要用户登录权限功能

    为什么需要路由元呢??? 博猪最近开发刚刚好遇到一个情况,就是有个路由页面里面包含了客户的信息,客户想进这个路由页面的话, 就可以通过请求数据获取该信息,但是如果客户没有登录的话,是不能进到该页面的, ...

  3. Mysql常用sql语句(16)- inner join 内连接

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 利用条件表达式来消除交叉连接(cross joi ...

  4. Java 在Excel中创建透视表

    本文内容介绍通过Java程序在Excel表格中根据数据来创建透视表. 环境准备 需要使用Excel类库工具—Free Spire.XLS for Java,这里使用的是免费版,可通过官网下载Jar包并 ...

  5. Linux,Unix,GNU 到底有什么样的渊源?

    Linux,Unix, GNU,你可能经常听到这些名字被放在一起,比如 “Linux是类Unix系统”, “Linux其实应该叫 GNU/Linux” 等等.为什么会有这些说法,这些名词的历史渊源和背 ...

  6. js对页面中的内容进行拼音搜索,只对后台已经传过来的页面数据进行索引

    实现输入拼音(可以使用拼音首字母来查),来查询出已经存在于页面的数据 注意:这种写法只能适用于页面中已经存在的数据进行检索,大体意思是将本页内的数据拼接成一个字符串,然后通过该字符串去检索匹配的字符串 ...

  7. python实现简单投资复利函数以及实现摇骰子猜大小函数

    复利函数: #!/user/bin/env python #-*-coding:utf-8 -*- #Author: qinjiaxi def invest(amount, rate, time): ...

  8. LAMP搭建wordpress

    centos7安装Apache centos7安装mysql8 centos7安装php7 先登录mysql创建一个wordpress的数据库 create database wordpress 下载 ...

  9. Java基础之值传递

    一.传递类型 我们从c语言开始学习程序设计语言时就知道,参数的传递类型一般有两种:值传递和引用传递.那么什么是值传递什么是引用传递呢? 值传递:指在调用方法时将实际参数的值拷贝一份传递给方法,这样方法 ...

  10. Gym101635C Macarons

    题目链接:http://codeforces.com/gym/101635/attachments 题目大意: 给出一个 \(N \times M\) 的网格图,请你用 \(1 \times 1\) ...