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 将用户的附属组设置为唯一, 而所指定的唯一附属组和主组是同一个的话,那么自动就将用户的附属组清空了。

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

  • 相关阅读:
    leetcode 1301. 最大得分的路径数目
    LeetCode 1306 跳跃游戏 III Jump Game III
    LeetCode 1302. 层数最深叶子节点的和 Deepest Leaves Sum
    LeetCode 1300. 转变数组后最接近目标值的数组和 Sum of Mutated Array Closest to Target
    LeetCode 1299. 将每个元素替换为右侧最大元素 Replace Elements with Greatest Element on Right Side
    acwing 239. 奇偶游戏 并查集
    acwing 238. 银河英雄传说 并查集
    acwing 237程序自动分析 并查集
    算法问题实战策略 MATCHORDER 贪心
    Linux 安装Redis全过程日志
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/10432877.html
Copyright © 2011-2022 走看看