第三节 用户及文件权限管理

3-1.Linux用户管理

Linux 是一个可以实现多用户登陆的操作系统,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的用户管理权限机制,不同用户不可以轻易地查看、修改彼此的文件。

  • 1.查看用户

    输入命令:

    $ who am i
或者
$ who mom likes

运行效果:



输出的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可);第二列的 pts/0 中 pts 表示伪终端;第三列则表示当前伪终端的启动时间。

who命令其它常用参数

  • 2.创建用户

    在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。

root 权限,系统权限的一种,与 SYSTEM 权限可以理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作,所以很多黑客在入侵系统的时候,都要把权限提升到 root 权限,用 Windows 的方法理解也就是将自己的非法帐户添加到 Administrators 用户组。更比如安卓操作系统中(基于 Linux 内核)获得 root 权限之后就意味着已经获得了手机的最高权限,这时候你可以对手机中的任何文件(包括系统文件)执行所有增、删、改、查的操作。

   我们一般登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo 这个命令了。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo 用户组。shiyanlou 用户也属于 sudo 用户组(稍后会介绍如何查看和添加用户组)。

su,su-与sudo

* su user 可以切换到用户user,执行时需要输入目标用户的密码。
*  sudo cmd 可以以**特权级别**运行cmd命令,需要当前用户属于sudo组,且需要输入当前用户密码。
*  su - user 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。
   `$ sudo adduser lilei`会新建一个叫 lilei 的用户,实验楼的环境目前设置为 shiyanlou 用户执行 sudo 不需要输入密码,通常此处需要按照提示输入 shiyanlou 密码(**Linux 下密码输入是不显示任何内容的**)。然后是给 lilei 用户设置密码,后面的选项的一些内容你可以选择直接回车使用默认值。现在你已经创建好一个用户,并且你可以使用你创建的用户登录了,使用命令`$ su -l lilei`(莫名多出个l,试了下不加l的,也可以正常切换,稍微查了下,[linux中用户转换问题](http://www.cnblogs.com/growup/archive/2010/07/12/1971542.html),大概都可以吧)切换登录用户。输入刚刚设置的 lilei 的密码,注意:**Linux 下密码输入是不显示任何内容的**。退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d。
  • 3.用户组

    用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,一个用户可以属于多个用户组。新建用户时如果没有指定用户组的话,默认会自动创建一个与用户名相同的用户组。默认情况下在sudo用户组里的可以使用sudo命令获得root权限

查找所属用户组

* ##### 方法一:使用groups命令

输入$ groups user就会输出 user : user所属用户组。

* ##### 方法二:查看/etc/group文件

$ cat /etc/group | sort中cat 命令用于读取指定文件的内容并打印到终端输出,后面会详细讲它的使用。 | sort 表示将读取的文本进行一个字典排序再输出,然后你将看到如下一堆输出,你可以在最下面看到 shiyanlou 的用户组信息。$ cat /etc/group | grep -E "shiyanlou"linux grep命令详解,不明觉厉)可以过滤掉一些你不想看到的结果:



etc/group 文件格式说明

/etc/group 的内容包括用户组(Group)、用户组口令、GID (GroupId,即组ID,用来标识用户组的唯一标识符。类似的还有UID,即UserID,root用户的是0,UID为0的用户被系统约定为是具有超级权限,而且只有root对应的UID为0)及该用户组所包含的用户(User),每个用户组一条记录。格式如下:

group_name:password:GID:user_list

    你看到上面的 password 字段为一个 'x' 并不是说密码就是它,只是表示密码不可见而已。
#### 将其它用户加入 sudo 用户组

使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。

    $ su shiyanlou # 此处需要输入shiyanlou用户密码,可以点击右侧工具栏中的“SSH直连”查看
$ sudo usermod -G sudo lilei
然后你再切换回 lilei 用户,现在就可以使用 sudo 获取 root 权限了(使用 `sudo <cmd>`以特权级别运行cmd命令)。
  • 4.删除用户

删除用户是很简单的事:

    $ sudo deluser lilei --remove-home

3-2.Linux文件权限

  • 1.查看文件权限

    我们可以用ls命令来列出并显示当前目录下的文件(不包括隐藏文件),当然这是在不加任何参数的情况下,比如加上参数-l(使用较长格式输出文件)就可以用来查看文件权限,下面分析输出的内容:

    从第一项文件类型和权限开始一一道来:

* #### 文件类型

Linux 里面一切皆文件,正因为这一点才有了设备文件( /dev 目录下有各种设备文件,大都跟具体的硬件设备相关)这一说,还有 socket(网络套接字,不明觉厉),和 pipe (管道,说是很重要,先记住有这么个东西)。硬链接不常用,不作为本课程讨论重点,而软链接等同于 Windows 上的快捷方式。

* #### 文件权限

读权限,表示你可以使用 cat <file name> 之类的命令来读取某个文件的内容;写权限,表示你可以编辑和修改某个文件; 执行权限,通常指可以运行的二进制程序文件或者脚本文件,如同 Windows 上的 'exe' 后缀的文件,不过 Linux 上不是通过文件后缀名来区分文件的类型。一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息 。

* #### 链接数

链接到该文件所在的inode 结点(不明觉厉)的文件名数目。

* #### 文件大小

以 inode 结点大小为单位来表示的文件大小,你可以给 ls 加上 -lh 参数来更直观的查看文件的大小。

**补充:ls 命令的一些其它常用参数**
* -A 显示除 “.”和“..”外的所有文件。
* -d 将目录象文件一样显示,而不是显示其下的文件。
* -S 以文件大小排序。
* -s 在每个文件名后输出该文件的大小。
* -h 显示文件大小时增加可读性 (例:1K 234M 2G)。
  • 2.变更文件所有者

在shell中,要修改文件当前的用户必须具有管理员root的权限。可以通过su命令切换到root用户,也可以通过sudo获得root的权限,然后使用chown(change owner)命令来改变文件所有者。chown命令的用途很多,还可以顺便直接修改用户组的名称(或类似的chgrp命令)。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。

基本语法:

chown [-R] 账号名称 文件或目录

chown [-R] 账号名称:用户组名称 文件或目录

  • 3.修改文件权限

* #### 方式一:二进制数字表示

每个文件的三组权限(拥有者,所属用户组,其他用户,顺序是一定的)分别对应一个 "rwx",按照“有这个权限则这一位就为一”映射成三位二进制(如7即为rwx)。用命令$ chmod 700 filename,即可让所有者之外的用户无法对该文件进行操作。

* #### 方式二:加减赋值操作

完成上述相同的效果,可以使用命令$ chmod go-rw filename,其中'g'、'o'、'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。

随堂作业

添加一个用户loutest,使用sudo创建文件/opt/forloutest,设置成用户loutest可以读写。提示: 如何创建一个文件呢?可以考虑 touch 命令,这个命令可以创建一个空文件。

实验报告



实际上没有很懂,比如所有者怎么是root。

写在后面

来自实验楼新手教程:Linux基础入门

Linux基础入门 - 2的更多相关文章

  1. Linux 基础入门(新版)”实验报告一~十二

    实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...

  2. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  3. Linux 基础入门 第二周9.21~9.27

    一.学习内容 本周主要学习内容主要贴合: 在进行<深入理解计算机系统>这门课的实验中没有遇到什么大问题,学习内容与上周实验<linux基础入门>有相似之处.本实验中的内容比较贴 ...

  4. Linux 基础入门----推荐课程

    Linux 基础入门课程:https://www.shiyanlou.com/courses/1 很好的一门Linux基础课,精炼.简洁!推荐! 课程内容: 第1节 Linux 系统简介 https: ...

  5. Linux基础入门教程

    Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...

  6. 在学习linux基础入门时的一些问题总结(1)

    本周在实验楼完成了<linux基础入门>的21个实验,虽然之前已经学习过linux的相关课程,对linux下的命令也有一些了解和实践,但完成这21个实验以及35个练习题仍然遇到了许多的问题 ...

  7. 腾讯云-Linux 基础入门

    Linux 基础入门 目录操作 任务时间:5min ~ 10min 创建目录 使用 mkdir 命令创建目录 mkdir $HOME/testFolder # $HOME 当前用户的家目录  root ...

  8. Linux基础入门之网络属性配置

    Linux基础入门之网络属性配置 摘要 Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制. L ...

  9. Linux基础入门 - 3

    第四节 Linux 目录结构及文件基本操作 4-1.Linux目录结构 Linux 的目录与 Windows 的目录的实现机制是完全不同的.一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关 ...

随机推荐

  1. PTA (Advanced Level) 1012 The Best Rank

    The Best Rank To evaluate the performance of our first year CS majored students, we consider their g ...

  2. 通配符证书导致 Outlook Anywhere 的客户端连接问题

    通配符证书导致 Outlook Anywhere 的客户端连接问题 本主题介绍当您使用 Outlook Anywhere 连接到 Microsoft Exchange 及在组织中跨 Exchange ...

  3. Android OpenGL教程-第六课【转】

    第六课 纹理映射: 在这一课里,我将教会你如何把纹理映射到立方体的六个面. 激动的时刻来了,加载图片了. 复习一下android加载图片的知识.放一个png到drawable里面. (图片文件名:ne ...

  4. 转:不用安装Oracle客户端,远程连接Oracle数据库

    转摘自: http://blog.sina.com.cn/s/blog_90b20fe70101az2z.html Oracle数据库安装过程较为繁琐,而且卸载更加麻烦,如果卸载不干净,下次安装Ora ...

  5. [转]Porting to Oracle with Entity Framework NLog

    本文转自:http://izzydev.net/.net/oracle/entityframework/2017/02/01/Porting-to-Oracle-with-Entity-Framewo ...

  6. WPF 用户控件嵌入网页

    WPF使用用户控件嵌入网页,直接使用WebBrowser或Frame会产生报错,报错信息如下: 1.使用WebBrowser,<WebBrowser Source="http://19 ...

  7. MySQL---4、语句规范

    1.命名规范 (1)库名.表名.(按现在的规范类似; PromoHayaoRecord),数据库名使用小写,字段名必须使用小写字母,并采用下划线分割.关键字与函数名称全部大写.(2)库名.表名.字段名 ...

  8. linux 图解常用的云运维监控工具

    随着新技术的不断发展,云服务已经互联网企业的必须,但是长期以来会存在传统物理主机和云主机.私有云和公有云并存的状态.此外,互联网企业的发展速度非常快,小米.滴滴出行等很多企业都是在短短几年内发展起来的 ...

  9. 【转载】SQL Server 2012将数据导出为脚本详细图解

    前记: 从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助存储过程,但是SQL Server 2012和SQL Server 2008的导出脚本的过程还有一点细微的差别 ...

  10. Skype坑爹报错:“旧版本无法删除,请联络您的技术支持小组 ”的解决办法

    真是恶心的让人想吐的报错.现在终于解决了,跟大家分享一下方法. 先给问题截个图,如下 首先当我去搜解决办法之前,我已经在[控制面板]的[卸载程序]里把Skype删除了,真是让我后悔不已的操作啊!!因为 ...