User

User

配置文档

  • /etc/passwd :与用户名、ID相关

  • /etc/shadow :与密码相关

增加用户&&修改用户属性

步骤一:增设用户

增设用户
useradd helios -m -G sudo -G docker -s /bin/bash
useradd <user_name> -m -s /bin/bash -G <group_name>
-m:建立家目录
-G:将用户添加到某用户组
-u:指定用户ID (-u 1000
-U:创建跟用户名同名的用户组
-d:指定家目录的路径
-s:指定使用的bash

注意

添加多个用户组时,需使用多次-G

步骤二:修改密码

记住添加用户名,否则可能改密码不生效
sudo passwd <user_name>

提示

一般账户对应的ID≥1000,系统账户则<1000;系统账户主要用来执行系统所需的服务,默认不会建立家目录

备注

用sudo能够设置简单密码

步骤三:初始化家目录提供默认 .bashrc ,修改session启动的默认bash

sudo mkhomedir_helper <username>
sudo cp /etc/skel/.bashrc /home/<user_name>
sudo usermod -s /bin/bash <user_name>

步骤四:给用户追加管理员权限(optional)

sudo usermod -aG sudo <user_name>

删除用户

userdel -r <user_name>
r: 同时删除家目录

切换用户

switch user

如果是切换到管理员用户时,可以使用sudo su或者su -
su <user_name>

查看用户登录信息

  • 查看系统已登录的一般用户(who或者w),对应文件/var/run/utemp

who
w会显示更详细的信息,包括cpu占用率,占用session所对应的执行程序
w

image-20210906101901670

  • 查看系统的一般用户

cat /etc/passwd | awk 'BEGIN {FS=":"} $3>=1000 {print $1 "\t" $3}'
  • 查看用户最近的登录信息,对应文件/var/log/lastlog

lastlog
  • 查看登录成功的日志,对应文件/var/log/wtmp

last
  • 查看用户访问信息(包括密码错误和ssh)

sudo tail -n 100 /var/log/auth.log

查看当前用户所在用户组

第一字段为有效用户组
groups

临时修改主机名

hostname <new-name>

Groups

增加用户组

groupadd <group_name>
-s <用户组名> 创建系统用户

删除用户组

groupdef <group_name>

修改用户组属性

groudmod -n [dst_group_name] [src_group_name] -g [dst_id] [src_id]
-n:修改用户组名
-g:修改用户组id

切换当前的有效用户组

newgrp

修改文件/文件夹的用户组所有者信息

chgrp -R <group_name> <directory/file>
-R 递归

常用用户组名说明

Access Right

用户A创建文件或文件夹时,该文件的文件组所有者属性从属于 有效用户组

chmod

chmod [OPTION]... MODE[,MODE]... FILE...
chmod -R 777 .
-R: 递归
给文件夹增加SGID权限
chmod g+s <directory>

提示

SGID权限即用户在该文件夹下的有效用户组为该文件夹下的用户组;用户在该文件夹下添加的文件或文件夹,这些实体的用户组权限跟该文件夹用户组权限相同

Practice

Linux服务器遭受黑客攻击时的日志分析排除