linux 权限mod,linux学习—权限管理

 2023-09-25 阅读 13 评论 0

摘要:用户、组和权限(一)--为了让每个用户具有较安全的管理机制,文件的权限管理是很重要的。Linux通常将文件的访问方式分为三个类别(owner/group/other),并且具有Read/Write/eXecute等的权限。目录用户用户组安全上下文组的类别passwd,shadow,group&#

用户、组和权限(一)--为了让每个用户具有较安全的管理机制,文件的权限管理是很重要的。Linux通常将文件的访问方式分为三个类别(owner/group/other),并且具有Read/Write/eXecute等的权限。

目录用户

用户组

安全上下文

组的类别

passwd,shadow,group,gshadow文件

useradd,userdel,groupadd,groupdel命令

passwd,usermod,gpasswd,groupmod命令

groupmems,newgrp,groups命令

一、用户

Linux是多用户的系统,经常会出现多个用户同时使用主机,考虑到每个人的隐私以及个人爱好,文件拥有者(用户)就相当重要了。

用户类别UID

管理员root ,0

系统用户1-499(centos6) ,1-999(centos7)普通用户

1—65535

登录用户500+(centos6) , 1000+(centos7)

二、用户组

用户组多用于团队开发,每个团队的成员需要同时可以修改自己团体内任何人文件,且不能让其他团体的人看到自己文件的内容,这时通过用户组的权限设置可以实现。

管理员组root 0

系统组

普通组

现在用家庭的概念做一个形象的比喻:

假设有一家人,家里有三兄弟,分别是王大毛、王二毛、王三毛,这个家庭属于王大毛门下,所以,王大毛家有三个人(王大毛、王二毛、王     三毛),而且这三个人分别拥有自己的房间,共同拥有一个客厅,王大毛家相当于用户组,三兄弟相当于3个用户;

有一个人叫做张小猪,他对于王大毛家的人就是其他人。

a7b5782c37e7cd132c8fbd0652c0e3f3.png

三、安全上下文

进程发起者  命令   对象

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

四、组的类别

主要组(也叫私有组)用户创建的时候,组名自动创建//组名同用户名

附加组(真正常用的)

思考:多个用户可以属于一个主要组吗?

答:可以手动设置,但是最好不要这样设置,安全考虑

五、passwd,shadow,group,gshadow文件

/etc/passwd

pwconv    将passwd中的密码映射到/etc/shadow

pwunconv  取消映射

/etc/shadow

用户名

密码位

密码上一次的修改时间

密码的最小存活期

密码的最大存活期

密码过期之前提前多少天提醒用户将会过期

密码过期之后在用户仍不改密码后多少天触发帐户过期

帐户过期时间

保留位

/etc/group

组名  组密码组ID  以当前组为附加组成员列表(,为分隔符)

grpconv 将组密码映射到/etc/gshadow

grpunconv 取消组密码的映射

/etc/gshadow

组名  组密码  管理员列表  以当前组为附加组成员列表

六、useradd,userdel,groupadd,groupdel命令

1、useradd + [选项] + 用户名

useradd  用户创建   adduser也可以(其实adduser就是useradd的软链接)

-u+UID指定UID创建用户

-o 配合-u指定已存在的UID创建用户

例如:useradd -u 600 lisi

useradd -u 600 wangwu -o

cat /etc/passwd 查看lisi和wangwu的UID相同

1d7628243dfbd779ba792527cad46f79.png

(以:为分隔符,第三列为UID)

-g+GID或组名指定已存在的主要组创建用户

-G+附加组号或者附加组名指定已存在的附加组创建用户,以,为分隔符可以同时指定多个

-c+注释信息附加注释信息创建用户

-d+目录路径指定目录路径,创建用户(目录名已存在,基名不存在)

-s指定登录shell创建用户

例如:useradd -s /sbin/nologin wangwu  创建不可交互式登录用户wangwu

之后输入su - wangwu ,显示登录失败

-N不创建私有组作为主组,即使用users组作主组

-r创建系统用户

2、/etc/default/useradd创建用户的默认配置文件

GROUP=100       表示使用useradd -N时默认使用的组为GIP为100的组

HOME=/home      自动创建家目录时,从哪个目录下创建与用户同名的家目录

INACTIVE=-1     用户是否设置 密码过期后,多少天帐户过期,为-1时,不会触发帐户过期

EXPIRE=         是否指定一个帐户过期时间,为空表示帐户默认永不过期

SHELL=/bin/bash 使用useradd创建用户时,如不使用-s 指定则默认的用户shell为/bin/bash

SKEL=/etc/skel  家目录的内容数据参考目录,自动创建家目录时,从哪个目录拷贝模板文件

(利用useradd新增用户后,新增用户家目录下的各项数据都是由/etc/skel 复制过去的)

CREATE_MAIL_SPOOL=yes  创建用户时是否在/var/spool/mail下为用户与用户同名的邮箱文件。

手工创建家目录的方法(加深理解)

mkdir /home/machao

chmod 700 /home/machao/

cp -r /etc/skel/.[^.]*  /home/machao/

chown -R machao.machao /home/machao

3、userdel -r +用户名删除用户名连同家目录以及邮箱文件一起删除

4、groupadd + [选项] + 组名创建组(创建的组不分主要组和附加组,因为没有用户)

-g+GID或者组名  创建指定GID的组

-r   创建系统组

5、groupdel+ 组名删除组

七、passwd,usermod,gpasswd,groupmod命令

1、passwd + username指定要修改密码的用户名(仅root运行,普通用户不输入用户名,可直接修改自己的密码)

-l锁定用户  实际就是在密码位前加!!

-u取消用户锁定

-e强制用户下次登录时更改密码

-n + mindays:  指定最短使用期限

-x + maxdays: 最大使用期限

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

-i + inactivedays:非活动期限

--stdin从标准输入接收用户密码(常用)

2、usermod + username用户属性修改

-u+UID              修改用户ID

-g+GID或者组名修改用户主要组

-G+GID或者组名[,组名]   设定用户的附加组为哪些组,之前的附加组信息被覆盖

-aG                  增加用户的附加组,不会覆盖之前的附加组

-s+shell           修改用户的登录shell

-c+注释信息 修改用户的描述信息

-d+目录路径新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项

-l+目标用户名+原始用户名  更改用户名

-L+用户名        锁定指定用户,在/etc/shadow密码栏增加!

-U+用户名          解锁指定用户,将/etc/shadow密码栏的!拿掉

-e+年月日          指明账户过期的日期

-f设定非活动期限

3、gpasswd + [选项] + 组名 (重点难点)

gpasswd + 组名        设置组密码

gpasswd -a + 用户名  添加指定用户到指定组名的附加组

gpasswd -d+ 用户名  删除用户

gpasswd -M + 用户名(多个用户用,分隔)  仅root执行,设置用户列表到指定用户组名的组

(可以用命令groupmems -l -g +组名   查看指定组下用户列表)

gpasswd -A + 用户名(多个用户用,分隔) 设置指定组的管理员 仅root执行

(管理员只可以修改组密码,单个踢出组成员,单个添加组成员;管理员可能不是组成员,也就不能访问组内的文件,但是管理员可以                  把自己加入该组内,然后访问文件)

4、groupmod

-n+目标组名+原始组名   修改组名

-g+目标GID+原始组名    修改组ID

八、groupmems,newgrp,groups命令

1、groupmems  仅限于root

-g + 组名 -a + 用户名  添加指定用户到指定组名的附加组

-g + 组名 -d + 用户名  删除指定用户

-g + 组名 -p              清空所有指定组成员

-g + 组名 -l              查看指定组有那些成员(仅附加组)

2、newgrp + 组名(普通用户执行)

非附加组成员的普通用户在正确输入组密码后临时变更指定组名为主要组,原主要组临时变成附加组

附加组成员的普通用户无须输入密码就可以临时变更指定组名为主要组,原主要组临时变成附加组

*******************

使用newgrp之后实质就是进入了一个子shell,在这个子shell环境下的主要组为指定组,使用exit后,只是退出了子shell,当前用户没有变(注意理解)

f9e9df1aea042bfdf5838a2f68414145.png

c4e51775bff84f89379fcf14867b3393.png

进入guanyu用户下,查看用户的主要组和附加组,使用了newgrp命令之后,主要组和附加组发生变化;exit退出之后,用户并没有变

*********************

3、groups + 用户名   查看指定用户属于那些组(包含主要组和附加组)

小总结:添加删除组成员可以用usermod -G,gpasswd -d,groupmems -g + 组 -d +用户

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/95447.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息