本节的关键是查看、修改用户权限。
在一开始,我先介绍一下权限号怎么理解,再进入到本期的命令学习。
首先,用命令ls -l查看当前目录下的文件/文件夹权限:

假设看到下列内容:

-rw-rw-r--. 1 root DeptIS 19 Nov  9 15:15 readme.sie
drw-r----x. 2 root root    6 Nov  9 15:21 test1

请关注到每行开头的那一大串:
首先,第一个字母是表示文件类型的(这个在linux学习笔记(2)有提到过),如第一行“-”开头表示是文件,第二行“d”开头表示是目录文件(文件夹)。

接下来,首字母后的剩下一大串就是权限了:
将其以3个字符为单位进行划分,可以分成3组,分别作为所有者(user)、用户组(group)、其他人(others)的权限。

r:可读(设置权限时用数字4表示)
w:可写(数字2)
x:可执行(数字1)
-:无相关权限

eg1:rw-rw-r--
可以分成rw-、rw-、r–:表示user可读可写,group可读可写,其他人可读

eg2:rw-r----x
可以分成rw-、r–、--x:表示user可读可写,group可读,其他人可执行

那么,上面说的设置权限时,用4表示r,用2表示w,用1表示x是怎么回事呢?
先需要知道,我们可以用类似于下面这样的命令设置文件的权限:

[root@localhost pub]# chmod 640 readme.ito

看到这个命令中的数字640了吗?它表示了user、group和others的权限。

user的权限 = 6 = 4+2 ——可读可写
group的权限 = 4 ——可读
others的权限 = 0 ——没有任何权限

发现了吗?其实就是把这个三位数拆分成三位,然后用4、2、0做加法,得出各自的权限是多少就ok啦。

好啦,进入正题,下面是本次的练习题。

==========================================================

(1)启动计算机,使用自己创建的用户登录系统。

(2)使用su - root命令切换到root用户。

su

(3)使用cat /etc/passwd命令查看当前系统用户的信息

[root@localhost ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin……(此处省略若干行)chrony:x:998:996::/var/lib/chrony:/sbin/nologin
helen:x:1000:1000::/home/helen:/bin/bash
a:x:1001:1001::/home/a:/bin/bash
b:x:1002:1002::/home/b:/bin/bash

(4)使用grep hx /etc/passwd命令确认系统中是否已有hx用户。查询结果显示不存在这个用户,因此使用useradd hx命令创建了这个新用户,并使用passwd hx为其设置初始密码123456。

//查询一个不存在的用户hx:什么都不会显示
[root@localhost ~]# grep hx /etc/passwd//查询一个存在的用户helen
[root@localhost ~]# grep helen /etc/passwd
helen:x:1000:1000::/home/helen:/bin/bash
[root@localhost ~]# useradd hx
[root@localhost ~]# passwd hx

(5)使用命令将hx用户加入到信息安全系用户组中。

//新建信息安全系组DeptIS
[root@localhost ~]# groupadd DeptIS//将hx用户加入到信息安全系用户组中
[root@localhost ~]# usermod -g DeptIS hx//查看用户hx在哪个组
[root@localhost ~]# groups hx
hx : DeptIS

(6)切换到/ito/pub目录,新建示例文件readme.ito。/ito/pub目录中保存的是软件学院的公共文件,本学院的所有老师都能读取文件的内容,但只有系统管理员华老师本人可以修改文件。另外,其他学院的老师无法读取文件内容。

//创建路径、文件
[root@localhost ~]# mkdir ito
[root@localhost ~]# cd ito
[root@localhost ito]# mkdir pub
[root@localhost ito]# cd pub
[root@localhost pub]# ls -l
total 0
[root@localhost pub]# touch readme.ito

**【分析】**所有老师都能读取文件的内容,但是只有华老师本人(用户hx)才能修改文件
——同组成员(group,本学院的所有老师)只有读取权限,而所有者(user,系统管理员)有读取、修改的权限

//查看文件原来的权限
[root@localhost pub]# ls -l readme.ito
-rw-r--r--. 1 root root 0 Nov  9 14:02 readme.ito//新建用户组:软件学院InstillSoftware
[root@localhost pub]# groupadd InstSoftware//将hx加入到用户组InstSoftware。如果不需要留在原来的用户组,则可以直接使用 -g 选项:usermod -g InstSoftware hx
[root@localhost pub]# usermod -a -G InstSoftware hx
[root@localhost pub]# id hx
uid=1003(hx) gid=1004(DeptIS) groups=1004(DeptIS),1006(InstSoftware)//将文件readme.ito的所有者改为hx
[root@localhost pub]# chown hx readme.ito
[root@localhost pub]# ls -l
total 0
-rw-r--r--. 1 hx root 0 Nov  9 14:16 readme.ito//将文件的readmen.ito的所属用户组改为InstSoftware
[root@localhost pub]# chgrp InstSoftware readme.ito
[root@localhost pub]# ls -l
total 0
-rw-r--r--. 1 hx InstSoftware 0 Nov  9 14:16 readme.ito//修改文件的权限
[root@localhost pub]# chmod 640 readme.ito//查看当前的用户权限,发现:所有者有读写权限,用户组有读权限,其他人没有任何权限
[root@localhost pub]# ls -l readme.ito
-rw-r-----. 1 root root 0 Nov  9 14:02 readme.ito

检验一下:

//创建一个用户teacher
[root@localhost pub]# useradd teacher
[root@localhost pub]# passwd teacher
[root@localhost pub]# su teacher//此时,用户teacher还不在用户组InstSoftware中,所以不能读取
[teacher@localhost pub]$ cat readme.ito
cat: readme.ito: Permission denied//将用户teacher加入用户组InstSoftware
[teacher@localhost pub]$ su
[root@localhost pub]# usermod -a -G InstSoftware teacher
[root@localhost pub]# su teacher[teacher@localhost pub]$ id teacher
uid=1005(teacher) gid=1007(teacher) groups=1007(teacher),1006(InstSoftware)//现在,用户teacher可以读readme.ito文件了
[teacher@localhost pub]$ cat readme.ito//但用户teacher不可以写readme.ito文件
[teacher@localhost pub]$ echo 'test by teacher' > readme.ito
bash: readme.ito: Permission denied

(7)使用su – hx命令切换到hx用户。使用vim打开readme.ito文件,可以正常打开,但尝试修改时提示只有读权限。使用exit命令退出hx用户,返回root用户。

(老师给的这道题也真是迷……前面明明已经给hx用户加了读写权限了?所以本题我用只有读权限的用户teacher实现了)

vi:打开vim文本编辑器

[teacher@localhost pub]$ vi readme.ito

可以进入vim编辑器的页面(如下图),但如果按下i(想进入insert模式进行修改时),则会弹出只可读的Warning(如下图)。如果还试图强行更改,则会报错。
 

(8)切换到/ito/sie/pub目录,新建示例文件readme.sie。/ito/sie/pub目录中保存的是信息安全系的公共文件,本系的所有老师都可以读写这些文件,而其他系的老师只能读取文件内容。

[root@localhost ~]# cd ito
[root@localhost ito]# mkdir sie
[root@localhost ito]# cd sie
[root@localhost sie]# mkdir pub
[root@localhost sie]# cd pub[root@localhost pub]# touch readme.sie[root@localhost pub]# chgrp DeptIS readme.sie[root@localhost pub]# chmod 664 readme.sie
[root@localhost pub]# ls -l
total 0
-rw-rw-r--. 1 root DeptIS 0 Nov  9 14:59 readme.sie

(9)分别切换到hx和自己创建的用户用户,并尝试对readme.sie进行读和写操作。

//新建一个用户组DeptSE(软件安全系)
[root@localhost pub]# groupadd DeptSE//新建用户teacher1,并将其加入到软件安全系
[root@localhost pub]# useradd teacher1
[root@localhost pub]# usermod -a -G DeptSE teacher1

(后面的验证过程和结果就不赘述了)

(10)分别在/ito/pub和/ito/sie/pub两个目录中建立一个子目录,并对其进行不同权限的设置,使用不同的用户进行验证,加深对普通文件和目录权限管理的理解。

具体实现就不赘述了,按上面九题涉及的知识点就可以实现。

核心是修改权限。
不管是修改文件权限,还是文件夹权限,本命令都适用:chmod [权限号] [文件名/文件夹名]

//举个栗子
[root@localhost pub]# chmod 640 readme.ito

Linux学习笔记(3)基本命令Part3——用户和组管理相关推荐

  1. linux 用户加入次要群组,linux学习笔记之 帐号和群组管理

    /etc/passwd    用户名:用户密码:UID:GID:说明:家目录:使用的shell 1. 账号名称: 就是账号啦!用来对应 UID 的.例如 root 的 UID 对应就是 0 (第三字段 ...

  2. 【Linux学习笔记22】mysql数据库的基本管理

    文章目录 1. 数据库的介绍 2. 安装mysql并启用 3. 软件基本信息 4. 数据库的安全初始化 4.1 关闭数据库开放端口 4.2 执行安全初始化脚本 5. 数据库基本管理 5.1 数据库查看 ...

  3. Linux学习笔记004----CentOS7 提升普通用户权限到Root权限

    打开终端 输入 sudo -i 然后输入当前用户的密码: 或者打开终端输入 su root 然后输入root用户密码: 这两种方式都能获取root权限. 或者用root用户登陆系统. root用户只能 ...

  4. linux让指定文件具有sudo的权限,Linux学习笔记——使用指定的用户权限执行程序——sudo...

    sudo可以用来以其他用户身份执行命令,sudo命令可以针对单个命令授予临时权限.sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性. 1:sudo的帮助信息如下: [emai ...

  5. Linux学习笔记重新梳理20180702 之 yum软件包管理器

    2019独角兽企业重金招聘Python工程师标准>>> Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中 ...

  6. Linux学习笔记(二)(Vim文本编辑器 权限管理(用户,用户组) 系统相关(磁盘,进程))

    Linux学习笔记(二) 5.账号管理 概述 一.用户账号管理 概述 1. 添加账号 :useradd(`useradd 选项 用户名`) 2. 删除帐号(`userdel 选项 用户名`) 3. 修 ...

  7. Linux 学习笔记2 常用命令

    Linux 学习笔记1 安装linux详细教程_O丶ne丨柒夜的博客-CSDN博客 Linux_目录结构 基本介绍 1.liux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录&quo ...

  8. I.MX6ULL ARM Linux学习笔记

    I.MX6ULL ARM Linux学习笔记 写在前面 S1:U-Boot S2:正点原子U-Boot编译 S3:U-Boot基本命令第1讲:help.bdinfo和环境变量命令 S4:U-Boot基 ...

  9. linux学习笔记2.0

    ilinux学习笔记 Linux哲学思想 一切都是一个文件(包括硬件) **小型,单一用途的程序 ** **链接程序,共同完成复杂的任务 ** **避免令人困惑的用户界面 ** 配置数据存储在文本中 ...

最新文章

  1. matlab arr3(5 end),matlab复习笔记.doc
  2. Day16 os模块、time模块、random模、math模块
  3. P1207 双重回文数
  4. main函数解析(一)——Linux-0.11 学习笔记(五)
  5. java epoll select_春招|Java开发实习面经(口头offer),感谢快手给我这个双非一次机会!...
  6. [转]详细讲解提高数据库查询效率的实用方法、外键关于性能
  7. 为什么要使用 Kubernetes 准入控制器
  8. java 观察者模式_重学 Java 设计模式:实战观察者模式「模拟类似小客车指标摇号过程,监听消息通知用户中签场景」...
  9. Qt字符串转日期时间-毫秒
  10. php5.5开发环境配置,windows下配置php5.5开发环境及开发扩展
  11. Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
  12. git配置取消代理_「高手」如何优雅的解决 git 超时
  13. 使用opencv-python画OpenCV LOGO
  14. Apache自带的ab压力测试工具
  15. ISO 639-1語言列表
  16. wifi分析仪怎么看哪个信道好_一定得学的切换WiFi信道技巧,让你的网速如飞!...
  17. 微信小程序获取云数据库数据并对其进行排序
  18. [整理]VS2010中文版配置opencv2.4.8
  19. bzoj 3653 [湖南集训]谈笑风生
  20. 关于商品详情页接口流程编排框架的一点实践

热门文章

  1. Latex 左右引号
  2. SpringBoot+Vue项目小区疫苗接种管理系统的设计与实现
  3. 【网页设计】第 2 课 - 网页设计规范
  4. 门户网站java源码vue_vuetify-master
  5. 5.VUE简单的组件间传值【父组件向子组件传值;子组件向父组件传值】
  6. ENVI/ArcGIS中不规则区域裁剪后背景值的设定
  7. 计算机视觉技术在现代社会中的应用
  8. unity 加载关卡_unity中加载新关卡函数简单用法
  9. 【C 程序设计】C语言三大结构之选择结构
  10. OpenCV实现简单的车牌检测、特征点线检测