Linux基础入门 - 2

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

3-1.Linux用户管理

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

  • 1.查看用户

    输入命令:node

    $ who am i
      或者
      $ who mom likes
    运行效果:

    输出的第一列表示打开当前伪终端的用户的用户名(要查看当前登陆用户的用户名,去掉空格直接使用 whoami 便可);第二列的 pts/0 中 pts 表示伪终端;第三列则表示当前伪终端的启动时间。
    who命令其它经常使用参数
  • 2.建立用户

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

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

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

    su,su-与sudo

    • su user 能够切换到用户user,执行时须要输入目标用户的密码。网络

    • sudo cmd 能够以特权级别运行cmd命令,须要当前用户属于sudo组,且须要输入当前用户密码。socket

    • su - user 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。工具

      $ sudo adduser lilei会新建一个叫 lilei 的用户,实验楼的环境目前设置为 shiyanlou 用户执行 sudo 不须要输入密码,一般此处须要按照提示输入 shiyanlou 密码(Linux 下密码输入是不显示任何内容的)。而后是给 lilei 用户设置密码,后面的选项的一些内容你能够选择直接回车使用默认值。如今你已经建立好一个用户,而且你可使用你建立的用户登陆了,使用命令$ su -l lilei(莫名多出个l,试了下不加l的,也能够正常切换,稍微查了下,linux中用户转换问题,大概均可以吧)切换登陆用户。输入刚刚设置的 lilei 的密码,注意:Linux 下密码输入是不显示任何内容的。退出当前用户跟退出终端同样可使用 exit 命令或者使用快捷键 Ctrl+d。
  • 3.用户组

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

    查找所属用户组

    • 方法一:使用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),每一个用户组一条记录。格式以下:.net

      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基础入门

相关文章
相关标签/搜索