• 从零开始学Linux系统(五)用户管理和权限管理


    权限管理:

    常识:

    chmod  U-所有者  g-所属组  O-其他人
    r-4-可读  w-2-可写  x-1-可执行  s-4-SetUID    s-2-SetGID    t-1-粘着位

    注:目录的写权限-可对文件增删

          文件的写权限-可对文件编辑

    默认权限:755

    查看:nmask     显 示为0022    //实际权限(取补): 777-022 = 755

    设置:umask -S  0022 
    修改:umask 027     // 777-027 = 750 修改为750的权限   
    注:linux权限规则:缺省创建的文件不能授予可执行x权限,所以实际是644

         如0022权限编号的第一位是用来指定特殊权限的,后面位数分别对应r、w、e权限;

    授予权限:

    chmod u+wx  文件名    或     chmod 641 文件名

    疑问:既然/passwd对于普通用户是只读的,那普通用户又是如何用passwd修改密码的呢??

    因为passwd命令,所对应etc/passwd文件的所有者是root, 而普通用户是具有s 【SetUID】权限;

    【针对所有者】SetUID权限: 当一个可执行程序具有SetUID权限,用户将自动以这个程序所有者的身份运行

    授予SetUID权限的方式: chmod u+s   或  chmod 4755 (SetUID - 4

    授予SetUID权限的方式: chmod u-s   或  chmod 0755 (SetUID - 4)

    注:必须时可执行程序,不是可执行的会是大写的S,并不起作用;

    扩展:【针对所属组】s-SetGID - 2  功能与SetUID相似  ;设置 chmod g+s   或  chmod 2755

             【针对其他人】t-粘着位 - 1  如果一个权限为777目录具有粘着位,所有人都可以在该目录下创建,但只能删除自己所创建的文件;设置 chmod g+t  或  chmod 1755

    用户管理:

    用户分类:

    Linux用户分为3种: 通过 /etc/passwd 文件中的UID

    超级用户 (UID=0,如: root) -- 它不收系统设置的限制

    普通用户(UID 500-60000)

    伪用户(UID 1-499)【与系统和程序服务相关,无宿主目录,不能登录系统】

    命令:

    添加:

    添加用户组:groupadd 组名

    添加用户:useradd 用户名   -g 【缺省组】   -G【附加的多个组】 -c【描述】 -e【失效时间】   
    设置密码:passwd                         密码

    设置组密码:gpasswd   组名            密码

    修改

    修改用户信息:usermod

          修改用户名  usermod -l  新用户名  旧用户名

      修改所属组  usermod -G  组名  用户名  

    设置组密码及管理组内成员:gpasswd

      修改组中用户        gpasswd -a 用户名 组名

      删除从组中用户        gpasswd -d 用户名 组名

          设置组的管理员  gpasswd -A 用户名 组名

    修改文件的所有者,所属组:chown   chgrp
      chown 用户名 文件名
      chgrp 组名  文件名

    切换:

    切换用户:su -  用户名

    通过组密码,切换用户组(将不是该组的用户加入该组) :    newgrp  组名

    查看:

    查看所属组:   groups   用户名

    查看用户id和组的信息: id

    用户沟通:

    用户间实时交流:不在线的用户永远收不到
    write 用户名   内容   Ctrl+d退出   
    Wall 内容 Ctrl+d退出  发送给所有人

    配置文件:

    登录配置:

    登录设置:定义了添加用户时缺省的设置信息

    /etc/login.defs  

    /etc/default/useradd  

    登录中:

    用户信息文件  /etc/passwd   格式:【 用户名:密码位:UID:GID:注释:宿主目录:Shell类型】 每一行对应一个用户,对于普通用户时只读文件

    用户密码文件  /etc/shadow   格式:【用户名:加密密码:最后修改时间:修改最小间隔:修改最大间隔:警告时间:闲置时间:失效时间:标志】

    注:手动将用户密码置空,该用户可以不需要密码登录系统(忘记密码时可以采用哦)

    备注:系统是先将密码存到/passwd,然后转换到/shadow中;只是系统自动转换;

    新用户信息文件  /etc/skel   

    注:每天添加一个用户,系统会自动将/skel文件夹中文件拷贝一份到该用户的宿主目录中;

    因此,手动添加用户步骤:

    1.文本编辑修改/passwd文件

    2.建立宿主目录,别忘了目录权限的修改

    3.手动将/skel下的文件copy一份到该用户的宿主目录中;

    登录提示信息:

    用户登录前信息文件 /etc/issue

    用户登录后信息文件 /etc/motd

    用户组信息:

    用户组文件  /etc/group   格式:【 组名:组密码位:GID:组内用户】

    用户组密码文件 /etc/gshadow

     注:组密码位,不是组的用户享受该组的服务;但是有些Liunx并不支持;

    通过组密码,切换用户组(将不是该组的用户加入该组) :    newgrp  组名

  • 相关阅读:
    小任务之使用SVG画柱状图~
    webpack.config.js配置遇到Error: Cannot find module '@babel/core'问题
    今日笔记
    querySelector与getElementBy等的区别
    JavaScript实现邮箱后缀提示功能
    JavaScript中按键事件的e.keyCode || e.which || e.charCode
    跳转页面&回到上一页
    echarts.js 做图表的插件
    局域网内电脑远程访问共享
    同引擎mysql数据库转导快
  • 原文地址:https://www.cnblogs.com/zhaojinxin/p/7563092.html
Copyright © 2020-2023  润新知