美文网首页Linux技术区
inux基础之用户权限

inux基础之用户权限

作者: 数据革命 | 来源:发表于2017-07-31 11:13 被阅读39次

    inux基础之用户权限

    安全3A

    • Authentication认证
    • Authorization授权
    • Accouting|Audition审计
    • 什么是3A比如说windows 就有3A
    • 华为路由,硬件等等都有
    • 那3A到底什么意思
    • 所谓认证,就是确定你的身份
    • 确认了身份当然就是给你授权,给他适当权限
    • 审计就是所谓的监管,记录他所做事,有了权利你不能为所欲为吧,要监管他做了些什么事

    用户usder

    • 令牌token或identity
    • 那他们什么意思,其实他们和认证相关
    • 每个用户我怎么知道你是谁张三李四
    • 每个用户登录的时候他会在系统自动的标识你的身份,这就是令牌
    • 就像古代军队的军牌和虎符一样
    • 我们普通用户和root用户登录了系统是看ID号的(UID)
    • 我们登录的时候输入的用户名等等一些英文,但是在计算机里面他识别的是数字
      • 通过UID来判断,在底层计算机会自动的把你的用户名字转换为ID 的,在后台有个转换功能
      • 对于管理员来说,我们用的是root帐号,那为什么他是管理员,不是别的帐号,那因为他的ID是0 系统会自动判断你的权限,因为root是系统分配的,他可以改吗 ,可以我们后面在说。
        • 在linux里面用户的范围是有限制的一共是从1-65535 加上0那一共是65536个帐号
        • 但是在每个版本他们普通用户的 默认用户ID都不同比如CentOS 6里面他们的帐号ID是从500开始变的,entOS 7 里面他们的帐号是从1000开始变的。
        • CentOS 5里面1-499,这个是给系统用的,不是给用户用的
        • CentOS 7 以后才从1-999才预留给系统用
          • 所以我们才会显示500到1000
          • 系统帐号一般给进程来使用
          • 比如说我们远程链接的SSH,这个服务
          • 这个服务也是进程,他也需要指定一个帐号的身份来运行,他就要用到一些特定的用户,以谁的身份来运行这就是系统帐号。
          • 一般帐号是不能登录的只能在本机用
          • 我们创建了用户以后系统会默认给我们用户分配ID ,这个ID是可以改的

    组group

    • 同样的组也是一样:组Groupname/GID
    • 那组是什么,组相当于多的用户的集合,比如我们组团玩,吃饭
    • 那组有什么好处,比如说2个用户在一个组,要给他权限,比如给他读和写的权限,那我把权限给组就可以了。
      • 就相当于给组给权限了,他们都在这个组里面,他们会继承这个组的权限
      • 如果又有个帐号想要读和写的权限,那把这个帐号加到这个组就可以了
      • 当然也可以不用组给他权限,可以单独给,但是用户一多就权限就乱了,有了组管理更方便
      • 所以组比是必须了,他是为了方便管理而存在的
        • 当然组也是有ID 号的哦,组也有个帐号也叫root哦,ID也是0哦
        • 当然他是所属组的和用户不同
        • 用户的ID叫UID
        • 组的用户叫GID
        • 那表示组用户名和用户名同名
        • windows 是不允许用户名和组名同名的哦
        • 当然在linux里面我们可以给用户授权也可以给组授权,一般情况下给组授权好一点,以为你方便管理,给组授权代表一个集合更方便

    安全上下文

    程序(program)
    进程(process)

    • 安全上下问什么意思
    • 比如说我给某个用户读和写的权限
    • 他不关用什么工具都可以用
    • 这表示权限不是和工具相关
    • 和这个用户相关
    • 那我在创建个用户
    • 只给他读的权限
    • 那他不管用什么工具那他只有读的权限
    • 这表示用户能怎么用和工具无关和你的身份有关
    • 这就是安全上下文
    • 用户得到的权限是进程的发起者赋予的
    • 这个程序是谁执行的那他就是权限的发起者
    • 进程所能访问的权限取决于,进程运行者的身份,而不是进程本身
    • 你去运行某个程序的时候会检测你运行的环境和用户的身份和权限

    用户组的类别

    • 用户是可以加到几个组的,就是多个组
    • 那么我这里创建3个组分别是Q1,Q2.Q3
    • Q是读;Q2是写;Q3是读和写
    • 这表示只要有用户加到那里组就就会继承他们的权限,比如加到Q3这个用户就会有读和写的权限
    • 如果有个用户在三个组里面都有他, 那他就会继承他们所有的累加权限
      主要组(primary group)
    • 一个帐号必须有个主组,只有一个主组
    • 那什么是主组
    • 主组的意思就是你在公司上班的岗位
    • 就是身份你在公司的身份

    附加组(suoolementary group)

    • 附加组对于帐号来说可以有可以没有
    • 有的话可以有多个
    • 附加组的意思就是你可能身兼数个岗位

    注意不管你是主组或是附加组权限上面没有影响

    用户和组的配置文件

    linux用户和组的主要配置文件:
    /etc/passwd:用户及其属性信息(名称,UIN,主组ID等)
    /etc/group:组及其属性信息
    /etc/shadow:用户密码及其相关属性
    /etc/gshadow:组密码及其相关属性

    /etc/passwd文件

    • psaawd 是一个文本文件

    • 他里面定义了和用户相关ID等资料

    • 文件的格式

    • 运行了vi /etc/passwd命令以后会显示很多字段

    • 我们用其中的一个用户来表示如:root

    • 第一个字段显示的是我们的用户

    • 第二个字段显示的是我们密码现在是X表示

    • 可以用

    • pwunconv 回归以前查看口令界面

    • pwconv 恢复口令最新状态

    • 来查看

    • 第三个字段是系统自动分配的系统ID号,来修改权限等等,可以把普通用户修改为管理员

    • 这表示帐号和名字决定不聊身份,只有帐号ID才能决定身份

    • 但是千万不要把root 修改为0以上不然很麻烦

    • 如果改了只有进单用户去修改

    • 第四字段是组的编号主组的ID

    • 第五字段是放的是用户的描述信息用

    • chfn可以修改用户的描述信息

    • 第六字段是家目录路径

    • 第七字段是shell类型也可以来改shell类型

    • nlogin是给程序用的不是给用户用的

    • 命令 getent shadow 可以用户选择性的来查看
      etc/shadow: 密码加密

    • shadow 影子的意思 ,用来放用户的密码

    • 加密机制

    • 哈希算法

    • 单向加密算法,所谓单向我一但加密,就是不可以退的,所以加密是固定的,所以位数也是一样的
      /etc/group

    • 第一个是用户名

    • 第二个是组的口令

    • 第三个是组的ID号

    • 第四个是附组用户

    • groups可以查出用户所属组

    • groupmems -g 命令 -l 可以查看组里包括那些附属组。

    • 用户密码放在了cat /etc/gshadow 里面

    • gpasswd是用来给组加口令

    • 那组的口令是干啥用的,,当用户想把自己加到某个组里就要用密码。

      • froupmems -g 用户1 -a 用户2 这条命令就是把用户2加到用户1里面.
      • newgrp 用户 临时切换为主组,需要输入密码

      用户和组的配置文件

    • 打开cat /group 后会显示组

    • 找到root用户组

    • 第一个字符root用户显示的是用户

    • 第二个字符显示的是口令

    • 第三个字符是组的ID号

    • 最后是写的附属组

    • id 用户可以查看属于那个组

    • groups 用户也可以查看属于那个组

    • /etc/group 可以添加附属组

    • 进 `cat /etc/passwd可以查看主组

    • groups这个文件放的是附属组,不放主组

    • groumems -g 用户 -l 也可以查看用户这个组里面的附属组成员>这个是组名>这个命令是这个组里包括那些用户,附属组的用户

    • groups 用户这个命令列出的是用户名>这个是用户名别和上面的搞混了,这个命令是查这个用户是属于什么组,运行了列出的就是他的主组

    • 口令已经不放在原来的路径下了,他放在了cat /etc/gshadow这个文件是专来放组的口令的。

    • 给用户加口令用的是passwd

    • 给组加口令用的是gpassws多了一个g

    • 就算他加了口令对我们的group文件没有变化,/etc/gshadow才是放口令的

    • 可以管理员账号用grupmems -g 用户1 -a 用户2 这条命令是把用户2加到用户1组里面,千万别写反了,可以用groups 用户2来查看有没有加入进去

    • 当我把一个用户加到组里面以后,加入的那个组必须要重新登录才可以,只有重新登录以后才他获取自己的组成员关系

    • 虽然属于一个组但是他们不同步就需要输入口令

    • 如果想输入不需要口令需要去/etc/gshadow里面修改让他们同步才不需要输入密码

    • gshadow文件他决定了切换需要不需要口令

    • 最好是cat /etc/group 和 /etc/gshadow文件最好是一样的否则会出现一些莫名奇妙的问题,最好是同步

    • 如果我已经在这个附属组里面了那就不需要输入口令,如果我们不在需要去里面加。

    • 组不设定口令是没有机会在往里面加的

    • gpasswd -a 用户 组名这样可以加用户

    • gpasswd -d 用户 组名 这样可以去掉用户

    • gpasswd -A 用户 组名 这样可以把用户设为组的管理员

    • gpaswd -M 用户 用户 用户 组名 可以多用户添加用户到组里面

    • 不要迫不得已不要修改文件

    • 如果你一定想改就用vipw

    • pwck可以检查命令的语法

    • grpck是对组来进行检查管理的是组

    • 最好不要改文本,最好用命令改
      用户和组管理命令

    • useradd 是创建用户

    • usermod 是修改用户

    • userdel 是删除用户>这个命令是默认不删除家目录的,加入删除了用户会显示出UID号

    • 加入-ruserdel -r 用户 才会把用户家目录删除

    • 删除用户只能一个一个删除,不能多用户删除

    组管理

    • groupadd 增加组用户
    • groupmod 修改组用户
    • groudel 删除组用户

    useradd

    • -u是指定用户useradd -u uid 用户
    • -o 配合-u 选项,不检查UID的唯一性,加入Uid一样他们会共享一个家目录
      --N 创建用户的时候直接加组
    • -g 创建用户的时候指定组useradd -g 主组 用户
    • -r 创建系统用户 系统用户的家目录是不会自动生成的
    • -G 指定附属组useradd -g 主组 -G 附属组可以一次指定多个附属组
    • -d是指定家目录 指定家目录要这个目录要必须不存在 useradd -d 路径 用户
    • -s 指定shell类型useradd -s shell类型 -r 用户用-r系统账号家目录不会自动生成
    • 一般写是 useradd -s shell类型 -r -d 家目录 用户 这样才会创建家目录``如:useradd -s /shin/bash -r -d /app/apache apache`
    • -M 是不创建家目录如useradd -M 创建的用户名`
    • chpasswd 可以批量修改口令如 cat passwd.t nxt| chpasswd
    • 文件权限

    • 权限(peumission)
    • 在linux权限分配里面就只有三种
    • r read 读 读取
    • w write 写 写入
    • x excute 执行
    • 其中所有者是用前三个字母来分别是用r w x 来表示 输入有会显示没有用- 来表示
    • 因为有三种人 ,三种权限分配所以有9个字符
    • 中间是所属组
    • 最后一个是其他人
    • chown 更改所有者
    • chgrp 更改所属组
    • ————————————————
    • chown 这个命令可以修改组和所有者有几个方式
    • chown . 组名 文件
    • chown : 组名 文件
    • chown 所有者:组名 文件
    • chouwn 所有者: 文件假如不加组名会默认加入所有者的组
    • chmod 添加权限 + - =
    • + 是添加权限
    • -是去掉权限
    • = 是覆盖权限
    • chmod -- rederence 组1 组2 这是参考组1给2组配权限
      ————————————————————————
    • u 是所有者
    • g 所属组
    • o是其他_______________________________________
    • 使用格式
    • chmod u+x 文件名
      ——————————————————————
    • 所有者是可以改文件权限的
    • usermod -G 组 用户可以添加组
    • 执行权限是对管理员账号是有效的,如果其中有1个可执行的的管理员就可以执行,如果都没有管理员账号也不能执行。
    • ` 删除文件和文件本身权限无关,和目录有关
    • umask + defaule permission
      -umask 是改变创建文件时候权限大小

    • umask掩码
    • umask -s 显示权限
    • umask修改权限
    • 如:umask u=rw,g=r,o=x
    • umask -p 显示掩码
    • 二进制程序没有权限一样能执行
    • suid sgis 权限必须放在可执行程序上
      • 功能是继承所有者或所属组的权限



    相关文章

      网友评论

        本文标题:inux基础之用户权限

        本文链接:https://www.haomeiwen.com/subject/dwkmfxtx.html