用户类别分为:普通用户、系统用户、登陆用户

用户标识:UserID, UID 是16bits二进制数字: 0-65535
管理员:0
普通用户:0-65536
系统用户:
1-499(CentOS6)
1-999(CentOS7)
登陆用户:
500-60000(CentOS6)
1000-60000(CentOS7)
名称解析: Username <—>UID
名称解析是根据名称解析库/etc/passwd进行转换;

组类别可划分为:
组类别1:管理员组、普通用户组、系统组、登录组
组标识: GroupID, GID,同UID一样,16bits二进制数字: 0-65535
管理员组:0
普通用户组: 1-65535
系统用户组:
1-499(CentOS6)
1-999(CentOS7)
登陆用户组:
500-60000(CentOS6)
1000-60000(CentOS7)
名称解析: groupname <–> GID
名称解析是根据名称解析库/etc/group进行转换;

组类别2:用户的基本组、用户的附加组

组类别3:
私有组: 组名同用户名,且只包含一个用户;
公共组: 组内包含了多个用户;

认证信息:
通过比对事先存储的password,与登录时提供的信息是否一致:
/etc/shadow
/etc/gshadow

密码的使用策略:

使用随机密码;
最短长度不要低于8位;
应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类;
定期更换;
加密算法:
对称加密: 加密和解密使用同一个密码;
非对称加密:加密和解密使用的一对儿密钥;
公钥:public key 用于加密;
私钥:private key 用于解密;
单向加密: 只能加密,不能解密;提取数据特征码;
定长输出;雪崩效应
算法:
md5: message digest, 128bits
sha1: secure hash algorithm
sha224
sha256
sha385
sha512
在计算之时加salt, 添加的随机数,防止设置相同密码加密后出现一样的值;

/etc/passwd: 用户的信息库
[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
name: 用户名
password: 可以是加密密码,也可是占位符x;
UID: 用户ID
GID: 用户所属的主组的ID号
GECOS: 注释信息
Home directory: 用户家目录;
shell: 用户登录时默认shell程序;

/etc/shadow: 用户密码;
user1:$6
3






/






0

3RsDhRk/DfEsAv0LdzlsVlqL.vxHU2wMVX8LBdfoE5WrQatxjRXIAg2uFqfaq8ckctZAF3zN4QmDGKfsaJlknW19FytnckyiOnrl21:18234:0:99999:7:::
用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段
6
6:表示加密的算法;
id为1时,采用md5算法加密
id为5时,采用SHA256算法加密
id为6时,采用SHA512算法加密
salt为随机偏移值,是对密码进行hash的一个干扰值
encrypted为散列值
3






/






0

3RsDhRk/DfEsAv0L : salt, hash的偏移值

/etc/group: 组的信息库
group_name: password: GID: user_list
user_list: 该组的用户成员: 以此组为附加组的用户的用户列表

安全上下文:
进程以其发起者的身份运行;
进程对文件的访问权限,取决于发起此进程的用户权限;

系统用户:为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登系统;

groupadd: 添加组
groupadd [options] group
-g GID :指定GID, 默认是上一个组的GID+1;
-r: 创建系统组;

groupmod: 修改组属性
groupmod [options] GROUP
-g GID: 修改GID;
[root@server1]#tail /etc/group
newgrp1007:
[root@server1]#groupmod -g 1005 newgrp
[root@server1c]#tail /etc/group
newgrp1005:

-n new_name: 修改组名;
[root@server1]#groupadd oldgrp
[root@server1]#groupmod -n newgrp oldgrp

groupdel: 删除组;
groupdel [options] GROUP

useradd: 创建用户
adduser:创建用户 (其实是指向useradd命令)
[root@server1]#file which adduser
/usr/sbin/adduser: symbolic link to `useradd’
useradd [options] LOGIN
-u, --uid UID: 指定UID; 会自动创那家与UID一样的GID;
-g, --gid GID: 指定基本GID,此组要事先存在,不使用默认GID;
-G, --groups GROUP1 GROUP2…: 指明用户所属的附加组,多个组之间用逗号分隔;
[root@server1]#useradd -G eng,fin leo
[root@server1]#tail -3 /etc/group
eng1013:leo
fin1014:leo
leo1015:
-c, --comment COMMENT: 指明注释信息;
-d, --home HOME_DIR: 以指定的路径为用户家目录, 通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;
-s, --shell SHELL: 指定用户的默认shell, 可用的所有shell列表存存在/etc/shells文件中;
-r, --system: 创建系统用户;
-m, --create-home:
-M, --no-user-group: 不为用户创那家主目录;
-f, --inactive: 设定用户过期期限;

注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
-D:
useradd -D 显示创建用户时的默认配置;
useradd -D 选项:修改创建用户时的默认配置;其修改的值保存于/etc/default/useradd文件中;
[root@server1]#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@server1]#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@server1]#useradd -D -d /tmp
[root@server1]#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/csh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

usermod: 修改用户属性:
usermod [options] LOGIN
-u, --uid UID: 修改用户的ID为此处指定的新UID;
-g, --gid GROUP:修改用户所属的基本组;
-G, --groups GROUP1[,GROUP2,…[,GROUPN]]]: 修改用户所属的附加组;原来的附加组会被覆盖;
-a,–append: 与-G一同使用,用于为用户追加新的附加组;
-c, --comment COMMENT: 修修注释信息;
-d, --home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;
-m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动至新的家目录;
-l, --login NEW_LOGIN:修改用户名;
-s, --shell SHELL:修改用户的默认shell;
-L, --lock:锁定用户密码,即在用户原来的密码字符串之前添加一个“!”;
-U, --unlock:解锁用户的密码;

userdel: 删除用户
userdel [options] LOGIN
-r: 删除用户时一并删除其家目录,默认不删除;

passwd: 密码管理
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [–stdin] [username]

passwd: 修改用户自己的密码;
passwd USERNAME:修改指定用户的密码,但仅root有此权限;
-l, -u: 锁定和解锁用户;
-d, --delete:删除用户名密;
-e: 过期期限,日期;
-i DAYS: 非活动期限;(时间范围)
-n DAYS: 密码的最短使用期限;
-x DAYS: 密码的最长使用期限;
-w DAYS:警告期限;
–stdin:
[root@server1]#echo “gentoo” | passwd --stdin gentoo &> /dev/null (不显示输出)
root@server1]#echo “gentoo” | passwd --stdin gentoo
Changing password for user gentoo.
passwd: all authentication tokens updated successfully.
gpasswd: 组密码管理:
组密码文件: /etc/gshadow
gpasswd [option] group
-a USERNAME: 向组中添加用户;
-d USERNAME: 从组中移除用户;

netgrp: 临时切换指定的组为基本组; 用户必须已经属于要切换的组;
newgrp [-] [group]
-: 会模拟用户重新登录以实现重新初始化其工作环境;

chage命令:
chage [options] LOGIN
[root@server1]#chage sindy
Changing the aging information for sindy
Enter the new value, or press ENTER for the default
Minimum Password Age [0]:
Maximum Password Age [99999]:
Last Password Change (YYYY-MM-DD) [2020-03-01]:
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [-1]:

id命令: 显示用户的真实和有效ID;
id [OPTION]… [USER]
-u: 仅显示有效的ID;
-g:仅显示用户的基本组ID;
-G:仅显示用户所属的所有组ID;
-n: 显示名字而非ID;

su命令: switch user切换用户
登陆式切换:会通过重新读取用户的配置文件来重新初始化;
su - USERNAME
su -l USERNAME
非登录式切换: 不会读取目标用户的环境配置文件进行初始化;
su USERNAME

注意:管理员可无密码切换至其它任何用户;其它用户在切换时必须输入目标用户的密码;
-c ‘COMMAND’: 仅以指定用户的身份运行此处指定的命令;

权限管理:
rwxrwxrwx:
左三位:定义user(owner)的权限;
中三位:定义group的权限;
右三位:定义other的权限;

权限:
r: readable,读
w:writable,写
x:excutable,执行

文件:
r: 可获取文件的数据内容;
w:可修改文件的数据;
x: 可将此文件运行为进程;

目录:
r: 可使用ls命令获取其下的所有文件列表;
w:可修改此目录下的文件列表, 即创建或删除文件;
x: 可cd到此目录中,且可使用ls -l来获取所有文件的详细属性信息;

mode: rwxrwxrwx
ownership: user, group

权限组合机制:
— 000 0
–x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

权限管理命令:
三类用户:
u:属主
g:属组
o:其它
a:所有

chmod [OPTION]… MODE[,MODE]… FILE…

MODE表示法:
赋权表示法:
u=
g=
o=
a=
chmod u=rwx, g=rw, o=r FILE
授权表示法:直接操作一类用户的一个权限侠:
u+,u-
g+,g-
o+,o-
a+,a-
chmod u+r, o+r FILE 或者chmod ug+r FILE

chmod [OPTION]… OCTAL-MODE FILE…
2. 八进制权限位:
chmod 660 FILE

chmod [OPTION]… --reference=RFILE FILE…
3. 引用参考权限:
chmod --reference=refile FILE (参考refile文件的权限,并授予FILE).

选项:
-R, --recursive: 递归修改 (在授权表示法中使用,其它方法不建议使用)

从属关系管理命令: chown, chgrp
chown命令:修改属主属组
chown [OPTION]… [OWNER][:[GROUP]] FILE…
chown [OPTION]… --reference=RFILE FILE…
选项:
-R, 递归修改

chgrp命令:修改属组(同chown)
注意:仅管理员可以使用;

umask: 文件的权限反向掩码,遮罩码:
文件:
666-umask
目录:
777-umask
注意:之所以文件用666去减,表示文件默认不能拥有执行权限,如果中有执行权限,则需要将其加1;
umask: 023
666-023=644
777-023=754
-----------------------------------
著作权归作者所有:来自51CTO博客作者笨大头张的原创作品,请联系作者获取转载授权,否则将追究法律责任
Linux基础之用户、组和权限管理
https://blog.51cto.com/chaozhs/2475002

Linux基础之用户、组和权限管理的更多相关文章

  1. (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理

    用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李 ...

  2. Linux基础入门-用户及文件权限管理

    一.Linux用户管理: 不同的用户的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于Linux的用户管理和权限机制,不同用户不能轻易查看.修改彼此的文件. 1. 查看用户: wh ...

  3. Linux基础学习(8)--权限管理

    第八章——权限管理 一.ACL权限 1.ACL权限简介与开启: (1)ACL权限简介: (2)查看分区ACL权限是否开启: (3)临时开启分区ACL权限: (4)永久开启分区ACL权限: 2.查看与设 ...

  4. Linux基础_3_文件/文件夹权限管理

    注:权限遮罩码: 控制用户创建文件和文件夹的默认安全设置,文件默认权限为666-umask的值,文件夹默认权限为777-umask的值. root默认0022,普通用户默认0002. 文件的默认权限不 ...

  5. Linux用户及文件权限管理

    Linux用户及文件权限管理

  6. 实验楼学习linux第一章第三节用户及文件权限管理

    用户及文件权限管理 常用命令 查看用户 whoami 创建用户 sudo adduser 用户名 切换账户 su 用户名 删除账户 sudo deluser 用户名 --remove-home 查看用 ...

  7. Linux分类笔记(一)-权限管理

    Linux分类笔记(一) 权限管理 普通权限 文件的普通权限 对一个普通的文件使用ls -ll命令后,看到下面的输出内容   而对于文件权限中的每一位,又分别代表了以下的意思 文件类型又有以下几类: ...

  8. Linux入门(用户操作及权限)

    Linux入门之 用户操作及权限   在一个公司里,老板与员工有上下级之分,员工与员工间也有上下级或同级之分.每个级别在公司的职责不同,权限也不同.在Linux操作系统中也一样,不同的用户身份拥有着不 ...

  9. Linux基础知识第六讲,远程管理ssh操作

    目录 Linux基础知识第六讲,远程管理ssh操作 一丶什么是SSH 1.什么是SSH 2.了解域名跟端口 二丶SSH命令以及远程连接linux进行维护 1.ssh命令格式 2.scp远程终端拷贝文件 ...

  10. MySQL数据库(6)_用户操作与权限管理、视图、存储过程、触发器、基本函数

    用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIE ...

随机推荐

  1. element-ui 对话框dialog里使用echarts,报错'dom没有获取到'?

    给el-dialog添加@open="open()" 在刚进入页面的时候对话框是关闭的,echarts不进行获取dom,当点击对话框出来的时候,有个opened事件,在这个事件里边 ...

  2. 把Mybatis Generator生成的代码加上想要的注释

    作者:王建乐 1 前言 在日常开发工作中,我们经常用Mybatis Generator根据表结构生成对应的实体类和Mapper文件.但是Mybatis Generator默认生成的代码中,注释并不是我 ...

  3. 6 STL-vector

    ​ 重新系统学习c++语言,并将学习过程中的知识在这里抄录.总结.沉淀.同时希望对刷到的朋友有所帮助,一起加油哦!  生命就像一朵花,要拼尽全力绽放!死磕自个儿,身心愉悦! 写在前面,本篇章主要介绍S ...

  4. 【大数据-课程】高途-天翼云侯圣文-Day1:互联网大数据揭秘(大数据介绍&MR实现双十一举牌)

    一.大厂职级 P7:年薪百万 二.大数据发展 1.职业路线和岗位角色 2.大数据行业发展 三.大数据的位置 1.热门行业 大数据承上启下 2.三者关系 啤酒和尿不湿:启发可以放在一块 3.大数据作用 ...

  5. 【实时数仓】Day02-DWD、DIM层数据准备:各层职能、行为日志DWD层、业务日志DWD层及分流(Phoenix和HBASE)

    一.需求分析及实现思路 1.分层需求 建立数仓目的:增加数据计算的复用性 可以从半成品继续加工而成 从kafka的ODS层(数据一开始就读到了kafka)读用户行为数据和业务数据,并写回到kafka的 ...

  6. 单一接口优化过程全记录(主要涉及Redis)

    接口优化过程记录 问题背景 某个接口耗时长(247ms),但里面逻辑不算复杂,只进行了简单的对象引用以及操作了多次Redis 步骤1:链路追踪,确定业务耗时点 接口里通过链路追踪以及日志查询发现主要是 ...

  7. 输出图形字符的命令 banner

    输出图形字符的命令 banner 有趣的 Linux 命令.来自实验楼操作系统课程 安装 sudo apt install sysvbanner 截图 其他 还有两个类似的命令toilet,figle ...

  8. .Net执行SQL/存储过程之易用轻量工具

    支持.Net/.Net Core/.Net Framework,可以部署在Docker, Windows, Linux, Mac. 由于该工具近来被广东省数个公司2B项目采用,且表现稳定,得到良好验证 ...

  9. 自研ORM框架实现工作单元模式

    平时我们使用事务,需要显示的Try Catch 并且开启事务 提交事务 异常回滚事务 三步骤,使用工作单元后则只需要Commit. 1.接口定义 1 /// <summary> 2 /// ...

  10. MassTransit | 基于StateMachine实现Saga编排式分布式事务

    什么是状态机 状态机作为一种程序开发范例,在实际的应用开发中有很多的应用场景,其中.NET 中的async/await 的核心底层实现就是基于状态机机制.状态机分为两种:有限状态机和无限状态机,本文介 ...