Linux为用户组设置权限,Linux用户组和权限管理

用户

基础概念及工作机制

安全3A

资源分派

Authentication                 认证

Authorization                   授权

Accouting,Audition       审计

用户user   用户有令牌 token, identity

Linux中有存放用户名和密码的数据库,用户名和成对的密码判定用户是否登录成功。每个用户登录时都在数据库里验证用户名和密码是否正确,如果正确会颁发令牌,当用户访问文件时会提交令牌给资源,资源根据提交的令牌判断用户是否有权限访问此文件,用户要想得到最新令牌必须重新登录。

Linux用户:username/UID

管理员  root,0

普通用户:1-65535

系统用户

1-499

1-999

对守护进程获取资源进行权限分配

普通用户

500+

1000+

交互式登录

用户相关配置文件

/etc/passwd  用户及其相关属性信息

19fc7a052e0cd0101405e24a26440643.png

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

用户名:密码:UID:GID:描述信息:家目录:shell

用户名:首字母不能是大写

密码:x,新系统密码不存放在此

pwunconv   密码存放到passwd中

pwconv       密码存放到shadow中

UID:判断身份的唯一标识

GID:主组的GID

描述信息:

chfn    username     修改用户的描述信息

finger   username    查看用户描述信息

家目录:

默认家目录/home/username    家目录不存在时,会在/上

新建帐号时会从/etc/skel复制相关配置文件到家目录下

shell:

默认shell /bin/bash,/sbin/nologin一般给进程(服务)使用

chsh -s /someshell  username   修改用户shell类型

/etc/shadow   用户密码及其相关属性

1b9523eaad387cfffbec996934577d07.png

login name:encrypted password: date of last password change: minimum password age: maximum password age:password warning period:password inactivity period:account expiration date:reserved field

用户名:密码:最近一次修改密码时间:口令最短使用期限:口令最长使用期限:警告时间:宽限时间:账户有效期:保留字段

密码:!!表示账号锁定,双保险  x表示密码存放在/etc/passwd中

修改密码时间:从1970年1月1日起到密码最近一次被修改的时间  值为0第一次登录必须修改密码

口令最短使用期限:密码必须使用多长时间    值为0随时更改

口令最长使用期限:密码可以使用多长时间(密码有效期),使用多少天后必须更改   99999永久有效

警告时间:密码过期前几天提醒用户

宽限时间:密码过期后还可以使用几天

账号有效期: 从1970年1月1日算起,多少天后帐号失效

保留字段:以后使用

/etc/skel    家目录模板文件

c4f11b8998a639b3b58d3e4af00d0165.png

新建账号时默认家目录里的相关配置文件都从/etc/skel里复制

/etc/default/useradd   设置添加的用户规则文件

d49ac3db01582d3fc626b95f70eb7cf4.png

设置组      家目录路径      密码宽限期       账户有效期       默认shell类型      是否创建邮箱

/etc/login.defs设置用户帐号限制

7b4e6fabc3b032debba5778300e7350d.png

431bc431cc05e7f4dc37db87993b5c9a.png

47640efbbfea2feac14f4cfb850045be.png

设置密码相关参数       用户相关设置(邮箱地址,是否创建家目录等)       修改加密算法

用户管理相关命令

useradd   创建用户

useradd [options] LOGIN

-u UID:指定UID

-g GID:指定组名或UID

-d:指定的路径(不存在)为家目录

-o:不检查UID唯一性与-u配合使用

-s:指定shell类型

-r:创建系统用户(不创建家目录和邮箱)

-c:指定描述信息

-G:为用户指定附加组

-m:给系统用户创建家目录

-M:给非系统用户不创建家目录

useradd -D   查看或更改/etc/default/useradd文件默认设置

useradd -D [options]

-g

-b

-s

usermod   修改用户

usermod [options] LOGIN

-u:修改UID

-g:修改新主组

-G:新附加组,保留原有附加组需配合-a使用

-s:修改shell类型

-c:修改注释信息

-d:新家目录不会自己创建,若要自动创建并移动原家目录数据,配合-m使用

-l:修改用户名

-e:设置用户账号过期时间

-L:锁定账号

-U:解锁

-f:设定非活动期限

userdel   删除用户

userdel [options] LOGIN

-r:删除其家目录及邮箱

id   查看用户

id [OPTION]... [USER]

-u:显示UID

-g:显示GID

-G:显示用户所属组的ID

-n:显示名称,需要与-ugG配合使用

密码相关

密码相关知识

加密机制

加密:明文-->密文

解密:密文-->明文

单向加密:哈希算法,原文不同,密文必不同

相同算法定长输出,获得密文不可逆推出原始数据

雪崩效应:初始条件的微小改变,引起结果巨大改变

md5($1),sha1,sha224,sha256($5),sha384,sha512($6)

更改加密算法 authconfig --passalgo=sha256--update

密码复杂性策略

使用数字、大小写字母及特殊字符中至少3种

位数足够长,使用随机密码,定期更换等

生成随机密码   openssl rand -base64 12

密码相关命令

passwd   修改用户密码

passwd [OPTIONS] UserName

-d:删除密码

-l:锁定用户

-u:解锁

-e:强制用户下次登录修改密码

-f :强制操作

-n:指定最短使用期限

-x:最长使用期限

-w:提前多少天开始警告

-i:非活动期限

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

chage     修改用户密码策略

chage [options] LOGIN

-d:最后一次修改密码时间

-E:强制用户下一次登录修改密码

-I:非活动期限

-m:密码最短使用期限

-M:密码最长使用期限

-W:警告期限

-l:显示密码策略Linux安全上下文

运行中的程序:进程

以进程发起者的身份运行:root:/bin/cat

进程所能够访问资源的权限取决于进程运行者的身份组

基础概念

Linux组 Groupname/GID

管理员组 root,0

普通组

系统组

1-499

1-999

普通组

500+

1000+

组类别

主组(primary group) ,私有组

用户必须属于一个且只有一个主组

组名同用户名且仅包含一个用户

附加组(supplementray group) ,辅助组

一个用户可以属于零个或多个附加组

组相关配置文件

/etc/group   组及其相关属性信息

45a9df19c719d50161190160c5387f2e.png

group_name:password :GID:user_list

组名:密码:GID:以此组为附加组的用户列表

/etc/gshadow   组密码及其相关信息

c753a4800a82ebe0efb59a92518d5142.png

group name:encrypted password:administrators:members

组名:密码:管理员列表:以此组为附加组的用户列表

组相关命令

groupadd   创建组

groupadd [options] group

-g:指定GID

-r:创建系统组

groupmod   修改组

groupmod [options] GROUP

-g:修改GID

-n:修改组名

groupdel   删除组

groupmems    更改和查看组成员

groupmems [options] [action]

-g:更改为指定组(只有root)

-a:指定用户加入组

-d:从组中删除用户

-p:从组中清除所有成员

- l:显示组中成员

groups   username   查看用户所属组列表

gpasswd 更改组密码

gpasswd [option] group

-a, --add user :将user添加到指定组中

-d, --delete user:从指定组中删除用户

-A, --administrators user,...:设置有管理权限的用户列表

newgrp   临时切换主组   如果用户本不属于此组,则需要组密码

切换用户

su switch user

su [OPTION]... [-] [USER [ARG]...]

切换用户的方式

不完全完全切换(非登录式切换)    su   username

36b400ac47d23bad3c2bfa44a0cfacc9.png

不会读取目标用户的配置文件,不会改变当前工作目录

完全切换(登录式切换)     su - username

2118b2582792e856748132f65ff5f4af.png

会读取目标用户配置文件,切换至家目录

换个身份执行命令:

su [-] UserName -c 'COMMAND'权限

文件权限

文件属性

142917a208ef6d21ab0991b80ee00623.png

文件权限主要针对三类对象定义                        每个文件针对访问者都定义了三类权限

user           u        属主                                     Readable            r               读

group        g        属组                                     Writeable           w              写

other         o        其它                                     eXcutable           x              执行

文件:

r:查看文件

w:修改文件内容

x:二进制程序的运行

目录:

r:可以ls查看目录中文件列表

w:可以在此目录中创建或删除文件

x:可以cd切换至此目录,也可ls -a查看文件详细列表

X:只给目录x权限,不给文件x权限

对于root用户来说rw权限不受影响,x权限受影响    普通rwx权限都受影响

权限用八进制数字表示

---              000            0

--x              001            1

-w-             010            2

-wx             011            3

r--               100            4

r-x               101            5

rw-              110            6

rwx              111            7

判断文件访问权限:所有者,所属组,其它   逐一进行匹配,一旦匹配到就使用

umask

mask  掩码   取消对应的权限

root用户umask是022

普通用户umask是002

umask  查看

#:设定umask为#

-S:模式方式显示

-p:输出可被调用

新建文件和目录的默认权限

目录:default权限=777-umask

文件:default权限=666-umask    结果如果有奇数+1,偶数不变

全局设置:/etc/bashrc        用户设置:~/.bashrc

Linux特殊权限

SUID    user,占据属主的执行权限位            4  u+s

s属主拥有x权限,S属主没有x权限

继承二进制程序所有者的权限,对目录无意义

SGID    group,占据属组的执行权限位      2   g+s

s属组拥有x权限,S组主没有x权限

1.继承所属组的权限

2.作用于目录上,此目录新建的文件继承目录的所属组

Sticky粘滞位   other,占据其它的执行权限们       1   o+t

t其它拥有x权限,T其它没有x权限

作用于目录上,此目录的文件只能被文件所有者或root删除

权限相关命令

chown    修改文件属主

chown [OPTION]... [OWNER][:[GROUP]] FILE...

-R:递归

OWNER

OWNER:GROUP

:GROUP

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

-R:递归

chgrp     修改文件属组

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...     参考

chmod   修改文件权限

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

-R:递归

mode法:chmod  whooptper file

who:u,g,o(all)

opt:+,-,=

per:r,w,x,X

chmod u+x,g-r,o=   file

chmod [OPTION]... OCTAL-MODE FILE...

digit法:

所有者              所属组               其它

u                      g                     o

rwx                   rw-                  --x

chmod   761   filename

chmod [OPTION]... --reference=RFILE FILE...   参考RFILE文件权限设置FILE权限

chattr 对特定文件进行锁定(避免管理员误操作)

+i:不能删除,改名,更改

-i:解锁

+a:锁定文件名称不能更改,可追加内容

-a:解锁

+A:锁定读时间

lsattr 查看特定属性

ACL  Access Control List访问控制列表

实现灵活的权限管理,除了文件所有者,所属组和其它,可以对更多的用户设置权限

CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加

tune2fs –o acl /dev/sdb1

mount –o acl /dev/sdb1 /mnt/test

设置acl权限

setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...

-m:添加acl权限

-d dir:设置默认权限

-x:删除Acl权限

-R:递归

-b file:清除所有acl

-k dir:删除默认权限

查看acl权限

getfacl [-aceEsRLPtpndvh] file ...

备份和恢复acl

getfacl -R /tmp/dir1 > acl.txt

setfacl -R -b /tmp/dir1

setfacl -R --set-file=acl.txt /tmp/dir1

setfacl --restore acl.txt

getfacl -R /tmp/dir1

acl文件上的group权限是mask值,acl中mask定义除所有者和其它的最高权限(自定义用户和自定义组)

ACL生效顺序:所有者,自定义用户,自定义组,其它

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值