Linux 系统用户组【大全】

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Linux 系统用户组【大全】

每个用户通过:用户名和密码(管理)


组分为:用户组,用户容器


用户类别分为:


  • 管理员和普通用户

系统用户:为了能够让那后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户;这类用户从不用登录系统;


普通用户分为:


  • 系统用户登录用户

用户通过: UserID, UID 进行标识(以数字进行标识)


  • 管理员:0
  • 普通用户:1-65635
  • 系统用户:1-499(CentOS6), 1-999(CentOS7)
  • 登录用户:500-60000(CentOS6), 1000-60000(CentOS7)

用户登录的时候根据名称进行解析:名称转换成 UID


名称解析库:/etc/passwd




组:


组类别1:


  管理员组


  普通用户组:系统组 和 登录组


组标识:GroupID, GID


管理员组:0


普通用户组:1-65635


系统用户组:1-499(CentOS6), 1-999(CentOS7)


登录用户组:500-60000(CentOS6), 1000-60000(CentOS7)



名称解析:groupname <--> gid


解析库:/etc/group


组类别2:


  • 用户的基本组
  • 用户的附加组



组类别3:


  • 私有组:组名同用户名,且只包含一个用户;
  • 公共组:组内包含了多个用户;

认证信息


通过比对事先存储的,与登录时提供的信息是否一致;


password:


  • /etc/shadow
  • /etc/gshadow

密码的使用策略:


  • 1、使用随机密码;
  • 2、最短长度不要低于8位;
  • 3、应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类;
  • 4、定期更换;

加密算法:


  • 对称加密:加密和解密使用同一个密码;
  • 非对称加密:加密和解密使用的一对儿密钥;

密钥对儿:


  • 公钥:public key
  • 私钥: private key

单向加密:只能加密,不能解密;提取数据特征码;


算法:


  • md5: message digest, 128bits
  • sha:secure hash algorithm, 160bits
  • sha224
  • sha256
  • sha384
  • sha512

在计算之时加salt,添加的随机数;


/etc/passwd:用户的信息库




name:password:UID:GID:GECOS:directory:shell


  • name: 用户名
  • password:可以是加密的密码,也可是占位符x;
  • UID:用户 ID
  • GID:用户所属的主组的ID号;
  • GECOS:注释信息
  • directory:用户的家目录;
  • shell:用户的默认shell,登录时默认shell程序;

/etc/shadow:用户密码




用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段


/etc/group:组的信息库




group_name:password:GID:user_list


user_list:该组的用户成员;以此组为附加组的用户的用户列表


安装上下文


  • 进程以其发起者的身份运行;
  • 进程对文件的访问权限,取决于发起此进程的用户的权限

用户和组管路命令


groupadd [选项] group_name (添加组)


  • -g GID:指定GID;默认是上一个组的GID+1;
  • -r: 创建系统组;

groupadd zhangbiao



查看添加的组

1

tailf -n 1 /etc/group

groupmod [选项] GROUP (修改组属性)

  • -g GID:修改GID;
  • -n new_name:修改组名;
groupmod zhangbiao -n zhangtao

groupdel [选项] GROUP (删除组)

groupdel zhangtao

useradd [选项] 登录名(创建用户)  

  • -u, --uid UID:指定UID
  • -g, --gid GROUP:指定基本组ID,此组得事先存在;
  • -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;
  • -c, --comment COMMENT:指明注释信息;
  • -d, --home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;
  • -s, --shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;
  • -r, --system:创建系统用户;
  • -M, --no-create-home 不创建家目录

usermod [选项] 登录(修改用户属性)

  • -u, --uid UID:修改用户的ID为此处指定的新UID;
  • -g, --gid GROUP:修改用户所属的基本组;
  • -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;
  • -a, --append:与-G一同使用,用于为用户追加新的附加组;
  • -c, --comment COMMENT:修改注释信息;
  • -d, --home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;
  • -m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
  • -l, --login NEW_LOGIN:修改用户名;
  • -s, --shell SHELL:修改用户的默认shell;
  • -L, --lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";
  • -U, --unlock:解锁用户的密码;

userdel [选项] 登录 (删除用户)

  • -r:删除用户时一并删除其家目录;

passwd命令(修改密码)

  • (1) passwd:修改用户自己的密码;
  • (2) passwd USERNAME:修改指定用户的密码,但仅root有此权限;
  • -l, -u:锁定和解锁用户;
  • -d:清除用户密码串;
  • -e DATE: 过期期限,日期;
  • -i DAYS:非活动期限;
  • -n DAYS:密码的最短使用期限;
  • -x DAYS:密码的最长使用期限;
  • -w DAYS:警告期限;

通过 --stdin(标准输入)修改用户的密码

echo "2" | passwd --stdin zhangbiao

gpasswd [选项] group

  • -a USERNAME:向组中添加用户
  • -d USERNAME:从组中移除用户

组密码文件位于:/etc/gshadow

newgrp命令:临时切换指定的组为基本组(这样执行的操作都是以临时组的名义如:创建文件)

newgrp [-] [group]

-: 会模拟用户重新登录以实现重新初始化其

newgrp mysql

创建一个文件

touch txt.txt

可以看到新创建的组名是 mysql

退出临时组

exit

chage [选项] 登录名(更改用户密码过期信息)

  • -d
  • -E
  • -W
  • -m
  • -M

id [OPTION]... [USER] (显示用户用户的真是ID)

  • -u: 仅显示有效的UID;
  • -g: 仅显示用户的基本组ID;
  • -G:仅显示用户所属的所有组的ID;
  • -n: 显示名字而非ID;
# 显示当前用户

id

# 显示指定用户

id roo

su命令:switch user (切换用户)

登录式切换:会通过读取目标用户的配置文件来重新初始化(会切换到目标用户的家目录)

  • su - USERNAME
  • su -l USERNAME

非登录式切换:不会读取目标用户的配置文件进行初始化(在当前目录下)

  • su USERNAME

注意:管理员可无密码切换至其它任何用户

-c 'COMMAND':仅以指定用户的身份运行此处指定的命令

用户权限

进程安全上下文:

进程对文件的访问权限应用模型:

进程的属主与文件的属主是否相同;如果相同,则应用属主权限;

否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;

否则,就只能应用other的权限;

可以使用 ls -l 查看一个文件或者目录的权限

rwxrwxrwx:

  • 左三位:定义user(owner)的权限
  • 中三位:定义group的权限;
  • 右三位:定义other的权限

文件和目录的权限

  • mode:rwxrwxrwx
  • ownership:user, group

文件:

  • r:可获取文件的数据;
  • w: 可修改文件的数据;
  • x:可将此文件运行为进程;

目录:

  • r:可使用ls命令获取其下的所有文件列表;
  • w: 可修改此目录下的文件列表;即创建或删除文件;
  • x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息;

chmod 命令 权限管理命令

  • chmod [OPTION]... MODE[,MODE]... FILE...
  • chmod [OPTION]... OCTAL-MODE FILE...
  • chmod [OPTION]... --reference=RFILE FILE...

注意:用户仅能修改属主为自己的那些文件的权限;

三类用户:

  • u:属主
  • g:属组
  • o:其它
  • a: 所有

(1) chmod [OPTION]... MODE[,MODE]... FILE...

MODE表示法:

  • 赋权表示法:直接操作一类用户的所有权限位rwx;
  • u=
  • g=
  • o=
  • a=

让一个文件所属用户用户 rwx 的权限

chmod u=wrx test.txt

授权表示法:直接操作一类用户的一个权限位r,w,x;

  • u+, u-
  • g+, g-
  • o+, o-
  • a+, a-

把一个文件的可执行权限拿掉

chmod u-x test.txt

(2) chmod [OPTION]... OCTAL-MODE FILE... (以8进制的方式修改权限)

    
chmod 777 test.txt

(3) chmod [OPTION]... --reference=RFILE FILE... (按照一个参考文件赋予权限)

# 文件 text1.txt 的权限最终和 test.txt 的权限相同

chmod --reference test.txt text1.txt

从属关系管理命令

chown命令

  • chown [OPTION]... OWNER] FILE...
  • chown [OPTION]... --reference=RFILE FILE...

选项:

  • -R:递归修改

注意:仅管理员可修改文件的属主和属组

把文件的用户和属组修改为 roo roo

chown roo:roo test.txt

把文件 test.txt 的属组修改成 root

chgrp root test.txt

install命令

install - copy files and set attributes

常用选项:

  • -m, --mode=MODE:设定目标文件权限,默认为755;
  • -o, --owner=OWNER:设定目标文件属主;
  • -g, --group=GROUP:设定目标文件属组;

单源复制:

  • install [OPTION]... [-T] SOURCE DEST
install test.txt zhang/

多源复制:

  • install [OPTION]... SOURCE... DIRECTORY
  • install [OPTION]... -t DIRECTORY SOURCE...

把 zhang 目录下的所有文件复制到当前目录下

install zhang/* ./

创建目录:

install [OPTION]... -d DIRECTORY...

创建 一个 test 的目录

install -d test

mktemp命令:

  • mktemp - create a temporary file or directory

mktemp [OPTION]... [TEMPLATE]

常用选项:

  • -d:创建临时目录

注意:mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存起来;

Linux系统有特殊的目录,专供临时文件使用。Linux使用/tmp目录来存放不需要永久保留的文件。mktemp命令专门用来创建临时文件,并且其创建的临时文件是唯一的。shell会根据mktemp命令创建临时文件,但不会

使用默认的umask值(管理权限的)。它会将文件的读写权限分配给文件属主,一旦创建了文件,在shell脚本中就拥有了完整的读写权限,其他人不可访问(除了root)。mktemp命令用法如下:

默认情况下,mktemp会在本地当前目录创建一个临时文件,创建临时文件时只需要创建模板文件,模板可以包含任意的文件名,文件末尾可以根据需要添加nX。Demo如下:

mktemp test.XXX

作业练习

1、新建系统组mariadb, 新建系统用户mariadb, 属于mariadb组,要求其没有家目录,且shell为/sbin/nologin;尝试root切换至用户,查看其命令提示符;

useradd -M -r -s /sbin/nologin mariadb

2、新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;

groupadd -g 5000 mageedu   

useradd  -d  /users/gentoo gentoo

echo gentoo | passwd --stdin gentoo

3、新建用户fedora,其家目录为/users/fedora,密码同用户名;

4、新建用户www, 其家目录为/users/www;删除www用户,但保留其家目录;

useradd -d /users/www www

userdel www

5、为用户gentoo和fedora新增附加组mageedu;  

usermod -aG 5000 gentoo

usermod -aG 5000 fedora

6、复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为mageedu,并让属组对目录本身拥有写权限;

cp -r /var/log /tmp

chown -R :mageedu /tmp/log

chmod g+w /tmp/log


云服务器ECS地址:阿里云·云小站

相关文章
|
25天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
65 3
|
25天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
62 2
|
22天前
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
107 48
|
19天前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
15 3
|
24天前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
40 4
|
22天前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
25 1
|
22天前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
46 1
|
22天前
|
Linux
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?
|
25天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
68 3
|
7天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。