day07

多用户多任务的管理系统

linux管理模式私有模式: 每一个用户对应一个和用户同名的组

​ 公有模式

1.用户类别(65535个用户)

管理员: root 0

普通用户:redhat 1-60000

​ 系统用户: 系统安装自动创建 1-200 201-999

​ 一般用户: 手动添加 1000-60000

1.1创建用户

useradd 用户名

/usr/sbin/useradd
-u   更改用户UID
-g   更改用户的基本组(主组)
-G   更改用户的附加组
-c   注释信息
-d   家目录
-s   更改shell字段(可交互式shell、非交互式shell)

1.2查看用户

grep ‘^用户名’ /etc/passwd

id 用户名

cat /etc/passwd 用户配置文件

xiao1:x:1001:1001::/home/xiao1:/bin/bash
用户名:密码的占位符:UID:GID:注释、描述字段:用户的家目录:shell字段/bin/bash   /sbin/nologin

1.3修改用户

usermod [option…] [选项参数] 用户名

-l   修改用户登录名称     #usermod -l newxiao1  xiao1   把xiao1改名为newxiao1
-u   更改用户UID         #usermod  -u 1111 newxiao1   #usermod new1xiao1  -u 1111
-g   更改用户的基本组(主组)     #usermod -g redhat  newxiao1
-G   更改用户的附加组    #groupadd  g1      #usermod  -G g1  newxiao1
-c   注释信息           #usermod -c 18123827227   newxiao1
-d   家目录
-s   更改shell字段(可交互式shell、非交互式shell)#usermod -s /sbin/nologin  newxiao1
eg:
usermod   -l  newname   -u 1234 -g 1000  -c dashazi  name

1.4删除用户

userdel -r 用户 删除用户以及创建用户相关的所有文件

1.5用户设置/修改密码

passwd [用户名]

-d   删除用户密码
-l   锁定用户密码
-u  解锁用户密码
管理员:可以指定用户名更改系统任意用户的密码不需要输入之前的密码,不严格匹配密码等级设置
普通用户:不可以指定用户名,只能更改自己的密码,需要输入之前的密码,严格匹配密码等级设置
echo mima | passwd --stdin 用户名

chpasswd

[root@www ~]# cat users
redhat:1234
root:1234
xiao1:1234
[root@www ~]# cat users | chpasswd
[root@www ~]# echo redhat:123456 | chpasswd

1.6破解密码:

关机-->开机-->鼠标进入启动界面-->第一个引导菜单-->e --->找到linux这一行在行尾添加rd.break
--->ctrl-x--->mount     -o       remount,rw    /sysroot    --->chroot   /sysroot -->passwd root-->设置密码--确认密码--->touch   /.autorelabel -->exit --exit  (等待)

2.组类别

管理组: root 0

普通组: 1-60000

​ 系统组

​ 一般组

主组,基本组、私有组,用户的默认组

附加组,额外组 用户组默认组之外的组

2.1组添加

groupadd 组名

2.2查看组

grep ‘^组名’ /etc/group

cat /etc/group 组配置文件

root:x:0:
组名:组密码占位符:GID:组中的用户名

2.3修改组信息

groupmod [option…] [选项参数] 组名

-n  修改组名     #groupmod -n grp1   g1
-g  修改组id     #groupmod -g 2222   g1

2.4删除组

groupdel 组名

2.5设置,修改组密码

gpasswd 组名

gpasswd 组名  设置组密码
-r   删除组密码
-a   把指定用户加入组     #usermod -G g1 redhat ==  #gpasswd -a redhat  g1
-M   指定多个用户加入组(指定新的组成员列表)   #gpasswd -M  user1,user2,user3   g1
-d   将指定用户从组中移除   #gpasswd -d user1 g1
-A   指定组长(可以在组中添加成员或删除一个组用户)   #gpasswd  -A   user2   g1
-R   锁定组(用户知道组密码也不能验证登录)

2.6 登录新组

newgrp 组名

练习题

1.新建组,shengchan,caiwu,jishu

#groupadd shengchan
#groupadd caiwu
#groupadd jishu

2.新建用户要求如下:

​ * wjx 是shengchan组的附加用户

​ * liuy 是caiwu组的附加用户

​ * zxx 是jishu组的附加用户

​ * 新建admin用户,此用户不属于以上提到的三个部门,以上用户密码设置为redhat

#useradd wjx
#usermod -G shengchan  wjx   == #useradd -G shengchan  wjx
#useradd -G caiwu liuy
#useradd zxx
#gpasswd -a zxx jishu
#useradd admin
(1)#passwd wjx
(2)#echo redhat | passwd --stdin  liuy
(3)#echo zxx:redhat | chpasswd
(4)#vim file
wjx:redhat
liuy:redhat
zxx:redhat
admin:redhat
#cat file | chpasswd

3.实验

创建学习组1,学习组2 ;他们的组gid分别为1111,2222,添加成员并将uid为1088,

和uid为1066的成员为两组的组长,其中一组组长有一个‘外号’laoda。

不同学习组成员进入其他组需要密码才能进入(设置密码);即使密码泄露也不希望组之外的成员进入。

添加组
#groupadd std1
#groupmod -g 1111 std1#groupadd -g 2222 std2
创建用户
#useradd user1
#useradd -u 1088 user2
把用户加入组
#usermod -G std1  user1
#gpasswd -a user2 std1
#gpasswd -A user2  std1#useradd da1
#useradd -u 1066 da2
#gpasswd -M  da1,da2  std2
#gpasswd -A d2 std2#usermod  -c laoda  user2
组密码设置
#gpasswd  std1
#gpasswd std2
#gpasswd -R std1
#gpasswd -R  std2

不允许用户远程登录

usermod -s /sbin/nologin u1

passwd -d u1

passwd -l u1

扩展

/etc/shadow 用户密码文件

用户名:加密密码:最后一修改密码的天数(1970):密码生效最短时间:最长时间:警告时间:延长时间:精确过期时间(1970):保留字段

/etc/gshadow 组密码信息

组名:组密码:组长:组成成员

/etc/default/useradd 用户创建默认加载的配置文件

参数 含义
GR0UP=100 这个选项用于建立用户的默认组,也就是说,在添加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。但 CentOS 并不是这样的,而是在添加用户时会自动建立和用户名相同的组作为此用户的初始组。也就是说这个选项并不会生效。 Linux 中默认用户组有两种机制:一种是私有用户组机制,系统会创建一个和用户名相同的用户组作为用户的初始组;另一种是公共用户组机制,系统用 GID 是 100 的用户组作为所有新建用户的初始组。目前我们采用的是私有用户组机制。
HOME=/home 指的是用户主目录的默认位置,所有新建用户的主目录默认都在 /home/下。
INACTIVE=-1 指的是密码过期后的宽限天数,也就是 /etc/shadow 文件的第七个字段。这里默认值是 -1,代表所有新建立的用户密码永远不会失效。
EXPIRE= 表示账号过期时间,也就是 /etc/shadow 文件的第八个字段。默认值是空,代表所有新建用户没有失效时间,永久有效。
SHELL=/bin/bash 表示所有新建立的用户默认 Shell 都是 /bin/bash。
SKEL=/etc/skel 在创建一个新用户后,你会发现,该用户主目录并不是空目录,而是有 .bash_profile、.bashrc 等文件,这些文件都是从 /etc/skel 目录中自动复制过来的。因此,更改 /etc/skel 目录下的内容就可以改变新建用户默认主目录中的配置文件信息。
CREATE_MAIL_SPOOL=yes 指的是给新建用户建立邮箱,默认是创建。也就是说,对于所有的新建用户,系统都会新建一个邮箱,放在 /var/spool/mail/ 目录下,和用户名相同。

/etc/login.defs 登录用户默认匹配的配置文件

注:配置文件中的#表示注释 MAIL_DIR    /var/spool/mail   \#创建用户时,要在目录/var/spool/mail中创建一个用户mail文件PASS_MAX_DAYS  99999    \#密码最大有效期PASS_MIN_DAYS  0    \#两次修改密码的最小间隔时间PASS_MIN_LEN  5      \#密码最小长度,对于root无效PASS_WARN_AGE  7   \#密码过期前多少天开始提示#创建用户时不指定UID的话自动UID的范围UID_MIN          500\#用户ID的最小值UID_MAX         60000  \#用户ID的最大值#自动组ID的范围GID_MIN          500\#组ID的最小值GID_MAX         60000    \#组ID的最大值USERDEL_CMD  /usr/sbin/userdel_local  \#当删除用户的时候执行的脚本
CREATE_HOME   yes     \#使用useradd的时候是够创建用户目录
USERGROUPS_ENAB yes    \#用MD5加密密码

键=值

键 值

3.权限

3.1系统中的权限是在文件中标识

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XTmbEcS3-1670143472113)(C:\Users\郝其威\AppData\Local\Temp\WeChat Files\5946f42f1ea6d314aa60da013f28c4d.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJkYawDe-1670143472114)(C:\Users\郝其威\AppData\Local\Temp\WeChat Files\9534058cb9aba0f5c5ded1e0c14e5ea.png)]

3.2 权限两种描述方式

字符形式: r read w write x excute

数值形式:r=4 w=2 x=1

-rw--------. 1 root root 1456 Nov 19 12:19 anaconda-ks.cfg        600
drwxr-xr-x.  2 root root    6 Nov 19 14:12 Desktop               755

3.3 文件默认权限值

​ 目录文件的最高权限值 777

权限过滤值(权限掩码)umask 022

​ 755

​ 文本文件的最高权限值666

权限过滤值(权限掩码)umask 022

​ 644

3.4 权限字符含义

文件文件:r read 读取文件内容(cat tac more less head tail grep )

​ w wirte 编辑文件内容(vim > cat << EOF > file)

​ x excute 解释运行文件的内容(命令文件(脚本))

​ 目录文件: r 查看目录中的文件名 ls

​ w 创建文件 touch mkdir cp mv >

​ x 执行 cd (r-x) (rwx)

3.5linux中文件权限匹配方式

可执行文件(命令文件)进程的所属身份是用发起者身份

判断进程发起者身份是否是目标文件的所属用户,是,匹配目标文件所属用户的权限;

不是,判断进程发起者身份是否是目标文件的所属组用户,是,直接匹配目标文件组权限,

不是,则直接匹配目标文件其他用户的权限;

3.6 更改文件的权限

chmod 权限 文件名

chmod ugo=rwx   FILE1     //u  user   g group   o  other    a  all
chmod a=rwx  FILE1  == chomod rwx file
chmod -x  FILE1
chmod u=rwx,g+w,o-r  file chmod   777  DIRNAME
chmod    7   DIRNAME  == chmod 007 DIRNAMEchmod u=7 FILENAME  --错误
注:普通用户修改权限,用户只能更改属于当前用户文件的权限。chown    更改文件所属用户
chown 用户名   FILE...
chown 用户名:组名   FILE... chgrp    更改文件所属组
chgrp  组名   FILE...
文本文件最高权限值       666
权限掩码(权限过滤值022)    #umask
文本文件默认权限值       644
目录文件最高权限值       777
权限掩码(权限过滤值022)
目录文件默认权限值       755

拷贝文件/etc/fstab 到/var/tmp/fstab

配置文件/var/tmp/fstab 的权限
• 文件/var/tmp/fstab 的拥有者是 zhangsan文件/var/tmp/fstab 属于 zhangsan 组
• 文件/var/tmp/fstab 对任何用户不可执行
• 其他用户(当前和将来的)能对文件/var/tmp/fstab 进行读操作

#cp  /etc/fstab   /var/tmp/fstab
#useradd zhangsan
#chown zhangsan:zhangsan   /var/tmp/fstab
#chmod a-x /var/tmp/fstab
#chmod o+r /var/tmp/fstab

3.7特殊权限

umask 0022

chmod 4644 file

u+s =4 所属用户的禁锢位 suid

仅对可执行文件(命令文件)设置有意义:可执行文件进程的所属身份是执行文件自身的身份
[root@www pub]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 33544 Dec 14  2019 /usr/bin/passwd
[redhat@www pub]$ passwd   //passwd进程的用户身份是root(是执行文件自身的身份)//passwd 修改当前用户的密码,更改的是/etc/shadow
[root@www pub]# ll /etc/shadow
----------. 1 root root 1744 Dec  3 11:30 /etc/shadow为什么普通用户可以修改/etc/shadow的密码信息?
原因是passwd进程的身份是root,作为root匹配目标文件可以忽略读写权限
设置情况:通过任意用户执行命令,通过root身份来执行就可以设置特殊权限u+s

g+s=2 所属组的禁锢位sgid

对可执行文件(命令文件)设置有意义: 可执行文件进程的所属组身份是执行文件自身的所属组身份 (应用不是很多)
[root@www pub]# ll /usr/bin/touch
-rwxr-xr-x. 1 root root 96144 Jul 10  2021 /usr/bin/touch
[root@www pub]# chmod g+s /usr/bin/touch
[redhat@www pub]$ touch red2
[redhat@www pub]$ ll
-rw-rw-r--. 1 redhat root   0 Dec  3 16:13 red2
对目录文件设置有意义:在目录下任意用户创建的文件,文件的所属组都是当前目录的所属组
[root@www ~]# mkdir /test
[root@www ~]# chmod 777 /test
[redhat@www ~]$ cd /test
[redhat@www test]$ touch red1
[redhat@www test]$ ll
total 0
-rw-rw-r--. 1 redhat redhat 0 Dec  3 16:19 red1
[root@www ~]# chmod g+s /test                ----对/test 设置sgid
[root@www ~]# ll -d /test
drwxrwsrwx. 2 root root 18 Dec  3 16:19 /test
[redhat@www test]$ touch red2
[redhat@www test]$ ll
total 0
-rw-rw-r--. 1 redhat redhat 0 Dec  3 16:19 red1
-rw-rw-r--. 1 redhat root   0 Dec  3 16:20 red2  ---创建文件的所属组取决于/test目录的所属组

o+t=1 sticky 冒险位

仅对目录文件设置有意义:
o+t在该目录下,用户只能删除属于自己的文件不能删除别人的文件。
注:(目录文件对当前用户如果没有写权限,不能删除文件;对目录文件只有有写权限,用户可以删除任意用户创建的文件)

3.8扩展权限

./+ .表示没有扩展权限,+有扩展权限

查看文件的权限列表 :getfacl FILENAME

设置扩展权限列表:setfacl -m u:用户名:权限 FILENAME

​ setfacl -m g:组名:权限 FILENAME

删除扩展权限列表: setfacl -x u:用户名: FILENAME

清空扩展权限: setfacl -b FILENAME

练习题:

1.创建下列用户,组,和组的成员关系(servera)
• 创建组sysmgrs
• 一个名为 natasha 的用户,其属于 sysmgrs,这个组是该用户的从属组
• 一个名为 harry 的用户,属于 sysmgrs,这个组是该用户的从属组
• 一个名为 sarah 的用户,其在系统汇总没有可以交互的 shell
• 用户 natsha,harry,sarah 的秘密吗都要设定为:modteed
2.拷贝文件/etc/fstab 到/var/tmp/fstab 配置文件/var/tmp/fstab 的权限
• 文件/var/tmp/fstab 的拥有者是 root 文件/var/tmp/fstab 属于 root 组
• 文件/var/tmp/fstab 对任何用户不可执行
• 用户 natasha 能够对文件/var/tmp/fstab/具有读写权限
• 用户 harry 对文件/var/tmp/fstab 既不能读也不能写
• 其他用户(当前和将来的)能对文件/var/tmp/fstab 进行读操作
3.创建一个共享目录/home/managers 特性如下

• /home/managers 目录的所有权是 sysmgrs
• sysmgrs 组成员对目录有读写和执行的权限。除此之外的其他用户没有任何权限(root 用户除外)
• 在/home/managers 目录中创建的文件,其组所有权会自动设置为属于 sysmgrs组

1:
[root@localhost ~]# useradd natasha
[root@localhost ~]# useradd harry
[root@localhost ~]# useradd sarah
[root@localhost ~]# echo harry: modteed |chpasswd
[root@localhost ~]# echo sarah: modteed |chpasswd
[root@localhost ~]# echo natasha: modteed |chpasswd
[root@localhost ~]# groupadd sysmgrs
[root@localhost ~]# gpasswd -M natasha,harry sysmgrs
[root@localhost ~]# usermod -s /sbin/nologin sarah
2:
[root@localhost ~]# chown root:root /var/tmp/fstab
[root@localhost ~]# chmod a-x /var/tmp/fstab
[root@localhost ~]# chmod u+rw /var/tmp/fstab
[root@localhost ~]# setfacl -m u:natasha:rw /var/tmp/fstab
[root@localhost ~]# setfacl -m u:harry:0 /var/tmp/fstab
[root@localhost ~]# chmod o+r /var/tmp/fstab
3:
[root@localhost ~]# mkdir /home/managers
[root@localhost ~]# chgrp sysmgrs /home/managers
[root@localhost ~]# chmod u-rwx /home/managers
[root@localhost ~]# setfacl -m g:sysmgrs:rw /home/managers
[root@localhost ~]# chmod g+s /home/managers

r/tmp/fstab
[root@localhost ~]# chmod a-x /var/tmp/fstab
[root@localhost ~]# chmod u+rw /var/tmp/fstab
[root@localhost ~]# setfacl -m u:natasha:rw /var/tmp/fstab
[root@localhost ~]# setfacl -m u:harry:0 /var/tmp/fstab
[root@localhost ~]# chmod o+r /var/tmp/fstab
3:
[root@localhost ~]# mkdir /home/managers
[root@localhost ~]# chgrp sysmgrs /home/managers
[root@localhost ~]# chmod u-rwx /home/managers
[root@localhost ~]# setfacl -m g:sysmgrs:rw /home/managers
[root@localhost ~]# chmod g+s /home/managers


用户,组的查看应用。权限管理相关推荐

  1. springboot整合security,mybatisPlus,thymeleaf实现登录认证及用户,菜单,角色权限管理

    介绍 本系统为springboot整合security,mybatisPlus,thymeleaf实现登录认证及用户,菜单,角色权限管理.页面为极简模式,没有任何渲染. 源码:https://gite ...

  2. mysql 查看用户权限_在Navicat Premium中管理MySQL用户 - 第4部分:权限管理器工具

    更多资源请查看:[Navicat使用教程2019.1] | [Navicat Data Modeler使用教程] 第4部分:Privilege Manager(权限管理器)工具 在本系列教程中,我们一 ...

  3. Linux基础知识之用户和用户组以及 Linux 权限管理

    已经开始接触Linux用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时候看到这些名词总是下意识的跳过不敢看 ...

  4. mysql工具navicat用户授权_Navicat使用教程:在Navicat Premium中管理MySQL用户 - 第4部分:权限管理器工具...

    Navicat Premium 在线订购享专属优惠  立即购买>>> 第4部分:Privilege Manager(权限管理器)工具 在本系列教程中,我们一直在探索如何使用Navic ...

  5. mysql使用参数指定用户_mysql-用户账号及权限管理

    用户账号管理 添加用户 使用create创建用户 语法格式: CREATE USER [ IDENTIFIED BY [ PASSWORD ] 'password' ] [ ,用户 [ IDENTIF ...

  6. android查看应用权限管理,通过adb列出Android应用程序的权限

    我只是想将Jason和Juuso的答案结合在一起,并注意到前者列出了授予的权限,而后者列出了请求的权限(包括被授予的权限). 要查看仅授予的权限(但忽略被请求但未被授予的权限),请使用 adb she ...

  7. Linux用户管理、组管理及权限管理

    文章目录 Linux用户管理 whoami指令 who指令 useradd指令 userdel指令 passwd指令 usermod指令 - 修改已有账号自身的信息 id指令 - 查询用户信息 Lin ...

  8. Linux系统基础-管理之用户、权限管理

    Linux用户.权限管理 ============================================= 一.如何实现"用户管理" 1.什么是用户 "User ...

  9. Ubuntu/Linux用户管理与权限管理(超详细解析)

    由于实验室几个老师的学生要共同使用一台服务器,所以需要规范一下服务器的使用,并且给各位学生配置相关的用户和权限,之前一直都是自己用,所以借此机会学习和总结一下Linux服务器的用户管理与权限管理. U ...

  10. Linux之用户管理、权限管理、程序安装卸载

    一. 用户管理 1. 查看账户 (1). 查看当前账号:whoami ​(2). 查看系统当前登录的账号:who ​补充常用选项: ​(3). 查看系统所有的账号: cat /etc/passwd ​ ...

最新文章

  1. 自己实现一个最简单的数据库
  2. Ubuntu16.04在线安装MongoDB详细教程
  3. Vmware中安装Ubuntu的步骤
  4. Navicat Premium mysql
  5. exit与return区别
  6. http1.X与2.0
  7. coddenomicon工具
  8. linux登陆提示鉴定故障_5个最常见的Linux问题的故障排除提示
  9. 3GPP Releases
  10. setsockopt设置socket状态
  11. 三维点云学习(1)上-PCA主成分分析 法向量估计
  12. LeetCode 322. 零钱兑换(动态规划)
  13. My Feedback for Windows 10 IoT Core on Feedback Hub App (4/1/2017-1/23/2018)
  14. spring中创建excl表的几种方式并导出
  15. 什么是“懒加载”(Lazy Loading)?
  16. 图片怎样调整分辨率?如何在线修改分辨率?
  17. 借助网盘离线下载从官网下载DB2-Express C
  18. 【最优化算法】基于【MATLAB】的最速下降仿真
  19. 国际服服务器怎么换账号吗,战争雷霆国际服怎么切换账号 | 手游网游页游攻略大全...
  20. 计算机力学专业排名,专业+排行榜

热门文章

  1. Opencv 根据照片名字进行分类
  2. 如何搜集外贸英文关键词
  3. Android 10 适配攻略,深度解析跳槽从开始到结束完整流程
  4. 时间片任务非实时操作系统NRTOS应用按键驱动范例
  5. Android UI绘制流程详细讲解一
  6. 2022年03月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试
  7. Java学习:模拟一个用户注册功能
  8. 回顾2013,畅想2014
  9. 找一棵树 (决策树 Decision Tree)
  10. 2018国际教育信息化峰会暨国际智慧教育展览会将于12月8日举行