• linux用户及权限管理


    【文件管理、管道、用户及组管理、用户及权限管理】用户及组管理

    用户与组管理

      Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。实现用户账号的管理,要完成的工作主要有如下几个方面:

      1.用户账号的添加、删除与修改。

      2.用户口令的管理。

      3.用户组的管理。

      Linux用户分为两种,分别是管理员(UID:0)和普通用户(UID:1-65535),普通用户又分为系统用户与登录用户。

      :一个程序可以访问哪些内容取决于这个程序的发行者是哪一个的。

      linux组可分为管理员组(GID:0)与普通用户组(1-60000)

      :centos6版本与centos7版本的UID与GID略有不同。

      此外,用户组还可以划分为基本组(用户在创建时默认创建一个与其名字相同的基本组)与附加组(除了已有的基本组以外,还可以添加其他组,其他组就是此用户附加组)

      所以组名通用户名,且只包含一个用户就叫做私有组,而组内包含多个用户叫做公有组

    Linux用户和组相关的配置文件

      用户和用户组相关的信息都存放在/etc/passwd,/etc/shadow,/etc/group以及/etc/gshadow文件下。下面分别介绍这些文件的具体内容。

      1./etc/passwd

      此文件下保存了用户及其属性信息。其中每条信息从左到右被冒号分割成了7个部分,username(用户名):x(密码占位符,真正的密码自然不能放在这里了,太不安全了):UID(用户ID):GID(用户组ID):存放用户的注释信息:用户家目录:用户默认使用的shell。

      2./etc/shadow

      此文件保存了用户密码及其相关属性信息,其中每条信息从左到右被冒号分割成9个部分,用户名:密码(被加密过的,密码中有“!”或者“*”用户已被禁用):最近一次修改密码的日期,自linux元年开始的天数(1970年1月1日开始):密码最短使用时间:密码最长使用时间:密码告警时间(在密码过期前n天进行告警,需要修改密码了):不活动时间(超出警告时间后m天仍可登录):失效时间(到达此时间,用户无法使用):保留位暂不使用。

      3./etc/group

      此文件保存了用户组及其属性信息,每一行被冒号从左至右分割成了4个部分,组名(创建一个用户就会创建一个同名的组):x组密码占位符(与用户密码一样也是存放在其他位置):GID:以逗号分隔的用户列表,以此组为附加组的用户的用户列表。

      4./etc/gshadow

      此文件保存了组密码及其相关属性信息,每一行被冒号从左至右分割成了4个部分,组名(创建一个用户就会创建一个同名的组):密文密码(为空时只有该组成员可获得权限,“!”与“*”则不需要密码可直接加入):用户组管理员(是逗号分隔的用户列表,用户组管理员可以修改密码和组成员,也很组里其他成员拥有相同的权限):成员(以此组为附加组的用户的用户列表,应该要和/etc/group下的用户列表一样)

     用户与组相关管理常用命令

       一、用户创建:useradd

      使用方法:useradd [options] login

      常用选项:

      -u:--uid UID:指定UID,定义在/etc/login.defs

      -g:--gid GROUP:指明用户基本组,可为组名也可以是GID

      -G: GROUP1[,GROUP2,...[,GROUPN]]]:指定用户所属的附加组,组事先存在

      -c:--comment COMMENT:用户注释信息

      -d:/PATH/TO/ HOME_DIR:指定的路径为用户的家目录:通过复制/etc/skel此目录并重命名实现,指定的家目录路径如果事先存在,则不会为用户复制环境配置文件

      -s:--shell SHELL:指定用户的默认shell,可用列表存放在/etc/shells下

      -r:创建系统用户。

      :默认值设定在/etc/default/useradd中。可用 useradd -D命令查看创建用户的默认配置

      二、创建组:groupadd

      使用方法:groupadd [option]...  group_name

      常用选项:

      -g GID:指明GID号

      -r:创建系统组

      三、查看用户相关ID信息:id

      使用方法:id [OPTION]... [USER]

      常用选项:

      -u: 仅显示有效的UID

      -g: 仅显示用户的基本组ID

      -G:仅显示用户所属的所有组的ID

       四、切换用户或以其他用户身份执行命令:su

      使用方法:su [options...] [-] [user [args...]]

      切换用户方式:

        非登录式切换,不会读取目的用户的配置文件进行初始化:su USERNAME

        登录式切换,会读取目的用户配置文件,完全切换:su - USERNAME或者su -l USERNAME

      换身份执行命令:

      su [-] username -c  'COMMADN'

      五、用户加密:passwd

      使用方法:passwd[options]username:修改指定用户密码,仅root用户有权限。

      常用选项:

      -l:锁定指定用户

      -u:解锁指定用户

      -n:mindays:指定最短使用期限

      -x:maxdays:最大使用期限

      -w:warndays:提前告警期限

      -i:inactivedays:非活动期限

      从标准输入接收用户密码:echo “password” | passwd --stdin username

      六、用户属性修改:usermod

      使用方法:usermod [options] LOGIN

      常用选项:

      -u,UID:修改用户的ID为新UID;
      -g, --gid GROUP:修改用户到新基本组;
      -G,  GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;若保留原有,则同时使用-a选项(append)
      -s,新的默认shell
      -c,  COMMENT:新的注释信息;
      -d,  HOME_DIR:新的用户家目录;用户原有的文件不会被转移至新家目录下;若要移动则使用-m选项。
      -l, login name:新的用户名;
      -L,lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";
      -U, --unlock:解锁用户的密码;
      七、删除用户:userdel

      使用方式:userdel [options] LOGIN

      常用选项-r:删除用户时一并删除其家目录,默认不删除

      八、组属性修改:groupmod

      使用方式:groupmod [options] GROUP

      常用选项:

      -g GID:新的GID

      -n group_name:新组名

      九、组删除:groupdel

      使用方式:groupdel GROUP

      十、组密码:gpasswd

      使用方式:gpasswd [option] group

      常用选项:

      -a USER:将user添加至指定组

      -d USER:删除用户以当前组命名的附加组

      -A USER1,USER2,...:设置有管理权限的用户列表

      十一、修改用户属性:chage

      使用方式:chage [options] LOGIN

      常用选项:

      -d:修改最后一次修改密码的时间

      -E:修改用户失效时间

      -I:修改密码过期怒限时间

      -W:修改告警天数

      -m:修改密码最小使用天数

      -M:修改密码最长使用天数

    通过文件的方式增加用户

      在linux中一切皆文件,那么我们操作文件就可以自己创建出一个用户来。当然实际操作时不会这样创建用户只是用来帮助理解。

      第一步,在/etc/passwd 中创建一个用户;

    rose:x:1003:1003:/home/rose:/bin/bash
    

      第二步,在/etc/shadow增加密码等信息;

    rose:!!:17321:0:99999:7:::
    

      第三步,在/etc/group 增加主组;

    rose:x:1003:
    

      第四步,在/etc/gshadow 设置组密码信息;

    rose:!::
    

      第五步,为用户设置邮箱;

    [root@localhost /]# touch /var/spool/mail/rose
    

      第六步,设置家目录,并为家目录中增加一些隐藏文件

    [root@localhost /]# mkdir /home/rose
    [root@localhost /]# cp -r /etc/skel/.[!.]* /home/rose/
    
    [root@localhost /]# id rose
    uid=1003(rose) gid=1003(rose) groups=1003(rose)

    文件的权限

      文件权限针对的对象是:

      owner:属主,u

      group:属组,g

      other:其他,o

      对于文件而言:

      文件可读(r):可以查看其内容。

      文件可写(w):可修改文件内容。

      文件可执行(x):可以把文件提请内核启动为一个进程。

      对于目录而言:

      目录可读(r):可以使用ls查看目录中文件列表

      目录可写(w):可在此目录中创建或删除文件

      目录可执行(x):可以使用ls-l查看目录中文件,可以cd进目录。

    权限管理类命令

      一、修改文件权限(chmod)

      使用方法:

      1. chmod [OPTION]... MODE[,MODE]... FILE...

      可以直接将rwx直接赋值给相应的用户类型:u为属主,g为属组,o为其他用户,a为所有用户(同ugo=---)

      或者直接操作一类用户的一个权限位(u+x,o-r)

           2.chmod [OPTION]... OCTAL-MODE FILE...
      直接使用八进制来修改r=4,w=2,x=1.其中-R可递归修改权限。
           3.chmod [OPTION]... --reference=RFILE FILE..
      参考其他文件的权限
    查看文件权限
    [root@localhost /]# ll -lh /dj
    total 16K
    -rw-r--r-- 1 root root  51 Jun 14 10:36 hello_world.py
    -rw-r--r-- 1 root root  92 Jun 15 10:00 name_daxiaoxie.py
    -rw-r--r-- 1 root root  84 Jun 15 09:44 name.py
    -rw-r--r-- 1 root root 359 Jul 23 02:48 test.py
    修改权限
    [root@localhost /]# chmod 775 /dj/hello_world.py 
    [root@localhost /]# ll -lh /dj
    total 16K
    -rwxrwxr-x 1 root root  51 Jun 14 10:36 hello_world.py
    -rw-r--r-- 1 root root  92 Jun 15 10:00 name_daxiaoxie.py
    -rw-r--r-- 1 root root  84 Jun 15 09:44 name.py
    -rw-r--r-- 1 root root 359 Jul 23 02:48 test.py
    使用第三种方式
    [root@localhost /]# chmod --reference=/dj/hello_world.py /dj/test.py 
    [root@localhost /]# ll -lh /dj
    total 16K
    -rwxrwxr-x 1 root root  51 Jun 14 10:36 hello_world.py
    -rw-r--r-- 1 root root  92 Jun 15 10:00 name_daxiaoxie.py
    -rw-r--r-- 1 root root  84 Jun 15 09:44 name.py
    -rwxrwxr-x 1 root root 359 Jul 23 02:48 test.py
    [root@localhost /]# 

      二、修改文件的属组属主(仅使用root用户)

      1.修改属主(chown)

      使用方式:chown[OPTION]...[OWNER][:[GROUP]]FILE...或使用--referrence

      chown owner|owner:group|:group file (其中:可用.替换,并且可以使用-R递归更换)

      2.修改属组(chgrp)

      chgrp[option]...group file或--referrence方式

      3.文件或目录创建时的遮罩码:umask

      file:666-umask(若某类用户权限减得结果中存在x权限则将其权限+1)

      dir:777-umask

      umask:查看当前值

      umask#:设定值

  • 相关阅读:
    sql server 纵横表的转换
    url参数的编码解码Demo
    SqlServer 列的增加和删除
    asp.net下ajax.ajaxMethod使用方法(转)
    js中document.all 的用法
    cookie跨域,跨目录访问及单点登录。
    错误记录:html隐藏域的值存字符串时出错
    .NET下用C#实现邮箱激活功能
    js与C#服务端 json数据交互
    sqlserver数据可空插入报错
  • 原文地址:https://www.cnblogs.com/Jeffding/p/7191637.html
Copyright © 2020-2023  润新知