论述linux的用户和组的权限管理机制,Linux 用户、组管理以及权限

资源分配

Authentication  认证 →用户名

Authorization    授权 → 文件或目录的权限

Accounting        审计

Linux用户                UID  → 计算机只识别数字

管理员:root  0

普通用户:1-65535

系统用户:1-499

守护进程:获取系统资源进行权限分配;

登录用户:500+

Linux组   GID  可以想象成一个容器

管理员组:root  0

普通组:1-65535

系统组:1-499

普通组:500+

Linux安全上下文

运行中的程序:进程

一般的可执行程序或软件都是以执行者的身份运行的,能获得什么样的资源取决于执行者的权限;

Linux组的类别

基本组(主组):

组名同用户名,且仅包含一个用户:私有组

附加组(额外组):

一个用户可以属于多个组;

Linux用户和组的相关的配置文件

/etc/passwd:用户及其属性信息

用户名,密码,UID,基本组GID,家目录,简介,shell;

查看文件格式:man 5 passwd

/etc/shadow:用户密码及其属性信息

用户名,加密的密码,最近修改密码时间,密码最小使用期限,密码最大使用期限,密码过期警告时间,宽限时间(密码禁用期,只有更改密码后才能登陆),密码过期时间,保留字段;

查看文件格式:man 5 shadow

加密机制:

加密:明文→密文

解密:密文→明文

单向加密:

md5sum

sha1sum, sha224sum, sha384sum, sha512sum, sha256sum

定长输出                雪崩效应:一个微小的改变,就会对结果造成巨大的改变;

例子:$6$MA81A2EnrSQcJ4LX$sA8s8oZKmmD.WxDtSWKu3X.HkTnC7vdEN9Vym6mVhrYoFbiRrWKtYGNca/MLpmPsnzf1W27Y9Jv98DDJR6.wD/

以$为分隔符,6代表加密算法,MA81A2EnrSQcJ4LX为添加的杂质,为了让相同的密码有不同的输出,每次输入密码是系统都会自动添加这个杂质,sA8s8oZKmmD.WxDtSWKu3X.HkTnC7vdEN9Vym6mVhrYoFbiRrWKtYGNca/MLpmPsnzf1W27Y9Jv98DDJR6.wD/真正的密码;

/etc/group:组及其属性信息

组名,组密码,GID,以当前组为附加组的用户名(多个用户名时以逗号隔开);

/etc/gshadow:及其属性信息

用户管理类命令

useradd:添加用户

/etc/default/useradd:可以查看添加用户的默认设置

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel 创建用户的家目录时,会将/etc/skel目录中的文件复制到用户的家目录中(".","..",.bashrc等有关用户环境的文件)

CREATE_MAIL_SPOOL=yes

/etc/login.defs:可以设置默认添加用户时UID/GID的最小和最大ID;

centos7是从1000开始;centos6是从500开始;

useradd -u :添加用户时指定UID;

useradd -g :添加用户时指定的基本组ID,可以是组名也可是GID号,此组必须事先已存在;

useradd -c:设置用户的注释信息;一般是设置全名;

useradd -d:添加用户时指定其家目录;

useradd -s:添加用户时指定用户的shell;

useradd -r:添加一个系统用户;

/etc/shells:定义着支持的shell;

useradd -G:添加用户时指定用户的附加组,添加多个附加组时用逗号隔开,组事先要存在;

useradd -D:修改添加用户时的默认属性,实际上是修改/etc/default/useradd文件;

-s:修改默认shell

-e:修改默认账号过期时间

-f:修改默认账号宽限时间

groupadd -g:添加组时指定GID;    groupadd:添加组

groupadd -r:添加一个系统组;

id:显示用户的uid,gid;

id -u:显示用户的uid;

id -g:显示用户的gid;

id -G:显示用户的所有组信息;

su:切换用户身份或以其他用户的身份执行命令;

su UserName:非登录式切换,即不会读取目标用户的配置文件;

su - UserName:登录式切换,会读取目标用户的配置文件,完全切换;

su - UserName -c "command options":以目标身份执行命令,而不切换;

usermod:修改用户信息;

usermod -d path/to/dir -m UserName:更改用户的家目录的同时把原本家目录的内容移动到新家里

usermod -l:更改名字;

usermod -L:lock指定用户;

usermod -U:unlock指定用户;

passwd:给用户添加密码;

passwd UserName:修改指定用户的密码;仅root可用

passwd:修改自己的密码;

echo "password" | passwd --stdin UserName:从标准输入接收密码;

userdel:删除用户;

userdel -r:删除用户的同时删除家目录;

groupmod:修改组的属性;

groupmod -n:修改组名;

groupmod -g:修改GID;

groupdel:删除组;

groupdel GroupName;

gpasswd:添加组密码;

gpasswd -a:向组中添加用户;称为用户的附加组;

gpasswd -d:从组中移除用户;

gpasswd -A user1,user2,…:设置有管理权限的用户列表;

newgrp:临时更改指定用户的基本组; exit命令可以退出,回到之前的基本组;

pwck:检查/etc/passwd和/etc/shadow格式是否正确,数据是否有效;

chage:更改账户密码期限;

chage -l:显示指定用户时间期限信息;

chfn UserName:设置指定用户的详细信息,可以再/etc/passwd中找到;

finger:显示命令;

权限管理

文件的权限主要针对三类对象:

属主:User:::4(二进制)

属组:Group:::2(二进制)

其他人:Other:::1(二进制)

每个文件都定义了三种权限:可读(r),可写(w),可执行(x);

- rw- r-- r--.  1  root  root   2277   Apr   29  20:55  initial-setup-ks.cfg    (644)

对于文件: 创建文件时默认不具有可执行权限;

可读表示可以通过文件查看类命令查看文件内容;

可写表示可以通过文件编辑类命令编辑写入数据到文件中;

可执行是对于脚本程序的,一般情况下文件不可执行;(可以把此文件提请到内核启动为一个进程)

d rwx r-x r-x.  2  root  root     6  Apr  29  20:55   perl5

对于目录:创建目录时一般具有可执行权限;

可读表示可以使用ls显示目录里的文件或子目录;

可写表示可以在此目录里创建或删除文件或子目录;(只要用户具有目录的可写权限,就可以删除目录内的任何内容,即使不具有查看或修改里面内容的权限)

可执行表示可以使用ls -l查看目录中文件列表,也可以使用cd命令进入到目录里;

chmod:修改文件权限;

chmod [OPTION]... MODE[,MODE]... FILE...

chmod -R:递归修改文件或目录的权限;

MODE:

修改一类用户的权限;

u=rwx

g=rwx

o=rwx

u-rwx

g-rwx

o-rwx

u+rwx

g+rwx

o+rwx

ugo=/-/+rwx;

u=rwx,g=rw,o=r;

参考某个文件或目录的权限来修改某文件或目录的权限;

chmod [OPTION]... --reference=RFILE FILE...

chown:修改文件的属主,属组;

chown [OPTION]... [OWNER][:[GROUP]] FILE…   ":"可用"."代替;

chown -R:递归修改属主或属组;

参考某个文件或目录的属主或属组来修改某文件或目录的属主或属组;

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

chgrp:修改文件或目录的属组;

umask(0022)

创建文件时的默认权限为:666-umask;

如果减后的权限位存在可执行权限,则结果加1;

创建目录时的默认权限为:777-umask;

注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值