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 将用户的附属组设置为唯一, 而所指定的唯一附属组和主组是同一个的话,那么自动就将用户的附属组清空了。
=========================================================================
Linux服务器新建用户和组,并分配sudo权限 (Ubuntu系统)的更多相关文章
- 管理Linux服务器的用户和组
管理Linux服务器的用户和组 Linux操作系统是一个多用户多任务的操作系统,允许多个用户同时登录到系统,使用系统资源. 为了使所有用户的工作顺利进行,保护每个用户的文件和进程,规范每个用户的权限, ...
- 管理Linux服务器的用户和组(续篇)
用户切换 新建用户 useradd命令的选项 设置用户口令 passwd命令的选项 chage命令 修改用户帐户 禁用和恢复用户帐户 禁用和恢复用户帐户- Passwd命令 禁用和恢复用户帐户-直接修 ...
- linux新建用户并分配sudo权限
新建用户 useradd [username] 给用户设置密码 passwd [username] 设置sudo权限 首先将sudoers权限设置可写入 chmod u+w /etc/sudoers ...
- Linux下的用户、组和权限
目录 一:用户和组信息的查看 查看用户信息 查看密码信息 查看组信息 特殊组wheel 二:用户和组信息的管理 用户管理 组管理 三:文件权限 文件权限的查看 文件权限的修改 ACL控制权限 setf ...
- linux下创建用户及组
linux下创建用户及组: 1.创建组 groupadd 组名 2.创建用户,并将用户添加到组 useradd 用户名 -g 组名 3.更改用户的密码 password 用户名 4.修改目录 ...
- Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner
Gitlab权限管理Gitlab用户在组中有五种权限:Guest.Reporter.Developer.Master.Owner Guest:可以创建issue.发表评论,不能读写版本库Reporte ...
- Gitlab用户在组中有五种权限
Gitlab用户在组中有五种权限:Guest.Reporter.Developer.Master.Owner Guest:可以创建issue.发表评论,不能读写版本库 Reporter:可以克隆代码, ...
- Linux 新建用户和组命令
用户的角色是通过UID和GID识别的. UID用户ID:相当于各为的身份证,在系统中是唯一的 GID组ID:相当于各为的家庭或者你们的学校. 1.新建用户及设置密码命令如下: useradd [参数] ...
- linux概念之用户,组及权限
Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念 单用户多任务一个beinan用户,为了完成工作,执行了几个任务:当然beinan这个用户,其它的人还能以远程登 ...
随机推荐
- Java语言中的值传递与引用传递
Java应用程序中永远不会传递对象,而只会传递对象应用,因此,按对象引用传递. (1) Int作为参数传递时,对形参值得修改不会影响到实参: (2) StringBuffer作为参 ...
- 利用神经网络进行网络流量识别——特征提取的方法是(1)直接原始报文提取前24字节,24个报文组成596像素图像CNN识别;或者直接去掉header后payload的前1024字节(2)传输报文的大小分布特征;也有加入时序结合LSTM后的CNN综合模型
国外的文献汇总: <Network Traffic Classification via Neural Networks>使用的是全连接网络,传统机器学习特征工程的技术.top10特征如下 ...
- 网页定位点击事件js响应函数教程(Chrome)
一.背景说明 在前端页面调试或者渗透测试(尤其是XSS)时,我们经常想定位js函数位置:比如点击了某个位置弹出了一个对话框,这是哪个文件的哪个js函数在响应. 本文以Chrome浏览器定位点击事件响应 ...
- openssh安装/更新教程(CentOS)
由于rpm包版本总落后于tar包,对于想安装新版本或由于漏洞需要更新到新版本那只能选择源代方式编译安装. 更新执行和安装一样的步骤就行了. 1.下载 官方网址:http://www.openssh.c ...
- --save-dev 与 --save区别
npm install 在安装 npm 包时,有两种命令参数可以把它们的信息写入 package.json 文件,一个是npm install --save另一个是 npm install --sav ...
- AI新建文件可以新建多个画板5.2
- 机器学习---笔记----Python基础
一. python简介 1. python 具有丰富强大的库,常被称为胶水语言,能够把用其他语言制作的各种模块很轻松地联结在一起 2. python强制使用空白符(white space)作为语句缩进 ...
- Java 方法重载 方法重写
方法重载规则 参数个数不同 参数个数相同,但参数列表中对应的某个参数的类型不一样 方法的返回类型和参数名称不参与重载 "编译期绑定",,因为未产生对象,只看参数.引用类型绑定方法 ...
- node代理服务器
var express = require('express');var request = require('request');var app = express();var _URL = 'ht ...
- Linux防火墙iptables的策略
iptables策略 iptables -L #查看现有防火墙所有策略 iptables -F #清除现有防火墙策略 只允许特定流量通过,禁用其他流量 1.允许SSH流量(重要) iptables - ...