Linux基础之用户、组和权限管理
用户类别分为:普通用户、系统用户、登陆用户
用户标识: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基础之用户、组和权限管理的更多相关文章
- (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理
用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李 ...
- Linux基础入门-用户及文件权限管理
一.Linux用户管理: 不同的用户的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于Linux的用户管理和权限机制,不同用户不能轻易查看.修改彼此的文件. 1. 查看用户: wh ...
- Linux基础学习(8)--权限管理
第八章——权限管理 一.ACL权限 1.ACL权限简介与开启: (1)ACL权限简介: (2)查看分区ACL权限是否开启: (3)临时开启分区ACL权限: (4)永久开启分区ACL权限: 2.查看与设 ...
- Linux基础_3_文件/文件夹权限管理
注:权限遮罩码: 控制用户创建文件和文件夹的默认安全设置,文件默认权限为666-umask的值,文件夹默认权限为777-umask的值. root默认0022,普通用户默认0002. 文件的默认权限不 ...
- Linux用户及文件权限管理
Linux用户及文件权限管理
- 实验楼学习linux第一章第三节用户及文件权限管理
用户及文件权限管理 常用命令 查看用户 whoami 创建用户 sudo adduser 用户名 切换账户 su 用户名 删除账户 sudo deluser 用户名 --remove-home 查看用 ...
- Linux分类笔记(一)-权限管理
Linux分类笔记(一) 权限管理 普通权限 文件的普通权限 对一个普通的文件使用ls -ll命令后,看到下面的输出内容 而对于文件权限中的每一位,又分别代表了以下的意思 文件类型又有以下几类: ...
- Linux入门(用户操作及权限)
Linux入门之 用户操作及权限 在一个公司里,老板与员工有上下级之分,员工与员工间也有上下级或同级之分.每个级别在公司的职责不同,权限也不同.在Linux操作系统中也一样,不同的用户身份拥有着不 ...
- Linux基础知识第六讲,远程管理ssh操作
目录 Linux基础知识第六讲,远程管理ssh操作 一丶什么是SSH 1.什么是SSH 2.了解域名跟端口 二丶SSH命令以及远程连接linux进行维护 1.ssh命令格式 2.scp远程终端拷贝文件 ...
- MySQL数据库(6)_用户操作与权限管理、视图、存储过程、触发器、基本函数
用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIE ...
随机推荐
- Linux中如何开启一个定时任务
Linux的定时任务是基于cron驱动做到的 安装 Ubantu系统下安装crontab 正常情况下需要先执行:apt-get upgrade 进行升级 安装:apt-get install cron ...
- i春秋Musee de X
打开提示我们如果要操作就需要登录 题目也没有给出tips提示 /tmp/memes/wosun 注册成功后提示我们我们的文件被储存在了.....可能这道题会用到一句话木马,毕竟他目录都给我们了 然后去 ...
- 关于linux上steamplay无法启动windows游戏
前言 很多游戏,deepin-wine做的兼容性不如steamplay linux上steamplay加载windows游戏 点击添加游戏---------添加非steam游戏 点击浏览 改为all ...
- day10 集合——队列(Queue)、Vector & Map集合常用方法 & HashMap的实现原理&二叉树&二叉查找树AVL树&红黑树
集合--List 栈先进后出 队列 先进先出 Queue队列 方法 Queue<Integer> q = new LinkedList<>(); //添加元素 q.add(2) ...
- 【微服务架构设计实施】第一部分:架构篇-1:微服务架构与Spring Cloud介绍
〇.概述 一.微服务架构与Spring Cloud (一)概念 不同说法:细粒度的.清凉组件化的小型SOA(面向服务架构) 统一说法:小型应用程序(服务组件),使用轻量级设计方法和HTTP协议通信 理 ...
- 18V转5V,15V转5V的LDO和DC芯片方案
18V 转 5V, 15V 转 5V 的 LDO:芯片的选择,特别是输入电压,在低电平 5V 以下的,基本上都是接近也可以.但是 5V 以上,如现在的 18V 和 15 的话,就不一样了.我们需要在选 ...
- Qt VideoMeeting_Intercom师生对讲开发中实际上遇到的一些问题,终于结项了,也照例写一下总结吧。
layout: post title: Qt VideoMeeting_Intercom师生对讲开发中实际上遇到的一些问题,终于结项了,也照例写一下总结吧. description: 软件开发,初次开 ...
- STM32外部中断(EXTI)控制LED亮灭的代码
led.c #include "led.h" void LED_Config(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2P ...
- IIS服务没有Windows身份验证
解决方法: 1.打开 C:\Windows\servicing\Packages,查找文件Microsoft-Windows-IIS-WebServer-AddOn-2-Package~31bf385 ...
- 【运维笔录】局域网实现项目的CI/CD,Docker+Gitea+Drone搭建轻量级自动化部署平台
一.安装Docker 1.1 安装excpet $ apt-get -f install expect 1.2 编写执行Docker安装脚本 编写docker_dep.exp脚本 #!/usr/bin ...