Linux 用户组权限讲解
用户分类
- 用户分类
- 管理员 ID 0
- 普通用户 ID 1-65535
- 系统用户 ID centos7:1-999 centos6: 1-499
- 登入用户 ID centos7:1000-60000 centos6 500-60000
- 用户信息表 /etc/passwd
组
- 组
- 管理员组 gid 0
- 普通用户组 gid 1-65535
- 系统用户组:gid 1-499(CentOS6), 1-999(CentOS7)
- 登录用户组:gid 500-60000(CentOS6), 1000-60000(CentOS7)
- 组信息表 /etc/group
认证信息
- 认证信息
- 通过比对事先存储的,与登录时提供的信息是否一致;
- password:
- /etc/shadow
- /etc/gshadow
- 加密算法:
- 对称加密:加密和解密使用同一个密钥;
- 非对称加密:加密和解密使用的一对儿密钥; 比对称大概慢3倍
- 密钥对儿:
- 公钥:public key 加密
- 私钥: private key 解密
- 密钥对儿:
- 单向加密:只能加密,不能解密;提取数据特征码; 比如md5
- 定长输出: 比如md5 32位十六进制
- 雪崩效应: 改变一点,面目全非
- 算法:
- md5: message digest, 128bits 2**128
- sha , 160bits
- sha224
- sha256
- sha384
- sha512
/etc/passwd 用户列表介绍
获取帮助
[root@localhost ~]# whatis passwd
sslpasswd (1ssl) - compute password hashes
passwd (1) - update user's authentication tokens[root@localhost ~]# man 1 passwd
字段解释:
name | password | UID | GID | GECOS | directory | shell |
---|---|---|---|---|---|---|
用户名 | 可以是加密的密码,也可是占位符x; | UID | 用户所属的主组的ID号; | 注释信息 | 用户的家目录 | 用户的默认shell,登录时默认shell程序; |
marvin | x | 1000 | 1000 | marvin | /home/marvin | /bin/bash |
/etc/shadow 用户账号信息介绍
获取帮助:
[root@localhost ~]# whatis shadow
shadow (3) - 加密密码文件工具函数
shadow (5) - 影子化了的密码文件
字段解释及设置:
用户名 | 加密的密码 | 最近一次修改密码的时间 | 最短使用期限 | 最长使用期限 | 警告期段 | 过期期限 | 绝对过期期限 |
---|---|---|---|---|---|---|---|
marvin | $6$BO6gfCBNbXupeuqH$maRP57l/Uidh ... | 17639 | 0 | 99999 | 7 | 10 | -- |
marvin | 按照$分割,第一段表示加密方式6:sha512,第二段是salt,第三段是加密数据 | 17639 (从1970到上次改密码天数) 0:表示必需修改密码,空表示功能不被启用 | 至少使用多少天才能再次修改密码 | 从最近一次修改时间+最长使用天数 | 提前7天警告 | 修改密码时间+99999+10天后还没修改,账号锁定不能登入,只能改密码 | 过期时间 |
- | - | passwd -e zander | passwd -n 6 zander | passwd -x 24 zander | passwd -w 29 zander | passwd -i 19 zander | useradd -e 2018-04-25 zander |
- | - | chage -d 1 zander | chage -m 10 zander | chage -M 100 zander | chage -W 100 zander | chage -I 0 zander | chage -E 2018-04-25 zander |
/etc/group 用户组介绍
group_name | password | GID | user_list |
---|---|---|---|
marvin | x /etc/gshadow | 1000 | marvin 该组的用户成员;以此组为附加组的用户的用户列表 |
管理命令介绍
groupadd
添加组:
[root@localhost ~]# groupadd mygrp1
添加指定组:
[root@localhost ~]# groupadd -g 1009 mygrp5
添加系统组:
[root@localhost ~]# groupadd -r mygrp6
[root@localhost ~]# groupadd -r mygrp7
mygrp6:x:996:
mygrp7:x:995:
添加系统指定组:
[root@localhost ~]# groupadd -r -g 993 mygrp8
mygrp8:x:993:[root@localhost ~]# groupadd -r -g 13 mygrp10
[root@localhost ~]# groupadd -r mygrp11
mygrp10:x:13:
mygrp11:x:991:
修改组:
[root@localhost ~]# groupmod -g 1011 mygrp11
[root@localhost ~]# groupmod -n mygrp12 mygrp11
删除组:
[root@localhost ~]# groupdel mygrp9
useradd
常见选项说明:
-u, --uid UID:指定UID;
-g, --gid GROUP:指定基本组ID,此组得事先存在;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;
-c, --comment COMMENT:指明注释信息;
-d, --home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;
-s, --shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;
-r, --system:创建系统用户;
-m 创建家目录,一般自动创建 如果没有此选项和没开启CREATE_HOUME,那么家目录不会创建
-M 不创建家目录
默认创建用户会添加一个私有组
[root@localhost ~]# useradd zanderzander:x:1001:1002::/home/zander:/bin/bash
zander:!!:17640:0:99999:7::: #密码
zander:x:1002: #组
指定组:组必须存在
[root@localhost ~]# useradd -g 1001 zander1
添加注释
[root@localhost ~]# useradd -c 'for test' zander2
zander2:x:1003:1003:for test:/home/zander2:/bin/bash
添加附加组
[root@localhost ~]# useradd -g 1001 -G 1002,1003 zander3
[root@localhost ~]# useradd -g 1001 -G 1002,1003 zander34zander3:x:1004:1001::/home/zander3:/bin/bashmygrp:x:1001:
zander:x:1002:zander3,zander34 组名:x:id:附加成员
zander2:x:1003:zander3,zander34
指定家目录
[root@localhost ~]# useradd -d /tmp/zander4 znader4
[root@localhost ~]# cat /tmp/zander4/.bash
.bash_logout .bash_profile .bashrc
指定shell
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash #登入用户
/sbin/nologin #不能登入
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin[root@localhost ~]# useradd -s /usr/sbin/nologin zander5marvindeMacBook-Pro:~ marvin$ ssh zander5@192.168.1.102
zander5@192.168.1.102's password:
This account is currently not available.
Connection to 192.168.1.102 closed.
创建系统用户( 不会创建家目录)
[root@localhost ~]# useradd -r zander6
zander6:x:998:996::/home/zander6:/bin/bash
不创建家目录
[root@localhost ~]# useradd -M zander7marvindeMacBook-Pro:~ marvin$ ssh zander7@192.168.1.102
zander7@192.168.1.102's password:
Could not chdir to home directory /home/zander7: No such file or directory
-bash-4.2$
设置密码过期期限 不设置永久不过期
[root@localhost ~]# useradd -f 8 zander9
zander9:!!:17640:0:99999:7:8::
设置绝对过期时间
[root@localhost ~]# useradd -e 2018-01-20 zander14
usermod
常见选项说明:
-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:解锁用户的密码;
修改家目录
[root@localhost test]# usermod -d /home/test/3 -m zander11
锁定
[root@localhost test]# usermod -L zander17
解锁
[root@localhost test]# usermod -U zander17
更改附加组
[root@localhost test]# usermod -G 1016 zander17
追加附加组
root@localhost test]# usermod -a -G 1016 zander17
[root@localhost test]# id zander17
uid=1016(zander17) gid=1016(zander17) groups=1016(zander17),1015(zander15)
userdel
删除常用选项r 删除家目录
[root@localhost test]# userdel -r zander17
userdel: user zander17 is currently used by process 70106
文件和文件夹权限说明
- 文件:
- r:可获取文件的数据;
- w: 可修改文件的数据;
- x:可将此文件运行为进程;
- 目录:
- r:可使用ls命令获取其下的所有文件列表;
- w: 可修改此目录下的文件列表;即创建或删除文件;
- x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息;
说说附加组在文件文件夹中意义
gpasswd 设置附加组密码 如果附加组没有密码,则不在附加组中的用户无法切换到附加组上
[root@localhost ~]# gpasswd marvin
Changing the password for group marvin
New Password:
Re-enter new password:
普通用户删除在附加组目录下的root文件
[root@localhost tmp]# pwd
/tmp
#test 目录组属于zander用户
[root@localhost tmp]# ll -d test
drwxrwxr-x. 2 root zander 6 Apr 21 15:48 test[root@localhost tmp]# cd test/
#创建一个root的文件
[root@localhost test]# touch a
[root@localhost test]# ll
-rw-r--r--. 1 root root 0 Apr 21 15:50 a#切换到marvin用户
[marvin@localhost test]$ id
uid=1000(marvin) gid=1000(marvin) 组=1000(marvin)
[marvin@localhost test]$ echo 888 >> a
-bash: a: 权限不够[marvin@localhost test]$ rm a
rm:是否删除有写保护的普通空文件 "a"?y
rm: 无法删除"a": 权限不够#切换到zander组
[marvin@localhost test]$ newgrp zander
密码:
[marvin@localhost test]$ id
uid=1000(marvin) gid=1006(zander) 组=1006(zander),1000(marvin)[marvin@localhost test]$ echo 888 >> a
bash: a: 权限不够#删除成功
[marvin@localhost test]$ rm a
rm:是否删除有写保护的普通空文件 "a"?y
[marvin@localhost test]$ ls
[marvin@localhost test]$
转载于:https://blog.51cto.com/marvin89/2105500
Linux 用户组权限讲解相关推荐
- linux组权限管理,linux 用户组权限管理(示例代码)
权限管理作为在学linux的人来说,觉得无所为事.如何来保障个人的隐私以及个人工作环境,你学完这个之后你就觉得权限是多么多么的重要. #ls -l 1.sh - rw-r--r-- 1 root ro ...
- 【Linux】权限讲解
一.什么是权限 1.权限概念 权限随处可见,在生活中,腾讯非VIP用户不能观看VIP视频,看小说也需要会员,所以权限是限制人的,一件事是否允许被谁做.在Linux系统中也有许多权限,访问文件需要权限, ...
- Linux用户和组:linux用户和组及权限讲解
linux用户和组及权限讲解 Linux用户和组概念精讲 Linux用户和组实战应用 Linux系统用户权限管理 Linux用户和组概念精讲 Linux是一种多用户的操作系统(服务器系统),允许多个用 ...
- Linux学习命令汇总三——Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式...
本章Blog相关Linux知识点 解析:在数据库按搜索码查找相对应的条目,并找与之对应额外的其他数据库的过程:名称解析:UID ,组名解析:GID 数据库:文本文件,sql数据库,ldap数据库,用户 ...
- linux怎么让某一个组对一文件可读可写,设置linux文件权限,使得同一用户组的可以对一个文件自由修改...
新添用户,设置权限 新增用户的时候设置用户所属组,将想要一起的用户设置到一个组内 usermod -g 用户组 用户名 #这里将用户的主组设置为这个总组,这里为了再之后创建文件的时候文件所属组为这个组 ...
- linux用户组和权限分配
可以利用linux用户组和权限分配来实现. linux下面的权限是这样表示的(通过ls -ltr 可列出):d|rwx|rwx|rwx第一个d 表示是一个目录,后面的三段分别表示:第一段 是指 own ...
- Linux学习 day05之用户组权限管理
用户组权限管理 一 Linux用户介绍 什么是用户? 为何要有用户?或者说我们为何要哦创建用户? 如何查看用户相关信息 linux系统中用户角色划分 超级用户 扩展阅读 二 用户与组相关文件 和用户. ...
- SRE运维工程师笔记-Linux用户组和权限管理
SRE运维工程师笔记-Linux用户组和权限管理 用户.组和权限 内容概述 1. Linux安全模型 1.1 用户 1.2 用户组 1.3 用户和组的关系 1.4 安全上下文 2. 用户和组的配置文件 ...
- linux如何改文件用户组权限,linux修改文件权限和用户组管理小结
如何在linux下修改组权限 chmod g+r path/file 加读权限 当前目录 chmod -R g+r path/file 加读权限 当前目录以及子目录 g-r 减读权限 g+w 加写权限 ...
最新文章
- hashCode与equals的区别与联系
- javascript 自定义类型
- 4位先行进位加法器_行波进位/超前进位加法器详解
- WordPress架构简单剖析
- Hibernate多对多映射 - 连接表
- Python使用模糊哈希值比较文件相似度
- html select 样式t调整_用纯css改变下拉列表select框的默认样式
- python从入门到放弃图片-Python从入门到放弃:与用户交互
- Java他们其中一个IO(一)
- 数据库__配置ODBC及附加数据库的方法
- 中国最好的论坛(未分类版)
- P2P终结者 操作用法(如何限速)
- 福昕PDF阅读器 Foxit PDF Reader 中文绿色版
- Slideout.js+YDUI Touch+mescroll
- WebView加载网页不显示图片解决办法
- 每日一题【56】导数-公切线问题
- 万花筒写轮眼画法_万花筒写轮眼怎么画?
- 数据类型在内存中的存储原理
- 安防工程管理和运维对系统效能重要性
- 2022.02.10_Java学习总结_新特性