zoukankan      html  css  js  c++  java
  • Linux服务器新建用户和组,并分配sudo权限 (Ubuntu系统)

    新拿到一台服务器后我们一般都是要新建用户组,用户,并为其分配权限。

     ====================================================

    赋予用户组sudo权限:

    首先,看一下如何为用户组分配sudo权限:

    打开配置文件:

    sudo   vim    /etc/sudoers

    可以看到:

    这个是最原始的配置文件。

    假设系统里面有用户组名为  wisd  , 我们需要为该用户组下面的所有用户都赋予 sudo 权限,需要添加下面代码:

    %wisd ALL=(ALL:ALL) ALL

    如下图:

    保存退出, 这样变把  wisd  用户组下面的所有用户都赋予了sudo权限。

    ===============================================================

    下一步就是介绍新建用户及用户组(本文的介绍为倒叙,实际操作中是需要先建用户组和用户的)

    首先看下  系统的用户配置文件:

    sudo  vim    /etc/passwd

    由图中可以看到系统用户  devil 用户id为1000,所属用户组为1000, home目录为 /home/devil   ,shell的执行为 /bin/bash

    sshd  用户id 为122   用户组为65534

    ==============================================================

    新建用户组:

    新建用户组   xxxxx

    sudo addgroup xxxxx

    为用户组 xxxxx  新建用户  xxx

    sudo useradd -d /home/xxx -s /bin/bash -m xxx

    -d 指定用户的home目录为  /home/xxx

    -s 指定用户的shell

    -m  表示home目录即  /home/xxx  不存在则创建

    xxx则是我们要创建的用户名。

    可以看到 /home目录下面已经为用户xxx创建home目录。

    可以  /home/xxx目录下需要的文件已经全部创建,如   .bashrc     .profile  等。

    为用户 xxx 设置密码:

    sudo passwd  xxx

    将新建的用户 xxx   添加到用户组   xxxxx   中:

    sudo usermod -a -G xxxxx  xxx

    用户xxx                       用户组 xxxxx

    参考文献:

    http://www.ruanyifeng.com/blog/2014/03/server_setup.html

    以上操作也可以在创建新用户时直接将其加入到已有的用户组中, -g 为设置其主组  该方法可以再创建用户时不创建同名的用户组,

    -G  为设置新建用户的附属组,   -a  -G 设置用户的不唯一的附属组

    sudo useradd -d /home/xxx2 -s /bin/bash -m xxx2 -g xxxxx

    在创建新用户xxx2时指定其主组为xxxxx ,  不创建和用户同名的xxx2用户组。

    ============================================================================

    新发现

    采用以下方法,先建立用户组,再创建用户,再将用户加入到用户组:

    sudo addgroup xxxxx

    sudo useradd -d /home/xxx -s /bin/bash -m xxx 

    sudo usermod -a -G xxxxx  xxx

    则会出现以下问题:

    我们可以发现,其实我们先创建了用户组 xxxxx, id为1001,  然后我们创建用户xxx时并没有指定其所属的用户组于是自动创建了它的同名用户组xxx,  id为1002 。

    我们可以查看用户的情况:

    可以发现,用户xxx所属的主组为1002(xxx),  同时所属的附属组为1001(xxxxx) 。

    我们可以将用户xxx的主用户组设置为xxxxx, 这时用户xxx的附属组为xxx组,于是我们可以删掉用户组xxx :

    sudo usermod xxx -g xxxxx
    sudo groupdel xxx

    再次查看:

    =======================================================================

    以下内容来源:   https://www.cnblogs.com/654wangzai321/p/8021573.html

    usermod -G groupname username (这种会把用户从其他组中去掉,只属于该组)
    如:usermod -G git git (git只属于git组)

    usermod -a -G groupname username (把用户添加到这个组,之前所属组不影响)
    如:usermod -a -G www git (git属于之前git组,也属于www组)

    =============================================引用结束

    usermod   -G  是指定用户的附属组是哪个,  如果 只有  -G  那么就是唯一指定用户附属组,该种方式用户只具备唯一附属组。

    usermod  -a -G  是只将用户组加入到附属组, 而不是将附属组设置为唯一,该种方式可以使用户具有多个附属组。

    所以像上面提到的问题,我们还可以这么解决, 就是在将用户加入到用户组的时候这么操作:

    sudo usermod  -G xxxxx  xxx    而不是   sudo usermod -a -G xxxxx  xxx   ,

    这样的话直接将 xxxxx 设置为 xxx 的主用户组和附属用户组。

    从上图可以看到,  usermod  -a   -G  的确可以将xxx用户的附属组添加mysql组。

    从上图可以看到   usemod -G 将用户xxx的附属用户组唯一的设置为mysql 。

    小技巧:

    如上图:

    如果想将用户的附属组清空,可以先采用  usemod -G 将用户的附属组设置为唯一, 而所指定的唯一附属组和主组是同一个的话,那么自动就将用户的附属组清空了。

    =========================================================================

  • 相关阅读:
    线程池示例(摘抄)
    Visual Studio 相关
    Linq 内连接和外连接(转载)
    asp.net mvc4 简单使用Autofac依赖注入小结
    jquery加载解析XML文件
    权限验证AuthorizeAttribute
    常用SQL Server规范集锦及优化
    linq to datatable 和lambda查询datatable
    ASP.NET 大文件下载的实现思路及代码
    分页存储过程
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/10432877.html
Copyright © 2011-2022 走看看