linux 服务器用户群组操作

1 minute read

Published:

linux 服务器用户群组操作。

新建用户

下面所有的命令都是在 root 用户下执行。

第一步:创建用户

# 添加用户

# 通过 useradd 添加(若不指定参数则无用户目录与 shell)
sudo useradd -d /home/lsy -m -s /bin/bash -G root lsy
# -d 是指定用户目录
# -m 是如果没有 lsy 用户目录就创建一个
# -G 是指定用户群组,这里我将你加到 root 群组里面
# -s 是指定用什么 shell
# lsy 是用户名

# 修改用户密码
sudo passwd lsy

第二步:赋予用户 sudo 权限,在上面把用户加到 root 群组里之后还没有 sudo 权限的,需要修改 /etc/sudoers 文件,将自己的用户名字加进去。

但是这个文件是有限制的,哪怕是 root 用户直接打开的话也是 read only,不能修改,下面第一个命令赋予 root 用户修改这个文件的权限,然后第二条命令打开它并进行修改

# 给 root 添加 sudoers 文件的写权限
$ sudo chmod u+w /etc/sudoers
# 修改 sudoers文件
$ sudo vim /etc/sudoers

# 修改如下(添加了最后一行):
# User privilege specification
root ALL=(ALL:ALL) ALL
lsy  ALL=(ALL)     ALL

删除用户

仅删除用户

userdel lsy

删除用户及其用目录

userdel -r lsy

修改用户

修改用户目录

# 设置新用户目录地址
usermod -d /disk/lsy -m lsy
# -d 是指定用户目录
# -m 是如果没有 lsy 用户目录就创建一个

# 移动用户目录
mv /home/lsy /disk/lsy

修改用户id及组id

usermod -u uid user
usermod -g gid user

添加用户群组

usermod  -aG docker lsy
# -a 表示在原来所属组的基础上追加

切换用户

su lsy

查看用户

查看 /etc/passwd 文件

cat /etc/passwd

/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式:

name:password:uid:gid:comment:home:shell
  • name:用户登录名
  • password:用户口令。此域中的口令是加密的。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。
  • uid:指定用户的 UID。用户登录进系统后,系统通过该值,而不是用户名来识别用户。
  • gid:指定用户的 GID。如果系统要对相同的一群人赋予相同的权利,则使用该值。
  • comment:用来保存用户的真实姓名和个人细节。
  • home:指定用户的主目录的绝对路径。
  • shell:如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。

查看具体用户

id lsy

查看群组

查看 /etc/group 文件

cat /etc/group

/etc/group 文件是一个纯文本文件,每行采用了相同的格式:

组名:口令:组标识号:组内用户列表
  • 组名: 组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

  • 口令:口令字段存放的是用户组加密后的口令字。

  • 组标识号:组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.
  • 组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号 , 分隔。这个用户组可能是用户的主组,也可能是附加组。

修改文件所属用户及群组

chown user file
chown -R user dir
chgrp group file
chgrp -R group dir

参考资料及致谢

Linux新建用户,并赋予Root权限 ll: command not found

linux cat /etc/passwd 说明

每天一个linux命令(31): /etc/group文件详解

Linux中useradd和adduser的区别

Linux下useradd与adduser的区别

usermod -a表示在原来所属组的基础上追加