linux学习16 Linux用户和组管理命令演练和实战应用

Posted Presley

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习16 Linux用户和组管理命令演练和实战应用相关的知识,希望对你有一定的参考价值。

一、上集回顾

  1、bash globing,IO重定向及管道

    glob:*,?,[],[^]

    IO重定向:

      >,>>,

      2>,2>>

      &>,&>>

      >  /PATH/TO/SOMEWHERE 2>&1

      <,<<(Here Document)

      COMMAND1 | COMMAND2

      命令:tr,tee

  2、用户管理基础概念

    a、用户类别:

      管理员,普通用户(系统用户和登陆用户)

    b、组类别:

      管理员组,普通用户组

      基本组和附加组(主组和附加组)

      私有组,公共组

    c、数据库文件:

      /etc/passwd

        login:password:uid:gid:comment:home:shell

      /etc/shadow

        login:encrpted_password:最近一次修改密码日期:密码最短使用期限:最长使用期限:警告时长:非活动时间:过期时间:保留字段

      /etc/group

        group:password:gid:user_list

      密码存储格式:单向加密,并借助于salt完成

        md5

        sha1

        sha224

        sha256

        sha384

        sha512

二、Linux用户和组管理

  1、groupadd:添加组   groupadd [options] group

    a、groupadd -g:自定义gid如果不指定那么默认是上一个组的gid + 1

    b、groupadd -r:创建系统组

[root@node1 ~]# tail -2 /etc/group
centos:x:5002:
gentoo:x:5003:
[root@node1 ~]# groupadd -r testgrp
[root@node1 ~]# tail -2 /etc/group
gentoo:x:5003:
testgrp:x:990:
[root@node1 ~]# groupadd -g 2000 grp1
[root@node1 ~]# groupadd -r -g 306 mariadb
[root@node1 ~]# tail -2 /etc/group
grp1:x:2000:
mariadb:x:306:

  2、安全上下文模型:

    进程以其发起者的身份运行:

      进程对文件的访问权限,取决于发起此进程的用户的权限:

    系统用户:为了能够让后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登陆系统。

  3、groupmod:修改组属性 groupmod  [options] GROUP

    a、groupmod  -g:GID,修改GID

[root@node1 ~]# tail -2 /etc/group
grp1:x:2000:
mariadb:x:306:
[root@node1 ~]# groupmod -g 702 mariadb 
[root@node1 ~]# tail -2 /etc/group
grp1:x:2000:
mariadb:x:702:

    b、group -n  new_name old_name:修改组名称

[root@node1 ~]# groupmod -n perconaserver mariadb
[root@node1 ~]# tail -2 /etc/group
grp1:x:2000:
perconaserver:x:702:

  4、groupdel:删除组   groupdel GROUP

[root@node1 ~]# groupdel perconaserver
[root@node1 ~]# groupdel grp1

  5、useradd命令:创建用户   useradd [options] LOGIN

[root@node1 ~]# file $(which adduser)
/usr/sbin/adduser: symbolic link to `useradd

    a、useradd wohaoshuai1

[root@node1 ~]# useradd wohaoshuai1
[root@node1 ~]# tail -1 /etc/passwd
wohaoshuai1:x:5004:5004::/home/wohaoshuai1:/bin/bash
[root@node1 ~]# tail -1 /etc/group
wohaoshuai1:x:5004:

    b、useradd -u  UID:指明uid

[root@node1 ~]# useradd -u 3000 openstack
[root@node1 ~]# tail -1 /etc/group
openstack:x:5005:

    c、useradd -g GROUP:指定基本组ID,此组得事先存在,否则可能出错。(指明组名称或组ID都可以)。创建用户的时候如果不指明组那么就会创建默认的私有组。-g表示将用户加入此基本组,-G表示将此用户加入附加组。

[root@node1 ~]# useradd -g openstack wohaoshuai2
[root@node1 ~]# tail -1 /etc/passwd
wohaoshuai2:x:5005:5005::/home/wohaoshuai2:/bin/bash
[root@node1 ~]# useradd -g 5005 wohaoshuai3
[root@node1 ~]# tail -1 /etc/passwd
wohaoshuai3:x:5006:5005::/home/wohaoshuai3:/bin/bash
[root@node1 ~]# tail -1 /etc/group
openstack:x:5005:

    d、useradd -c :增加注释信息

[root@node1 ~]# useradd -c "MogileFS DFS" mogilefs
[root@node1 ~]# tail -1 /etc/passwd
mogilefs:x:5004:5004:MogileFS DFS:/home/mogilefs:/bin/bash

    e、useradd -G && useradd --groups:指明用户所属的附加组,多个组之间用逗号分隔。

[root@node1 ~]# cat /etc/group|grep ygrp
mygrp:x:3000:testuser
[root@node1 ~]# useradd -G mygrp archlinux
[root@node1 ~]# tail -1 /etc/passwd
archlinux:x:5005:5006::/home/archlinux:/bin/bash
[root@node1 ~]# tail -1 /etc/group
archlinux:x:5006:
[root@node1 ~]# cat /etc/group|grep ygrp
mygrp:x:3000:testuser,archlinux

35:23

以上是关于linux学习16 Linux用户和组管理命令演练和实战应用的主要内容,如果未能解决你的问题,请参考以下文章

Linux用户和组介绍及相关命令的使用

Linux用户和组管理

Linux常用命令账号和组管理

Linux用户权限管理和组管理相关命令

linux 用户和组管理命令

Linux用户和组管理命令-用户创建