创建新用户
转载:ubuntu下添加新用户(详细教程)
1. 创建用户目录
注意:登录到root用户.假如你之前没有设置过root用户,那么你就通过以下命令更改密码:
sudo passwd root
然后登录root:
su root
创建新用户:
sudo useradd -r -m -s /bin/bash userName #userName是用户名称
在 Ubuntu18.04 中,不会在创建用户的时候自动提示设置密码。需要手动执行:
sudo passwd userName
来设置新用户的密码。
其中参数的意义如下:
-r:建立系统账号
-m:自动建立用户的登入目录
-s:指定用户登入后所使用的shell
输入ls /home/,可以看到用户目录被成功创建了:
- 修改用户权限(添加root权限)
这里采用修改/etc/sudoers文件的方法分配用户权限。因为此文件只有r权限,在改动前需要增加w权限,改动后,再去掉w权限。
sudo chmod +w /etc/sudoers
sudo vim /etc/sudoers
# 添加下图的配置语句,并且保存修改
sudo chmod -w /etc/sudoers
到此,新用户创建成功,并且用户目录被创建,权限也分配成功。如下图所示:
4、增加用户到某个组里
1、创建一个用户组,用户名称:dockergroup
groupadd docergroup
2、增加上面新建的用户账号到某个组里
usermod -g dockergroup docker
这里docker是用户名,相当于上面的userName;
把已建立的用户docker添加到已建立的用户组dockergroup里的另一种方法:
3、检查
id username
5、删除用户
删除用户的操作分为 3 步:
1)执行userdel:
sudo userdel dongyuanxin_2016150127
2)删除用户目录:
sudo rm -rf /home/dongyuanxin_2016150127
3)删除用户权限相关配置:删除或者注释掉/etc/sudoers中关于要删除用户的配置,否则无法再次创建同名用户。
4)从某个组里取消这个用户
gpasswd -d username groupname
注意:如果直接用useradd添加用户的话,可能出现没有home下的文件夹,以及shell无法自动补全的显现。出现此问题只要修改/etc/passwd下的/bin/sh为/bin/bash即可。
远程免密登录
转载:Ubuntu 远程免密码登录设置
我们正常使用 ssh 远程登录服务器进行操作,需要输入用户名、服务器ip以及密码,当我们需要同时管理多个服务器的时候,每次都需要重复输入这些东西会显得特别麻烦和浪费时间,因此我们可以通过配置密钥来实现Ubuntu免密码登录。
实现这一目标五部,分别为:
- 本地客户端生成密钥对
- 上传密钥到服务器端
- 服务器端将密钥添加到 authorized_keys
- 本地客户端配置 ssh,添加服务器别名
- 测试
如果客户端是使用 MacOS 或者 Linux 系统,可以直接在终端使用以下操作即可,如果 Window 系统,建议先安装 Git-Bash,Git-bash 自带 ssh 工具,在 Git-Bash 下,操作也和 Linux 或者 MacOS 系统一样。
本地客户端生成密钥对
在生成密钥对之前,我们可以先查看一下我们是否已经生成过密钥对,可以通过以下命令:
ls -la ~/.ssh
如果输出有 id_rsa 和 id_rsa.pub,那么就证明之前曾经生成过密钥对,其中 id_rsa 是私钥,id_rsa.pub 是公钥,我们可以直接使用。如果没有看到这两个文件,那么请回忆是否自己命名的密钥对,如果没有或者已经忘记是否曾经生成过,那么久可以重新创建一个。方法如下:
ssh-keygen -t rsa -b 2048
执行命令后,会提示密钥存储位置,以及询问是否需要设置密码,一般我们可以一路按 Enter 确认即可完成密钥生成。
完成后我们再次查看 ~/.ssh 文件夹下是否由我们新创建的密钥即可。
上传密钥的服务器端
接下来,我们将我们创建好的公钥上传到服务器上,我们将会使用到 scp 命令。
scp ~/.ssh/id_rsa.pub <YOUR SERVER USERNAME>@<YOUR SERVER IP ADDRESS>:<User Dir Path>
这里需要注意的是,我们需要上传的是公钥,其文件名为 id_rsa.pub,私钥是需要我们保密的,这里不要上传错。
服务器端将密钥添加到 authorized_keys
接下来,我们需要登录我们的服务器,然后将我们刚上传的公钥添加到 authorized_keys中。在添加之前,我们需要先做一下准备,具体如下:
- 检查是否存在 .ssh 文件
- 如果不存在需要自行创建
如果是刚安装的系统,以我的 Ubuntu 16.04.4 为例,默认的 ssh 是没有自动创建 .ssh 文件夹的,这需要我们自己创建。不同版本的系统或者以不同途径安装的 ssh 可能情况会有所不一样,请根据实际情况处理。
查看是否存来 .ssh 文件夹
ls -la ~
如果不存在,创建 .ssh 文件夹
mkdir .ssh
将公钥添加到 authorized_keys 文件中
cat id_rsa.pub >> ~/.ssh/authorized_keys
以上即完成操作,在 Ubuntu 16.04.4 的系统默认配置中,以上操作完成即可。然而,在一些不同版本的系统中,可能还需要配置以下 ssh 的配置,具体如下:
- 备份 /etc/ssh/sshd_config
- 编辑 /etc/ssh/sshd_config ,将 PubkeyAuthentication no 修改为 PubkeyAuthentication yes
本地客户端配置 ssh,添加服务器别名
完成上面的配置后,我们可以尝试在本地中尝试使用密钥登录看是否成功:
ssh -i ~/.ssh/id_rsa <YOUR SERVER NAME>@<YOUR SERVER IP ADDRESS>
如果配置正确就可以正常免密码登录。
为了解决需要管理多台服务器,不希望记住太多不同的用户名和地址的问题,我们还可以为设置别名登录,具体操作如下:
- 在本地 .ssh/ 文件夹下创建 config
- 向 config 中添加别名信息
~/.ssh/config 配置格式
Host <YourServerAlias>
HostName <YourServerIPAddress>
Port <YourServerSSHPort>
User <YourServerUserName>
IdentityFile ~/.ssh/id_rsa
测试
完成所有配置后,我们可以测试一下配置是否正确:
ssh
如果能正常免密码登录,说明配置成功,我们以后便可以通过这样直接输入服务器别名的方式快速登录服务器了。