linux用户组_linux用户组命令 - CSDN
精华内容
参与话题
  • Linux下的用户和权限

    万次阅读 多人点赞 2020-02-24 19:48:54
    目录 一:用户和信息的查看 查看用户信息 查看密码信息 查看信息 特殊wheel 二:用户和信息的管理 用户管理 管理 三:文件权限 文件权限的查看 ...相关文章:Linux用户方面的加固...

    目录

    一:用户和组信息的查看

    查看用户信息

    查看密码信息

    查看组信息

    特殊组wheel

    二:用户和组信息的管理

    用户管理

    组管理

    三:文件权限

    文件权限的查看

    文件权限的修改 

    ACL控制权限 setfacl  、 getfacl

    Umask、Suid、Sgid、粘滞位


    前言:在linux中一切都是文件(文件夹和硬件设备是特殊的文件),如果有可能尽量使用文本文件。文本文件是人和机器能理解的文件,也成为人和机器进行交流的最好途径。由于所有的配置文件都是文本,所以你只需要一个最简单的编辑器就可以修改。由于修改文本文件如此简单,所以Linux系统本身肯定要加以规范。这就引出了用户(组)和权限这2个概念。而这2个概念的引入,完美的保证了Linux的安全性,同时没有添加复杂性。由于一切皆为文件。所以Linux引入了3个文件来管理用户(组), /etc/passwd存放用户信息,/etc/shadow存放用户密码信息,/etc/group存放组信息,然后在文件系统中的每个文件的文件头里面添加了用户和文件之间的关系信息。

    用户、组、文件间有三种关系

    • 用户和文件的关系只有2种, 拥有和不拥有。
    • 组和文件的关系只有2种,  拥有和不拥有。
    • 用户和组的关系只有2种, 属于和不属于。

    将这三种关系叠加,用户和文件的最终关系可以归纳为3类

    • 用户拥有该文件
    • 用户属于某个组,某个组拥有该文件(即用户通过属于某组来拥有该文件) 
    • 用户不拥有该文件

    一:用户和组信息的查看

    在Linux下,用户分为三类:超级用户(root)、普通用户、程序用户。

    • 超级用户:UID=0
    • 程序用户:Rhel5/6,UID=1-499;                Rhel7,UID=1-999
    • 普通用户:Rhel5/6,UID=500-65535;        Rhel7,UID=1000-60000

    有三个命令可以查看用户的相关信息

    cat  /etc/passwd         #查看用户信息
    cat  /etc/shadow         #查看用户的密码信息
    cat  /etc/group          #查看用户的组信息

    查看用户信息

    cat /etc/passwd   #/etc/passwd默认权限为644,其最小权限为444

    用户信息的显示有7个字段

    1.   字段1:用户名  --> root
    2.   字段2:密码占位符  --> x (这里都是用x代替)
    3.   字段3:uid,用户id  --> 0
    4.   字段4:gid ,组id --> 0
    5.   字段5:用户描述信息  --> root
    6.   字段6:家目录  -->  /root
    7.   字段7:登录 shell   (用户登陆shell ,当为/bin/bash表示可以登陆,/sbin/nologin表示不被授权登陆)

    注:一般来说,只有 root 用户的 uid 是为0的。如果黑客把一个普通用户的 uid 修改为0的话,那么他只要以普通用户的用户名和密码登录,系统就会自动切换到root用户。所以,系统加固的时候一定要过滤出有哪些用户的UID为0

    使用脚本查看用户信息

    #! /bin/bash
    # Author:谢公子
    # Date:2018-10-12
    # Function:根据用户名查询该用户的所有信息
    read -p "请输入要查询的用户名:" A
    echo "------------------------------"
    n=`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}' | wc -l`
    if [ $n -eq 0 ];then
    echo "该用户不存在"
    echo "------------------------------"
    else
      echo "该用户的用户名:$A"
      echo "该用户的UID:`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $3}'`"
      echo "该用户的组为:`id $A | awk {'print $3'}`"
      echo "该用户的GID为:`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $4}'`"
      echo "该用户的家目录为:`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $6}'`"
      Login=`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $7}'`
      if [ $Login == "/bin/bash" ];then
      echo "该用户有登录系统的权限!!"
      echo "------------------------------"
      elif [ $Login == "/sbin/nologin" ];then
      echo "该用户没有登录系统的权限!!"
      echo "------------------------------"
      fi
    fi
    

    查看密码信息

    cat  /etc/shadow     #shadow默认权限为600,最小权限为400

    密码信息的显示有9个字段

    1.   字段1:用户名
    2.   字段2:通过sha-512加密(二次加密,在经过第一次加密后,第二次加入随机数再次加密)的密码
    3.   字段3:最后一次修改密码距离1970年1月1日的天数间隔
    4.   字段4:密码最短有效期
    5.   字段5:密码最长有效期
    6.   字段6:密码过期前几天进行警告
    7.   字段7:账户过期后,被锁定的天数
    8.   字段8:账号失效时间距离1970年1月1日的天数间隔
    9.   字段9:未分配功能

    字段2是用户的密码位,如果是 * 表示该用户禁用,!! 表示用户密码未初始化,如果为空,表示空密码的

    :借助chage指令,可以修改用户的密码策略,也可通过编辑 /etc/shadow (不建议)
    比如:chage   -l   bob,查看用户bob的密码策略
               chage  -M  90  bob,将用户bob的密码有效期修改为90天

    脚本实现修改用户的密码策略

    #! /bin/bash
    # Author:谢公子
    # Date: 2018-10-12
    # Function: 实现对用户密码策略的设定,如密码最长有效期等
    read -p  "设置密码最多可多少天不修改:" A
    read -p  "设置密码修改之间最小的天数:" B
    read -p  "设置密码最短的长度:" C
    read -p  "设置密码失效前多少天通知用户:" D
    sed -i '/^PASS_MAX_DAYS/c\PASS_MAX_DAYS   '$A'' /etc/login.defs
    sed -i '/^PASS_MIN_DAYS/c\PASS_MIN_DAYS   '$B'' /etc/login.defs
    sed -i '/^PASS_MIN_LEN/c\PASS_MIN_LEN     '$C'' /etc/login.defs
    sed -i '/^PASS_WARN_AGE/c\PASS_WARN_AGE   '$D'' /etc/login.defs
    echo "已设置好密码策略......"

    查看组信息

    cat /etc/group

    组信息的显示有四个字段

    1.   字段1:组名称 --> root
    2.   字段2:组密码占位符  --> x
    3.   字段3:gid --> 0
    4.   字段4:组成员

    注:一个用户只能有一个主要组,最多可以有31个附加组。主要组是用户创建文件时默认的所有组,附加组主要用于权限管理。不论用户属于哪个组,用户都能拥有该组的权限

    特殊组wheel

    在Linux中有一个特殊组wheel,wheel组就类似于一个管理员的组。在linux中,即使我们有系统管理员root的权限,也不推荐用root用户登录。一般情况下用普通用户登录就可以了,在需要root权限执行一些操作时,再su登录成为root用户。但是,任何人只要知道了root用户的密码,就都可以通过su命令来登录为root用户--这无疑为系统带来了安全隐患。所以,将普通用户加入到wheel组中,被加入的这个普通用户就成了管理员组内的用户了,然后可以修改配置文件使得只有wheel组内的用户可以切换到root用户。

    相关文章:设置只有指定用户能使用su命令切换到root用户

    二:用户和组信息的管理

    用户管理

    新建用户系统会做三件事

    1.  新建用户时,系统会将 /etc/skel 中的目录及文件拷贝到新建用户的家目录中
    2.  在 /var/spool/mail 中,新建用户名的邮箱 
    3.  在 /etc下的 passwd 、shadow 、group文件中,增加用户信息

    添加用户时指定参数:

    • 添加用户时,使用 -g 指定新建用户的组,使用 -u 指定用户uid
    • -G 参数可以指定新建用户的附加组
    • 使用  -s   /sbin/nologin  指定创建的用户没有登录系统的权限
    • 还可以使用 -M 参数,指定创建的用户不在home目录下创建家目录
    • 还可以使用 -d 参数 ,指定其家目录
    useradd  tom     #新建tom用户,其配置默认
    useradd  -u 2000  -g  james   bob   #新建bob用户,将其uid设置为 2000,将其所在的组设置为  james ( 不修改默认是bob ),前提是james组已经存在
    useradd  -G root tom   #新建tom用户,指定其附加组为root
    useradd  -s /sbin/nologin tom #新建tom用户,但是不让tom用户有登录系统的权限,默认是 /bin/bash ,没登录权限的话是 /sbin/nologin
    useradd  -d /test  tom     #新建tom用户,指定其家目录为 /test (默认是 /home/tom)
    useradd  -M tom   #新建tom用户,但是不在home目录下新建目录(默认创建新用户会在home目录下新建同名的家目录)
    
    useradd xie;echo 'xie:123456'|chpasswd  #添加用户xie,密码为 123456

    以下这条命令直接生成一个具有root权限的用户:venus,密码为:123qwe 。前提是这条命令的执行需要root权限。

    useradd -p `openssl passwd -1 -salt 'user' 123qwe` -u 0 -o -g root  -G root -s /bin/bash -d /home/user venus

     注:用户创建时,默认的属性(比如UID,GID,是否创建家目录,创建邮箱等)都是通过/etc/login.defs文件控制的,修改此文件的属性,会影响以后创建的所有用户。也可以创建用户时指定参数修改,这样只对当前创建用户有效

    删除用户

    userdel  -r  james  #删除用户一定记得加 -r 参数 !!
    1. 不加 -r 参数,只删除 passwd、shadow 和 group 文件中的用户信息,/home 目录下的文件不删除,/var/spool/mail/ 下的文件不删除
    2. 加  -r 参数,删除 passwd、shadow 和 group 文件中的用户信息,同时删除用户的家目录和邮箱

    修改账户密码

    passwd  james   #给james用户设置密码

        当前用户为 root 时:

    1. 不需要知道当前的密码
    2. 设置新密码时,不需要遵循密码要求

        当前用户为普通用户时:

    1. 需要知道当前密码
    2. 设置新密码时,必须遵循密码要求(1.不能少于8个字符,2.满足复杂度要求)

    修改账户属性: 

    usermod   参数   james  
    1.   -s 修改用户的登陆shell       usermod   -s   /sbin/nologin    james 
    2.   -L 账户锁定  (可以通过 passwd -S  账户名 查看账户的状态)
    3.   -U 解锁账户
    4.   -g  修改账户所在组      例: 将bob所在组改成james:usermod  -g  james   bob   
    5.   -G  给账户添加附加组  例:给bob添加一个附加组john:usermod  -G  john  bob      ;                    从附加组john中删除用户bob: gpasswd -d  bob  john
    6.   -a  默认情况下,当用户已经存在附加组时,再添加附加组则会把之前的附加组给替换了,加 -a 参数,则不替换原来的附加组,意味着该用户可以有多个附加组。
    [root@Redhat ]# id james
    uid=1000(james) gid=2002(james) 组=2002(james)
    
    [root@Redhat ]# usermod -g aaa james ; id james;  //修改用户的主组为aaa
    uid=1000(james) gid=2000(aaa) 组=2000(aaa)
    
    [root@Redhat ]# usermod -G xie james ;id james;   //给用户添加附加组 xie 
    uid=1000(james) gid=2000(aaa) 组=2000(aaa),1000(xie)
    
    [root@Redhat ]# usermod -G xiao james ;id james;  //给用户添加附加组xiao,并且如果原来有附加组的话替换原来的附加组
    uid=1000(james) gid=2000(aaa) 组=2000(aaa),2001(xiao)
    
    [root@Redhat ]# usermod -aG xie james;id james;  //给用户添加附加组 xie ,并且不替换原来的附加组
    uid=1000(james) gid=2000(aaa) 组=2000(aaa),1000(xie),2001(xiao)
    

    锁定和解锁用户 :

    • 锁定用户: usermod  -L  xie    或   passwd  -l   xie
    • 解锁用户: usermod  -U  xie   或   passwd  -u  xie
    • 查看用户状态:passwd  -S xie

    注:虽然 usermod 和 passwd 这两个命令都可以锁定和解锁用户,但是还是有区别的。区别之一就是passwd命令操作完后会有提示。还有一个区别就是 passwd 的权限比 usermod 大,使用 usermod 锁定的用户可以用 passwd 来解锁,但是使用 passwd 锁定的用户不能用 usermod 来解锁

    组管理

    添加组 : groupadd  xie

    1.   -g, --gid                         为新组使用 GID,例 groupadd  -g 2000  xie   创建新组xie,并且gid设置为2000
    2.   -K, --key                        不使用 /etc/login.defs 中的默认值
    3.   -o, --non-unique            允许创建有重复 GID 的组
    4.   -p, --password               为新组使用此加密过的密码
    5.   -r, --system                    创建一个系统账户

    删除组: groupdel    xie

    1.   -r , --remove                            删除主目录和邮件池

    注:只能删除附加组,而不能删除主组!!!!

    修改组的属性: groupmod  xie

      -g, --gid GID                 将组 ID 改为 GID
      -n, --new-name            改名为 NEW_GROUP
      -o, --non-unique          允许使用重复的 GID

    groupmod  -g  2000 bob       //将bob组的GID修改为2000
    groupmod  -n  aaa   bob      //将bob组的名字改为aaa
    groups    bob                //查看bob所属的所有组

    修改组中的用户:groupmems 

    groupmems   -a  john  -g  xie     将用户john加到xie组中
    groupmems   -d  john  -g  xie     将用户john从xie组中移除 或 gpasswd -d  john  xie

    三:文件权限

    文件权限的查看

    使用 ls -lh 可以查看文件的具体信息,其中包括不同的用户对该文件的权限

    drwxr-xr-x.  3 root root     97 8月  24 23:04 abrt
    -rw-r--r--.  1 root root     16 8月  24 23:08 adjtime
    

    我们拿 abrt 这个目录和 adjtime这个文件来解释。

     前11个字符确定不同用户能对文件干什么
     第一个字符代表文件(-)、目录(d),链接(l) 设备(C) 块设备(b)
     其余字符每3个一组(rwx),读(r)、写(w)、执行(x)

    •  第一组rwx:文件所有者的权限是读、写和执行
    •  第二组rw-:与文件所在组同一组的用户的权限是读、写但不能执行
    •  第三组r--:  不与文件所有者同组的其他用户的权限是读不能写和执行

     最后的 代表没有ACL扩展权限  + 代表有ACL扩展权限。                                         
    针对文件:

    •  r 表示可以读取文件
    •  w 表示可以对文件内容做修改
    •  x 表示文件可执行

    针对目录:

    •  r 表示可以列出目录内容(可以使用ls),前提是得有 x 权限,因为如果你都不能进入这个目录,你怎么列出该目录的内容
    •  w 表示可以在目录中增删改查,前提是得有 x 权限,因为如果你都不能进入这个目录,你怎么增删改查
    •  x 表示可以进入目录,但不一定能读取目录内的内容。要想读取目录的内容,需要有 r 权限,要想修改,需要有 w 权限!

    注:目录的权限比较特殊,可以看到,x 权限是目录最基本的权限,因为如果你都不能进入该目录,那读取内容和增删改查就更无从所起了。还有一个就是当你对目录拥有 rwx 权限的时候。倘若目录中有一个文件,该文件对你的权限是没有 w 权限的,但是因为你先匹配到该目录的权限,可以对目录中的文件修改,所以你可以强制修改该文件,保存退出!

    后面的各个字段的含义:

    • 3 代表文件的链接数是3;
    • root 代表该文件的所属用户
    • root 代表该文件所属的组。一般文件所属的组就是文件所属主所在的组,也有特殊情况,可以自己随意修改!!
    • 97 代表文件的大小;
    • 8月 24 23:04代表文件最后的修改日期;
    • abrt 表示的是文件名
    例子:         这里有几个用户,其UID和GID分别如下
    root 用户:   uid=0(root)     gid=0(root)     groups=0(root)
    xie  用户:   uid=1000(xie)   gid=1001(john)  groups=1001(john)
    john 用户:   uid=1001(john)  gid=1001(john)  groups=1001(john)
    james用户:   uid=1002(james) gid=1002(james) groups=1002(james)
    jerry用户:   uid=1003(jerry) gid=1002(james) groups=1002(james)
    
    然后,我们以root身份新建一个文件夹 test ,则test默认的权限如下
    drwxr-xr-x 2 root root 4096 Aug 31 19:16 test
    我们修改其文件权限,文件所有者,文件所在组,修改为如下
    drwxrwx--- 2 xie james 4096 Aug 31 19:19 test
    最后得到的结论如下:
    
    xie用户的身份是文件所有者,其可以在该目录下创建文件,且创建文件的信息如下  -rw-r--r-- 1 xie   john  0 Aug 31 19:45 file1
    john用户的身份是other,对该文件不可以做任何操作
    james用户是身份是文件所属组的成员,其在该目录下创建文件的信息如下  -rw-rw-r-- 1 james james 0 Aug 31 19:32 file2
    jerry用户的身份是文件所属组的成员,其在该目录下创建文件的信息如下  -rw-r--r-- 1 jerry james 0 Aug 31 19:43 file3
    
    

    文件权限的修改 

    修改文件的权限 chmod

    chmod  755 abrt                         //赋予abrt权限rwxr-xr-x
    chmod  u=rwx ,g=rx,o=rx abrt          //赋予abrt  rwxr-xr-x权限。u=用户权限,g=组权限,o=不同组其他用户权限
    chmod  u-x , g+w   abrt               //给abc去除用户执行的权限,增加组写的权限
    chmod  a+r          abrt               //给所有用户添加读的权限

    修改文件的所有者 chown 和 所属组 chgrp

    chown   bob    adjtime           // 改变 adjtime 的所有者为 bob
    chgrp   root   abrt             //改变 adjtime 所属的组为 root
    
    chgrp   -R  root  abrt           //改变abc这个目录及其目录下所有的文件的所属的组织为 root
    chown   ‐R  root  abrt           //改变abc这个目录及其下面所有的文件和目录的所有者是 root

    注:修改文件和文件夹所有者和所属组方法都是一样的,如果要把文件夹内的文件的所有者和所属组都修改了,要加 -R 参数。chown除了可以修改属主属性,还可以修改所属组属性。                        语法: chown    属主:属组   文件

    chown   john:james   adjtime     //改变 adjtime 的所有者为john,所属组为 james

    ACL控制权限 setfacl  、 getfacl

    setfacl :设置文件访问控制规则

    •  -m ,    给文件加扩展ACL规则  , setfacl  -m    u:bob:r   abrt ;  
    •  -x  ,    给文件移除扩展ACL规则 , setfacl   -x    u:bob      abrt ;
    •  -b ,  移除文件所有的ACL规则 ,setfacl  -b   u:bob   abrt ;
    •  -R ,    递归的对所有目录内所有的文件和目录进行操作 ,  setfacl  -R -m  u:bob:rwx   abrt ;
    •  -d ,    设置默认的ACL规则

    getfacl : 获取文件访问控制规则

    例子:         这里有几个用户,其UID和GID分别如下
    用户a:       uid=1006(a)  gid=1006(a)  groups=1006(a)
    用户b:       uid=1007(b)  gid=1007(b)  groups=1007(b)
    用户c:       uid=1007(c)  gid=1000(root)  groups=1000(root)
    
    我们以root身份在根目录下新建一个文件file,其权限如右:-rw-r--r-- 1 root root 4 Aug 31 23:00 file
    其acl信息如下: getfacl file
                # file:  file
                # owner: root
                # group: root
                user::rw-
                group::r--
                other::r--
    所以用户a和用户b只对他有读的权限,现在我们要让用户a拥有rwx权限,而用户b不变化
    设置用户a的ACL权限:setfacl -m u:a:rwx  file
    设置完acl之后,文件file的权限就变成了: -rw-rwxr--+ 1 root root 4 Aug 31 23:01 file  
    注:用户的组权限位变化,等于acl信息中的mask值,还多了一个+扩展权限位。此时虽然用户c是root组中的,但是用户c对文件file的权限还仍然是之前的r--,而不是rwx
    查看file的acl信息  getfacl  file   ,显示如下
                # file:  file
                # owner: root
                # group: root
                user::rw-
                user:a:rwx     // 用户a的ACL权限
                group::r--      
                mask::rwx      // 等于用户之前的权限与acl设置的权限进行 或运算
                other::r-
    可知,用户a对其有rwx权限,用户b对其仍然只有 r 的权限
    若要移除acl ,则  setfacl  -x  u:a  file               
    移除了之后,a的权限就又还是只有 r 的权限了

    注:若a用户原来对文件只有 r 权限,设置的acl是 setfacl  -m  u:a:w  file  ,则设置完acl后,用户a只对文件有 w 权限,没有 r 权限了

     倘若要让一个文件夹内的所有已存在文件都继承于文件夹的设置的acl的权限属性,  可以使用  setfacl  -R  -m  u:a:rwx  文件名

    Umask、Suid、Sgid、粘滞位

    UMSK

    root用户的umask值默认是0022,普通用户的umask值默认是 0002。umask值是可以手动修改的。第一位是特殊位,配置了SUID(4) 、SGID(2) 和 粘滞位(1) 才有值。

    所以当root用户去创建一个文件夹的时候,其权限就是 777-022=755,而创建一个文件的时候,其权限就是 755-111=644

    普通用户去创建一个文件夹的时候,其权限就是 777-002=775,而创建一个文件的时候,其权限就是 775-111-664

    所以root用户和普通用户权限的不同之处就在于group组。root用户的属组位置的 w 只在自己的手中。而普通用户的属组权限只要是和他在一个组内,就拥有 w 权。

    SUID 、SGID和粘滞位

    • suid的作用:用于执行文件,以文件的拥有者的身份运行该文件。     chmod u+s  文件名
    • sgid的作用:  用于目录,在该目录下建立的所有文件和目录,属组都继承该目录的属组,且该组内其他成员修改目录内的文件时,其属主和属组都不改变!     chmod  g+s  目录
    • 粘滞位stick  bit 的作用: 用于目录,在该目录建立的文件或目录,只有建立者可以删除和修改,其他用户无法删除和修改 chmod  o+t  目录

    SUID的作用:SUID是set uid的简称,它出现在文件所属主权限的执行位上面,标志为 s 。当设置了SUID后,UMSK第一位为4。我们知道,我们账户的密码文件存放在/etc/shadow中,而/etc/shadow的权限为 ----------。也就是说:只有root用户可以对该目录进行操作,而其他用户连查看的权限都没有。当普通用户要修改自己的密码的时候,可以使用passwd这个指令。passwd这个指令在/bin/passwd下,当我们执行这个命令后,就可以修改/etc/shadow下的密码了。那么为什么我们可以通过passwd这个指令去修改一个我们没有权限的文件呢?这里就用到了suid,suid的作用是让执行该命令的用户以该命令拥有者即root的权限去执行,意思是当普通用户执行passwd时会拥有root的权限,这样就可以修改/etc/passwd这个文件了。命令:   chmod u+s  文件名

    使用suid需要满足的几个条件

    • SUID只对可执行文件有效
    • 调用者对该文件有执行权
    • 在执行过程中,调用者会暂时获得该文件的所有者权限
    • 该权限只在程序执行的过程中有效

    SGID的作用:SGID是set gid的简称,它出现在文件所属组权限的执行位上面,标志位 s 。它用当设置了SGID后,UMSK第一位为2 。它作用于目录,当用户 a 对某一目录有rwx 权限时,该用户就可以在该目录下建立文件,新建文件的所属主和所属组继承于 a。当另一个用户 b 也对该目录有rwx权限的时候,就可以修改 a 创建的文件,而且修改后的文件所属主和所属组都会变成 b!但是如果该目录用SGID修饰,则所有拥有 rwx权限的用户在这个目录下建立的文件都是属于这个目录所属的组。当其他用户修改时,有三种情况:

    1. 当两个用户都是属于group组内,则修改后的文件的所属主和所属组都不会,而且修改文件时不会提示read only!可以正常修改
    2. 当两个用户都是属于other时,则修改后的文件的所属组不变,所属主会变成另一个用户,修改文件时会提示read only,必须强制保存退出
    3. 当一个用户是group组,一个是other时,则修改后的文件的所属组不变,所属主会变成另一个用户,修改文件时会提示read only,必须强制保存退出

    SGID的例子代码

    例子:         这里有几个用户,其UID和GID分别如下
    s1 用户:     uid=1004(s1) gid=1005(s1) groups=1005(s1),1004(sgid)
    s2 用户:      uid=1005(s2) gid=1006(s2) groups=1006(s2),1004(sgid)
    
    我们以root身份在根目录下创建一个 test 文件 ,其默认权限如右:drwxr-xr-x 2 root root 4096 Aug 31 20:54 test
    修改其默认权限如右:drwxrwx--- 2 root sgid 4096 Aug 31 20:54 test
    因为s1和s2都是组sgid内的成员,所以s1和s2均可对test文件执行rwx权限
    s1进入test内,创建一个文件 file1 ,其权限如右: -rw-rw-r-- 1 s1 s1 3 Aug 31 21:01 file1
    s2进入test内,用vim打开file1文件,显示文件read only。对其修改,强制保存退出!然后file1的权限如右:-rw-rw-r-- 1 s2  s2 3 Aug 31 21:04 file1
    可见,s2可以强制修改s1创建的文件。虽然s2对于file1来说是other,但是因为s1和s2均属于sgid组,所以可以对test文件夹内的数据拥有读写执行的权限,所以可以用vim对其强制修改保存退出。修改后,file1文件的所属用户和所属组都变成了s2的了。
    显然,这不是我们想要的,如果我们想要s2修改了文件后,文件的所有用户和所属组都不变的话,我们就需要用到SGID了。
    执行  chmod  g+s  /test 
    s1再新建一个文件file2,其权限如右:-rw-rw-r-- 1 s1  sgid 3 Aug 31 21:03 file2    可见,其所属组继承了文件夹test的所属组
    s2再用vim打开file2,不提示文件read only了,修改,保存退出!然后file2的权限如右:-rw-rw-r-- 1 s1  sgid 13 Aug 31 21:04 file2
    可见,执行了SGID后,同一组内的其他成员修改文件后,其属主和属组都不发生变化!

    粘滞位的作用:

     SBIT即Sticky Bit,它出现在其他用户权限的执行位上,标志位为 t,当设置了粘滞位后,UMSK第一位为1 。它只能用来修饰一个目录。当某一个目录拥有SBIT权限时,则任何一个能够在这个目录下建立文件的用户,该用户在这个目录下所建立的文件,只有该用户自己和root可以修改和删除,其他用户均不可以修改和删除!!我们知道/tmp是系统的临时文件目录,所有的用户在该目录下拥有所有的权限,也就是说在该目录下可以任意创建、修改、删除文件,那如果用户A在该目录下创建了一个文件,用户B将该文件删除或修改了,这种情况我们是不能允许的。为了达到该目的,就出现了stick  bit(粘滞位)的概念。

    无论是两个用户都属于group组,还是都属于other,或者是一个属于group,一个属于other,都不能对其他人创建的文件进行修改和删除!!

    例子:         这里有几个用户,其UID和GID分别如下
    用户a:       uid=1006(a)  gid=1007(a)  groups=1007(a)
    用户b:       uid=1007(b)  gid=1008(b)  groups=1008(b)
    
    我们以root身份在根目录下创建一个 test 文件 ,其默认权限如右:drwxr-xr-x 2 root root 4096 Aug 31 20:54 test
    我们修改其权限:drwxrwxrwx 2 root root 4096 Aug 31 20:54 test
    用户a匹配test文件夹的other权限,拥有rwx权限,进入test内,新建文件夹file1,其权限如右:-rw-rw-r-- 1 a a 5 Aug 31 21:45 file1
    用户b匹配test文件夹的other权限,拥有rwx权限,进入test内,可以执行删除file1。因为用户b拥有文件夹test的rwx权限,所以可以对其文件夹内的所有数据删除。即使file1的other权限是只读!!
    很明显,这不是我们想要的
    执行  chmod  o+t /test
    s1再新建一个文件file2,其权限如右:-rw-rw-r-- 1 a  a 3 Aug 31 21:03 file2    
    s2再尝试删除file2,删不了!!只有文件的主人可以删除
    可见,执行了栈滞位后,只有文件的所有者才可以删除文件
    

    注意:有时你设置了s 或 t  权限,你会发现它变成了S或T,这是因为在那个位置上你没有给它x(可执行)的权限,这样的话这样的设置是不会有效的,你可以先给它赋上x的权限,然后再给s或t  的权限

    相关文章:Linux用户方面的加固

    展开全文
  • 一. 用户账号管理 ... 创建新用户的的命令是 useradd Usage: useradd [options] LOGIN useradd -D useradd -D [options] Options: -b, --base-dir BASE_DIR base directory for the home directory...

    一. 用户账号管理

    1. 添加新用户账号

    创建新用户的的命令是 useradd

    Usage: useradd [options] LOGIN
           useradd -D
           useradd -D [options]
    
    Options:
      -b, --base-dir BASE_DIR       base directory for the home directory of the
                                    new account
      -c, --comment COMMENT         GECOS field of the new account
      -d, --home-dir HOME_DIR       home directory of the new account
      -D, --defaults                print or change default useradd configuration
      -e, --expiredate EXPIRE_DATE  expiration date of the new account
      -f, --inactive INACTIVE       password inactivity period of the new account
      -g, --gid GROUP               name or ID of the primary group of the new
                                    account
      -G, --groups GROUPS           list of supplementary groups of the new
                                    account
      -h, --help                    display this help message and exit
      -k, --skel SKEL_DIR           use this alternative skeleton directory
      -K, --key KEY=VALUE           override /etc/login.defs defaults
      -l, --no-log-init             do not add the user to the lastlog and
                                    faillog databases
      -m, --create-home             create the user's home directory
      -M, --no-create-home          do not create the user's home directory
      -N, --no-user-group           do not create a group with the same name as
                                    the user
      -o, --non-unique              allow to create users with duplicate
                                    (non-unique) UID
      -p, --password PASSWORD       encrypted password of the new account
      -r, --system                  create a system account
      -R, --root CHROOT_DIR         directory to chroot into
      -s, --shell SHELL             login shell of the new account
      -u, --uid UID                 user ID of the new account
      -U, --user-group              create a group with the same name as the user
      -Z, --selinux-user SEUSER     use a specific SEUSER for the SELinux user mapping
    

    常用的一些选项

    • -d 目录, 指定用户的主目录,如果该目录不存在,可以加上-m选项,会自动创建主目录
    • -g 用户组, 指定用户所属的用户组
    • -G 用户组, 指定用户所属的附加组
    • -s shell, 指定用户所属的shell (默认是 /bin/sh)
    • -p 密码, 用户密码

    实例

    • 创建用户sam, 并且创建用户的主目录为 /home/sam
    useradd -d /home/sam -m  sam
    

    不指定用户组的话,默认用户组就是名为用户名的用户组

    root@debian:~# groups sam
    sam : sam
    
    • 创建用户sam1, 主目录/home/sam1, 设置其主用户组为 group0, 同时又属于用户组 group1 和 group2, 并且设置其登陆shell为/bin/sh(笔者比较喜欢 /bin/bash)
    useradd -s /bin/sh -d /home/sam1 -m -g group0 -G group1,group2 sam1
    

    2. 删除用户账号

    删除用户账号的命令是 userdel

    Usage: userdel [options] LOGIN
    
    Options:
      -f, --force                   force removal of files,
                                    even if not owned by user
      -h, --help                    display this help message and exit
      -r, --remove                  remove home directory and mail spool
      -R, --root CHROOT_DIR         directory to chroot into
      -Z, --selinux-user            remove any SELinux user mapping for the user
    

    实例

    userdel sam1
    

    但是一般我们使用选项 -r,将用户的主目录一起删除

    userdel -r sam1
    

    3. 修改用户账号

    修改用户账号的属性的命令是 usermod

    Usage: usermod [options] LOGIN
    
    Options:
      -c, --comment COMMENT         new value of the GECOS field
      -d, --home HOME_DIR           new home directory for the user account
      -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
      -f, --inactive INACTIVE       set password inactive after expiration
                                    to INACTIVE
      -g, --gid GROUP               force use GROUP as new primary group
      -G, --groups GROUPS           new list of supplementary GROUPS
      -a, --append                  append the user to the supplemental GROUPS
                                    mentioned by the -G option without removing
                                    him/her from other groups
      -h, --help                    display this help message and exit
      -l, --login NEW_LOGIN         new value of the login name
      -L, --lock                    lock the user account
      -m, --move-home               move contents of the home directory to the
                                    new location (use only with -d)
      -o, --non-unique              allow using duplicate (non-unique) UID
      -p, --password PASSWORD       use encrypted password for the new password
      -R, --root CHROOT_DIR         directory to chroot into
      -s, --shell SHELL             new login shell for the user account
      -u, --uid UID                 new UID for the user account
      -U, --unlock                  unlock the user account
      -v, --add-subuids FIRST-LAST  add range of subordinate uids
      -V, --del-subuids FIRST-LAST  remove range of subordinate uids
      -w, --add-subgids FIRST-LAST  add range of subordinate gids
      -W, --del-subgids FIRST-LAST  remove range of subordinate gids
      -Z, --selinux-user SEUSER     new SELinux user mapping for the user account
    
    

    常用的 -d, -m, -g, -G, -s等等,跟useradd里面选项还有事一样的

    实例

    root@debian:~# usermod -d /home/sam_new -m -s /bin/bash -g group3 sam
    root@debian:~# groups sam
    sam : group3
    

    将用户sam的主目录挪到/home/sam_new, 登陆shell改为 /bin/bash, 用户组改为group3

    4. gpasswd命令管理组内用户

    Usage: gpasswd [option] GROUP
    
    Options:
      -a, --add USER                add USER to GROUP
      -d, --delete USER             remove USER from GROUP
      -h, --help                    display this help message and exit
      -Q, --root CHROOT_DIR         directory to chroot into
      -r, --remove-password         remove the GROUP's password
      -R, --restrict                restrict access to GROUP to its members
      -M, --members USER,...        set the list of members of GROUP
      -A, --administrators ADMIN,...
                                    set the list of administrators for GROUP
    

    常用选项

    • a: 添加用户到指定用户组
    • d: 将用户从指定用户组删除

    实例

    • 将用户sam添加到用户组group0
    root@debian:~# groups sam
    sam : group3
    root@debian:~# gpasswd -a sam group0
    Adding user sam to group group0
    root@debian:~# groups sam
    sam : group3 group0
    
    • 将用户sam从用户组group0删除
    root@debian:~# groups sam
    sam : group3 group0
    root@debian:~# gpasswd -d sam group0
    Removing user sam from group group0
    root@debian:~# groups sam
    sam : group3
    

    5. 用户密码管理

    用户密码管理的命令是 passwd

    Usage: passwd [options] [LOGIN]
    
    Options:
      -a, --all                     report password status on all accounts
      -d, --delete                  delete the password for the named account
      -e, --expire                  force expire the password for the named account
      -h, --help                    display this help message and exit
      -k, --keep-tokens             change password only if expired
      -i, --inactive INACTIVE       set password inactive after expiration
                                    to INACTIVE
      -l, --lock                    lock the password of the named account
      -n, --mindays MIN_DAYS        set minimum number of days before password
                                    change to MIN_DAYS
      -q, --quiet                   quiet mode
      -r, --repository REPOSITORY   change password in REPOSITORY repository
      -R, --root CHROOT_DIR         directory to chroot into
      -S, --status                  report password status on the named account
      -u, --unlock                  unlock the password of the named account
      -w, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS
      -x, --maxdays MAX_DAYS        set maximum number of days before password
                                    change to MAX_DAYS
    
    

    常用选项

    • -l, 锁定口令, 即禁用账号
    • -u, 解锁口令,恢复账号
    • -d, 删除账号的密码
    • -f, 强迫用户下次登录的时候修改密码

    修改密码

    root@debian:~# passwd sam
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    

    如果passwd后面不指定用户名的话,默认修改当前用户的密码

    二. 用户组管理

    1. 新增一个用户组

    创建一个新用户组的命令是groupadd

    Usage: groupadd [options] GROUP
    
    Options:
      -f, --force                   exit successfully if the group already exists,
                                    and cancel -g if the GID is already used
      -g, --gid GID                 use GID for the new group
      -h, --help                    display this help message and exit
      -K, --key KEY=VALUE           override /etc/login.defs defaults
      -o, --non-unique              allow to create groups with duplicate
                                    (non-unique) GID
      -p, --password PASSWORD       use this encrypted password for the new group
      -r, --system                  create a system account
      -R, --root CHROOT_DIR         directory to chroot into
    
    

    实例

    • 创建用户组group4
    root@debian:~# groupadd group4
    

    2. 删除一个用户组

    删除一个用户组的命令是groupdel

    Usage: groupdel [options] GROUP
    
    Options:
      -h, --help                    display this help message and exit
      -R, --root CHROOT_DIR         directory to chroot into
    

    实例

    • 删除用户组group4
    root@debian:~# groupdel group4
    

    3. 修改一个用户组的属性

    修改用户组属性的命令是groupmod

    Usage: groupmod [options] GROUP
    
    Options:
      -g, --gid GID                 change the group ID to GID
      -h, --help                    display this help message and exit
      -n, --new-name NEW_GROUP      change the name to NEW_GROUP
      -o, --non-unique              allow to use a duplicate (non-unique) GID
      -p, --password PASSWORD       change the password to this (encrypted)
                                    PASSWORD
      -R, --root CHROOT_DIR         directory to chroot into
    

    4. 切换用户组合,查询用户的用户组

    • 如果用户有多个用户组,可以用命令newgrp进行切换
    sam3@debian:~$ groups
    sam3 group0
    sam3@debian:~$ mkdir bb
    sam3@debian:~$ ls -l
    total 8
    drwxr-xr-x 2 sam3 sam3 4096 Sep  5 15:19 a
    drwxr-xr-x 2 sam3 sam3 4096 Sep  5 15:28 bb
    sam3@debian:~$ newgrp group0
    sam3@debian:~$ mkdir cc
    sam3@debian:~$ ls -l
    total 12
    drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:19 a
    drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:28 bb
    drwxr-xr-x 2 sam3 group0 4096 Sep  5 15:29 cc
    
    
    • 查询用户的所用组可以用命令 groups 或者id
    root@debian:~# groups sam3
    sam3 : sam3 group0
    root@debian:~# id sam3
    uid=1005(sam3) gid=1007(sam3) groups=1007(sam3),1003(group0)
    

    三. 文件权限管理

    1. 文件权限位说明

    sam3@debian:~$ ls -l
    total 8
    drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:33 aa
    lrwxrwxrwx 1 sam3 sam3      7 Sep  5 15:33 test_ln.sh -> test.sh
    -rwxr-xr-x 1 sam3 group0   26 Sep  5 15:32 test.sh
    

    我们看文件aa的权限位

    drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:33 aa
    

    文件的权限描述共10个字符

    • 第一个字符有三个值, 文件(-), 目录(d), 链接(l)
    • 剩余9个字符每3个一组(rwx), 可读(r), 可写(w), 可执行(x)
    • 第一组rwx: 表示文件的所有者的权限是可读,可写,可执行
    • 第二组r-x: 表示与文件所有者同一个用户组的用户的权限是可读,不可写,可执行
    • 第三组r-x: 表示与文件所有者不同用户组的用户的权限是不可写,可执行
      用数字表示的时候,认为每组权限用3个二进制位表示rwx <=> 111, r-x <=> 101, 或者可以简单的用r=4, w=2, x= 1, 表示 rwx= 4+2+1 =7
    • 接下来的 2 表示连接的文件数
    • sam3 表示文件的所属用户
    • sam3 表示用户所在的用户组
    • 4096表示文件的大小
    • Sep 5 15:33 表示文件的最后修改时间
    • aa 表示文件名

    2. 修改文件的权限位

    修改文件的权限位可以用命令chmod

    chmod 755 test.sh:赋予test.sh权限rwxr-xr-x
    chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限
    chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限
    chmod a+r abc:给所有用户添加读的权限
    

    3. 修改用户的所有者以及用户组

    初始状态

    sam3@debian:~$ ls -l
    total 12
    drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:33 aa
    -rwxr-xr-x 2 sam3 group0   26 Sep  5 15:32 test_hln.sh
    lrwxrwxrwx 1 sam3 sam3      7 Sep  5 15:33 test_ln.sh -> test.sh
    -rwxr-xr-x 2 sam3 group0   26 Sep  5 15:32 test.sh
    
    • 修改文件的所有者使用命令chown
      修改test.sh的所有者为sam
    root@debian:/home/sam3# chown sam test.sh
    root@debian:/home/sam3# ls -l
    total 12
    drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:33 aa
    -rwxr-xr-x 2 sam  group0   26 Sep  5 15:32 test_hln.sh
    lrwxrwxrwx 1 sam3 sam3      7 Sep  5 15:33 test_ln.sh -> test.sh
    -rwxr-xr-x 2 sam  group0   26 Sep  5 15:32 test.sh
    
    • 修改文件的所属用户组使用命令chgrp
      修改test.sh所属的用户组为sam
    root@debian:/home/sam3# chgrp sam test.sh
    root@debian:/home/sam3# ls -l
    total 12
    drwxr-xr-x 2 sam3 sam3 4096 Sep  5 15:33 aa
    -rwxr-xr-x 2 sam  sam    26 Sep  5 15:32 test_hln.sh
    lrwxrwxrwx 1 sam3 sam3    7 Sep  5 15:33 test_ln.sh -> test.sh
    -rwxr-xr-x 2 sam  sam    26 Sep  5 15:32 test.sh
    
    • 同时修改文件的所有者和用户组使用chown -R
      将test.sh的所有者和用户组都修改为sam3
    root@debian:/home/sam3# chown -R sam3:sam3 test.sh
    root@debian:/home/sam3# ls -l
    total 12
    drwxr-xr-x 2 sam3 sam3 4096 Sep  5 15:33 aa
    -rwxr-xr-x 2 sam3 sam3   26 Sep  5 15:32 test_hln.sh
    lrwxrwxrwx 1 sam3 sam3    7 Sep  5 15:33 test_ln.sh -> test.sh
    -rwxr-xr-x 2 sam3 sam3   26 Sep  5 15:32 test.sh
    

     


    转自:https://www.jianshu.com/p/f8aa12ecbf48

     

    展开全文
  • 写作目的:本文目的旨在让初学者少走弯路,全面学习Linux用户用户组管理基础命令。 之前学习Linux用户用户组权限管理的时候看了很多网上搜的帖子,发现大多数的帖子都是互相转来转去的,内容根本没有经过验证...

    写作目的:本文目的旨在让初学者少走弯路,全面学习Linux用户及用户组管理基础命令。

    之前学习Linux用户及用户组权限管理的时候看了很多网上搜的帖子,发现大多数的帖子都是互相转来转去的,内容根本没有经过验证就随意贴出来,导致本来挺简单的命令都写错,让初学者容易实践的时候报错,还不知道应该怎么修改。这里收集了常用的Linux用户及用户组管理的比较全的命令,可做随时查阅之需。

    1、建用户:

    adduser ttest                       //新建ttest用户(同时自动新建同名用户组ttest)

    passwd ttest                        //给ttest用户设置密码

    id user                                 //显示用户信息

    cat /etc/passwd                  //显示所有用户信息

    whoami                               //查看当前登录用户名

    2、建工作组

    groupadd testg         //新建testg工作组

    groupdel testg         //删除用户组;

    groupmod                注:修改用户组信息

    groups                      //显示用户所属的用户组

    cat /etc/group         //查看所有用户组信息

    如groups ttest,显示:

    ttest : ttest

    3、新建用户同时添加到已有工作组testg(不能新建的工作组)

    useradd ttest -g testg -d /home/ttest -s /sbin/nologin                     //新建ttest用户并增加到testg工作组

    注::-g 所属组 -d 家目录 -s 所用的SHELL(nologin表示内部用户,不能外部登录)

    4、给已有的用户增加工作组

    usermod -G groupname username  (-G添加用户到另一个组,仅限原有组合一个附加组,重复此命令会覆盖原附加组,仅保持一个附加组)

    usermod -a -G groupname username  (-a 和-G同时使用,可以添加多个附加组)

    或者:

    gpasswd -a username groupname  (效果同上)

    5、临时关闭:使用如下命令关闭用户账号:

    passwd ttest –l

    重新释放:

    passwd ttest –u

    6、永久性删除用户和用户组

    userdel ttest                          (删除用户直接删除对应的同名用户组)

    groupdel ttest                       (单独删除用户组必须先保证用户组中没有用户)

    userdel -r ttest                      (删除用户、同名用户组,同时删除用户主目录)

    7、从组中删除用户

    编辑/etc/group 找到对应的group名那一行,删除最后的username

    如:www:x:2002:ttest删除后为:www:x:2002:

    这样ttest就不属于www用户组了。

    或者用命令

    gpasswd -d username groupname       //注意用户的主用户组无法此方法删除

    如下图提示非www成员,一般直接删除用户:

    展开全文
  • Linux用户用户组管理

    万次阅读 2018-06-30 14:20:14
    一、用户配置文件 用户管理简介: linux把通过把用户分为三个基本,user,group,other来分配基本的权限 用户通过/etc/passwd用过用户名来获取用户的uid,通过/etc/group来获取用户所属的gid,系统只能通过id号...

    一、用户配置文件

       

    用户管理简介:

         linux把通过把用户分为三个基本组,user,group,other来分配基本的权限

        用户通过/etc/passwd用过用户名来获取用户的uid,通过/etc/group来获取用户所属组的gid,系统只能通过id号来识别哦那过户。所以,越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。在linux中主要是通过用户配置文件来查看和修改用户的信息。

           1、用户信息文件 /etc/passwd

                        配置文件信息如下:vim /etc/passwd

                        

                        第一字段:用户名称

                        第二字段:密码标志

                        第三字段: UID

                            0 : 代表超级用户

                            1-499:代表系统用户(伪用户)【默认很多 不能删除给os中启动服务不能登陆不能操作】

                            500——65535+:代表自定义的普通用户

                            

                        第四字段:GID用户初始组【只有一个,创建用户时自动建立,不推荐改】和附加组【同时属于其他组,像是大学的社团】

                        

                        第五字段:用户说明

                        第六字段:家目录【普通用户 home/用户名【二级目录】  超级用户:/root/【一级目录】】

                        第七字段:登陆之后的shell:linux的命令解释器标准:bin/bash  sbin/nologin

                        注意:Root不一定是管理员 uid=0的一定是管理员

           2、影子文件 /etc/shadow

                        配置文件信息如下:vim /etc/shadow

                        

                        

                        第一字段:用户名

                        第二字段:加密密文【密码相同,密文也不相同】 sha521加密  **  !!没密码

                        第三字段:密码的最后一次修改日期  【时间戳表示 1970.1.1后的一天为一戳】

                        第四字段:两次密码修改间隔的时间

                        第五字段:密码的有效期273年

                        第六字段:到期之前的提醒天数

                        第七字段:到期后的宽限时间

                        第八字段:账号失效时间【不管它之前的有效期限   时间戳转换 date –d “1970-01-01  17000days”】

                        第九字段:保留字

           3、组信息文件 /etc/group和组密码文件 /etc/gshadow

                        配置文件信息如下:vim /etc/group

                        

                        第一字段:组名

                        第二字段:组密码标志

                        第三字段:GID

                        第四字段:组中附加用户

        4、用户家目录:/home/用户名

                        普通用户:/home/用户名/,所有者和所属组都是此用户,权限时700;

                        超级用户:/root/,所有者和所属组都是root用户,权限时550;

        5、用户邮箱:/var/spool/mail/用户名

                        用户模板目录:ls -a;

                        用户的隐藏文件:用户创建时自动建立,/etc/lkel;


           注意:在Linux中,写入配置文件时才能永久生效,执行命令行的形式可能重启后失效。

    二、用户管理相关文件和用户管理命令

        用户添加命令:useradd

                useradd [选项] 用户名

                    -u UID :手工指定用户的UID;

                    -d 家目录:手工指定用户的家目录;

                    -c 用户说明:手工指定用户的用户说明;

                    -g 组名:手工指定用户的初始组;

                    -G 组名:指定用户的附加组;

                    -s shell:手工指定用户登陆的shell,默认是/bin/bash;

                        添加完用户查看用户信息:

                            useradd sc

                                grep sc /etc/passwd

                                        

                                grep sc /etc/shadow

                                        

                                grep sc /etc/group

                                        

                                grep sc /etc/gshadow

                                        

                                ll -d /home/lamp

                                        

                                ll /var/spool/mail/lamp

                                        

        修改用户密码:passwd

        修改用户信息:usermod

        修改用户密码状态:chage

        删除用户:userdel

        用户切换命令:su

        用户默认值文件:

            /etc/default/useradd

                GROUP=100            用户默认组

                HOME=/home         家用户目录

                INACTIVE=-1            密码过期宽限天数,shadow文件7字段

                EXPIRE=                     密码失效时间,shadow文件8字段

                SHELL=/bin/bash        默认shell

                SKEL=/etc/skel            模板目录

                CREATE_MALL_SPOOL=yes            是否建立邮箱

            /etc/login.defs

                PASS_MAX_DAYS 9999    密码有效期天数(5)

                PASS_MIN_DAYS 0           密码修改间隔(4)

                PASS_MIN_LEN    5            密码最小位数

                PASS_WARN_AGE    7        密码到期警告

                UID_MIN            500            最小和最大UID范围值

                GID_MAX            60000

                ENCRYPT METHOD    SHA521    密码的加密模式

        修改用户密码状态chage

        chage 【选项】 用户名

            选项:

            -l :列出用户的详细密码状态

            -d 日期:修改密码最后一次的更改日期 shadow3字段

            -m 天数:两次密码修改间隔(4字段)

            -M天数:密码有效期(5字段)

            -W天数:密码过期前警告天数(6字段)

            -I(i天数):密码过后宽限天数(7字段)

            -E(日期):账号失效时间(8字段)


        chage -d 0 lamp

    注释:这个命令其实是把密码修改日期归0了(shadow第三字段)

           :这样用户一登陆就要修改密码

    手工删除用户:

        vi /etc/passwd

        vi /etc/shadow

        vi /etc/group

        vi /etc/gshsdow

        rm -rf /var/spool/mail/lamp

        rm -rf /home/lamp


    切换用户身份:su

        su 【选项】 用户名

            选项:

                -:选项只使用“-”代表连接用户环境变量一起切换

                -c:仅执行一次命令,而不切换用户身份


        Env:查看用户的环境变量名【用户当前所操作的环境】

    su - root    ;切换为root用户

    su - root -c "useradd user3"    ;不切换成root,但是执行useradd命令添加user3用户

    四、用户组管理相关命令

    添加用户组:

        groupadd 【选项】 组名

            -g GID      指定组ID

            

    修改用户组:

        groupmod 【选项】组名

            -g GID     修改组ID

            -n 新组名:    修改组名

        groupmod -n testgrp group1    ;把组名group修改为testgrp

    删除用户组:

    groupdel 组名

    要想删除组,不允许有初始用户存在,如果存在,则不能删除。

    展开全文
  • Linux用户详解。

    千次阅读 2018-09-12 13:32:07
    Linux用户详解。 环境:Xshell6远程连接到Ubuntu18.04。 用户和: 用户和的概念应该还是比较好理解的。Linux是一个多用户多任务的操作系统,而肯定是少数有管理员权限的用户管理着所有用户。作为系统的...
  • 一、用户:在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组。创建用户user1的时候指定其所属工作组users,例:useradd –g users user11、使用命令 ...
  • linux修改用户组,修改所属用户

    万次阅读 2019-08-15 17:56:00
    linux修改用户组,修改所属用户 实际开发中我们经常会需要新建文件夹,一般情况下,新建的文件或者文件夹都会在编辑器中,新建。然后,然后我们就继续开发了,访问的时候可能就会出现报错,无法访问等等问题。然后...
  • Linux用户组、用户权限

    千次阅读 2018-07-03 14:47:14
    一、用户组:在linux中每个用户必须属于一个组,每个用户组其实就是多个用户的一个集合!1、添加用户组--&gt;groupadd -g 666 group_name;(-g GID 说白了就是用户组的id)2、删除用户组--&gt;groupdel ...
  • 本篇主要深入介绍用户与用户组
  • Linux下创建用户和用户组

    万次阅读 2019-04-10 12:38:57
    1.linux下创建用户 日常运维我们使用useradd命令来创建用户,常用的命令如下: 不加任何参数,仅创建用户 示例:useradd myuser 此时用户的家目录是/home/myuser -d 目录 指定用户主目录,如果此目录不存在,...
  • Linux--增加用户、添加用户组

    万次阅读 2019-07-26 17:56:18
    增加用户:useradd -d /usr/username -m username 为用户增加密码:passwd username 新建工作:groupadd groupname 将用户添加进工作:usermod -G groupname username 删除用户:userdel username
  • Linux下查看某个用户组下的所有用户

    万次阅读 2018-04-08 14:24:28
    需要查看“jishu”分组下的所有用户,可以使用命令如下:grep 'jishu' /etc/group显示结果是:这样就可以将该分组下的所有用户显示出来了。
  • Linux查看用户所属的

    万次阅读 2013-01-11 14:24:32
    groups  查看当前用户所属的 groups 查看, 和 所属的
  • Linux】将用户添加到root

    万次阅读 2019-08-13 15:10:21
    将现有用户添加到root组中 1、添加用户 # useradd test 2、更改密码 passwd 123456 3、更改用户组 usermod -g root test
  • linux 修改文件用户组和所有者

    万次阅读 2016-11-06 20:47:03
    1. linux下修改文件用户组 chgrp: change group的简写,修改文件所属的用户组。 chgrp users test.log 修改后查看 ls -l -rwxrwx--- 1 work users 0 Jun 8 15:46 test.log 如果要修改该目录下所有文件和目录,...
  • 查看用户 1.首先对于经验操作之前,我们先看下当前系统下的用户。whoami 查看当前登陆用户 [hadoop@mxhost1 ~]$ whoami root [hadoop@mxhost1 ~]$  2.Passwd文件存储当前系统所有用户,而文件/etc/...
  • 使用用户组来为用户赋予指定目录的读写权限如果用户已经拥有了默认的用户组(通常组名与用户名相同),或者已经所属某个用户组,就可以简单的通过变更文件夹的所属用户组来完成。# chgrp -R storm /usr/local如果想...
  • Linux用户创建命令

    万次阅读 2019-04-12 23:21:58
    创建一个新用户 useradd 新用户名 如果不设定它属于哪个组,它会默认在创建它的用户的组里 ...passwd 新用户名 ...useradd 新用户名 -g 新的用户组 把旧用户改变组 usermod -g 旧用户名 需要放在的组的名 删除...
  • Linux创建及删除用户

    万次阅读 2018-05-22 23:37:12
    或 adduser 用户名例如,创建一个名为zhangsan的用户新建用户后,将会在/home目录下生成一个与用户名相同的用户主目录,同时会创建一个新,该与该用户名相同,该用户属于该的成员。使用passwd命令为其设置一个...
  • linux更改目录所属用户和用户组

    万次阅读 2019-07-01 10:10:14
    用法:chown 【选项】 用户【:用户组】 file 将test.java 文件所属的用户设置成 yangyuanliang chown yangyuanliang test.php 将test.java文件的所属用户设置成yangyuanliang,所属用户组设置成staff chown ...
1 2 3 4 5 ... 20
收藏数 538,654
精华内容 215,461
关键字:

linux用户组