Linux 用户、组、权限

Linux 用户、组、权限、常用命令

一、用户

数据库是用来保存数据的,操作系统中的用户名和密码也理应存放在数据库中,这个数据库是啥呢?在 Linux 下,它是处于 /etc 下的一个叫 passwd 的文件。我们看一下这个文件中的内容。

root:x:0:0:root:/root:/bin/bash
tfp:x:40:49:FTP:/var/ftp:/bin/bash
weblogic:x:1000:100::/ebank:/bin/bash
规律

每一行文本都有数个英文格式的冒号:,它们对每一行文本进行了分割
仔细数一数,每行文本的冒号数量都是相同的,
这就是我们的用户表

Linux中UID以如下方式划分:

  • 0 表示管理员(root)
  • 1 - 500 表示系统用户
  • 501 - 65535 表示普通用户
  • 不同的 Linux 发行版,这些数字可能不一样
/etc/passwd 中的字段分析
[1]:[2]:[3]:[4]:[5]:[6]:[7]

[1] - 用户名
[2] - 密码占位符
[3] - 用户ID
[4] - 用户组ID
[5] - 注释信息
[6] - 用户家目录
[7] - 用户的默认 shell

用户默认shell:
类似于cmd.exe 它接收用户命令,然后调用相应的应用程序。

其中密码x是使用的占位符,真正的密码保存在/etc/shadow 文件中,内容如下:

root:$2y$05$yBdPdRV.K1/wJab8/oK7Tek1OtGRGtpoYAATdPKQNVKXX/1pOevl.:16807::::::
ftp:*:16617::::::
weblogic:$2y$10$pajyJjxNX.Xd91AyTUG3a.YdUN/MQLb13CZ6k.KC2BaLF9FpOTuG:17518::::::
/etc/shadow 中的字段分析
[1]:[2]:[3]:[4]:[5]:[6]:[7]:[8]:[9]

[1] - 用户名
[2] - 密码
[3] - 最近一次修改密码的时间(单位/天)自1970年01月01日至今天数
[4] - 两次修改口令间隔最少的天数
[5] - 两次修改口令间隔最多的天数
[6] - 提前多少天警告用户口令将过期
[7] - 在口令过期之后多少天禁用此用户
[8] - 用户过期日期(单位/天),此字段指定了用户作废的天数
[9] - 保留字段

二、组

每个用户都有一个用户组,系统能对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同。用户组帐号信息保存在/etc/group配置文件中,内容如下:

root:x:0:
bin:x:1:daemon
weblogic:!:100:
/etc/group 中字段分析
[1]:[2]:[3]:[4]

[1] - 组名
[2] - 组密码占位符
[3] - 组ID(GID)
[4] - 组内用户列表(可以多个用“,”隔开)

三、权限

  • 权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定文件进行说明样的操作。
  • 每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户的权限大,该进程拥有的权限就大。
文件权限
权限对文件的影响对目录的影响
r (读取 4)可以读取文件内容可列出目录内容
w (写入 2)可以修改文件内容可在目录中创建删除文件
x (执行 1)可以作为命令执行可访问目录的内容
U G O

Linux权限基于UGO模型进行控制:

  • U代表 User,G代表Group,O代表Other
  • 每一个文件的权限基于TGO进行设置
  • 权限三个一组(rwx),对应UGO分别设置
  • 每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件的所属用户或者所属组的使用O权限。
    这里写图片描述
文件类型
  • 文件 -
  • 文件夹 d
  • 字符设备 c
  • 块设备 b
  • 套接口文件 s
  • 符号链接文件 l
  • 命名管道文件 p

四、常用命令

# 新增用户
$ useradd [-u UID] [-g 初始群组] [-G 次要群组] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名 | 新增用户
# 查看用户是否存在
$ id +用户名
# 删除用户
$ userdel +用户名(只会删除用户本身)
$ userdel -r +用户名(将 linux 下的用户彻底删除干净(包括用户的家目录/home/username)
# 用户切换
$ su +用户名
# 添加组
$ groupadd +组名
# 删除组
$ groupdel +组名
# 修改密码
$ passwd +用户名
# 修改文件权限
$ chmod [options] mode files
# 修改文件所属用户和用户组
$ chown 用户名:组名 文件名
内容: 1、mysql——原始 文件: 博客网址:https://blog.csdn.net/weixin_42167759/article/details/80848259 存在的问题: 1、新增用户时候id ,删除后再增加会出错,id有冲突; 2、删除用户时候,若该用户创建过其他用户(不能改此用户名、不能改此用户角色,不能删除此用户); 3、(下一步加入)增加时候,若改用户名存在(给出用户存在的提示信息); 2、db_修改过(用户 角色 权限) 文件: 博客网址:https://blog.csdn.net/weixin_42167759/article/details/80848780 修改的问题: 1、新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错; 2、删除用户时候,若该用户创建过其他用户(不能改此用户名、不能改此用户角色,不能删除此用户); 3、(下一步加入)增加时候,若改用户名存在(给出用户存在的提示信息); 4、修改了用户的表字段信息,新增了认证方式的字段; 5、用户有三种认证方式,当选择口令认证的时候,syn_sn_有输入信息,当选择KEY认证的时候,dyn_pass_sn_字段有输入信息 3、userGroupUser_intfac 文件: 博客的网址:https://blog.csdn.net/weixin_42167759/article/details/80848991 整理的文档: 《Mysql 最后程序的总结—— Linux系统C语言编程连接MySql数据库实现的用户角色权限管理系统》 修改的问题: 1、新增 添加用户模块; 2、新增 显示用户模块; 3、修改 新增用户模块 选择 其所属用户 并把用户id与用户id 写入用户用户关系表; 4、新增 修改用户以及删除用户模块(有用户属于该用户 用户名字不允许更改 用户不允许删除); 5、新增 增加用户用户时候,若要增加的用户名已存在(给出用户存在的提示信息); 6、修改了 显示的界面问题; 7、修改部分switch case 输入为字符; 8、修改部分 操作完成后 有两次回车 确认的问题; 遗留的问题: 1、switch case 输入为字符,应该改为case a:bresk; case b:break;…… 否则输入的1与10是一样的执行结果; 字符中只有数字0-9; 2、在remark字段中 scanf()函数是不允许输入空格的。 __________________________________________________________________________________________________ 4、user-role-authoritys-usergroup文件: 数据库的图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值