通过第一节课程的学习,你应该已经知道,Linux 是一个可以实现多用户登录的操作系统,比如“李雷”和“韩梅梅”都可以同时登录同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看、修改彼此的文件。

下面我们就来学习一下 Linux 下的账户管理的基础知识
请打开终端,输入命令:

$ who am i# 或者$ who mom likes

第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可)
第二列的 pts/0 中 pts 表示伪终端,所谓伪是相对于 /dev/tty 设备而言的,伪终端就是当你在图形用户界面使用 /dev/tty7 时每打开一个终端就会产生一个伪终端,pts/0 后面那个数字就表示打开的伪终端序号,你可以尝试再打开一个终端,然后在里面输入 who am i,看第二列是不是就变成 pts/1 了
第三列则表示当前伪终端的启动时间。

还有一点需要注意的是,在某些环境中 who am i 和 who mom likes 命令不会输出任何内容,这是因为当前使用的 SHELL 不是登录时的 SHELL,没有用户与 who 的 stdin 相关联,因此不会输出任何内容。例如我在本地的 Ubuntu 系统上输入这个命令就不会有提示。
此时我们只需要打开一个登录 SHELL 的终端例如 Tmux,再在新的终端里执行命令即可。

$ tmux

who 命令其它常用参数



一般我们登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo 这个命令了。

su,su- 与 sudo

需要注意 Linux 环境下输入密码是不会显示的
su <user> 可以切换到用户 user,执行时需要输入目标用户的密码。
sudo <cmd> 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。
su - <user> 命令也是切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的。

现在我们新建一个叫 lilei 的用户:

$ sudo adduser lilei


这个命令不但可以添加用户到系统,同时也会默认为新用户在 /home 目录下创建一个工作目录:

现在你已经创建好一个用户,并且你可以使用你创建的用户登录了,使用如下命令切换登录用户:

$ su -l lilei



退出当前用户跟退出终端一样,可以使用 exit 命令或者使用快捷键 Ctrl+D。

用户组

在 Linux 里面如何知道自己属于哪些用户组呢?

方法一:使用 groups 命令

$ groups shiyanlou

冒号之前表示用户,冒号之后表示该用户所属的用户组。

每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组

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

$ cat /etc/group | sort

cat 命令用于读取指定文件的内容并打印到终端输出,后面会详细讲它的使用。
| sort 表示将读取的文本进行一个字典排序再输出,然后你将看到如下一堆输出,你可以在最下面看到 shiyanlou 的用户组信息:
没找到?没关系,你可以使用 grep 命令过滤掉一些你不想看到的结果:

$ cat /etc/group | grep -E "shiyanlou"

group_name:password:GID:user_list

你看到上面的 password 字段为一个 x,并不是说密码就是它,只是表示密码不可见而已。

这里需要注意,如果用户的 GID 等于用户组的 GID,那么最后一个字段 user_list 就是空的,这里的 GID 是指用户默认所在组的 GID,可以使用 id 命令查看。比如 shiyanlou 用户,在 /etc/group 中的 shiyanlou 用户组后面是不会显示的。lilei 用户,在 /etc/group 中的 lilei 用户组后面是不会显示的。

将其它用户加入 sudo 用户组

使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限

$ sudo usermod -G sudo lilei
$ groups lilei

删除用户

$ sudo deluser lilei --remove-home


使用 –remove-home 参数在删除用户时候会一并将该用户的工作目录一并删除。
如果不使用那么系统会自动在 /home 目录为该用户保留工作目录。

删除用户组可以使用 groupdel 命令,倘若该群组中仍包括某些用户,则必须先删除这些用户后,才能删除群组。

Linux文件权限

查看文件权限

使用较长格式列出文件:

$ ls -l




ls命令其他常用用法
1.显示除了 .(当前目录)和 …(上一级目录)之外的所有文件,包括隐藏文件(Linux 下以 . 开头的文件为隐藏文件)。

$ ls -a


当然,你可以同时使用 -a 和 -l 参数:

$ ls -al


2.查看某一个目录的完整属性,而不是显示目录里面的文件属性:

$ ls -dl <目录名>


3.显示所有文件大小,并以普通人类能看懂的方式呈现:

$ ls -asSh

变更文件所有者

切换到 lilei 用户,然后在 /home/lilei 目录新建一个文件,命名为 iphone11。

$ su - lilei
$ pwd
$ touch iphone11
$ ls -alh iphone11


现在切换回到 shiyanlou 用户,使用以下命令变更文件所有者为 shiyanlou。

# 需要切换到 shiyanlou 用户执行以下操作
$ cd /home/lilei
$ ls iphone11
$ sudo chown shiyanlou iphone11

现在查看,发现文件所有者成功修改为 shiyanlou。

修改文件权限

如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改。文件的权限有两种表示方式:
方式一:二进制数字表示

每个文件有三组固定的权限,分别对应拥有者,所属用户组,其他用户,记住这个顺序是固定的。文件的读写执行对应字母 rwx,以二进制表示就是 111,用十进制表示就是 7,对进制转换不熟悉的同学可以看看 进制转换。例如我们刚刚新建的文件 iphone11 的权限是 rw-rw-rw-,换成对应的十进制表示就是 666,这就表示这个文件的拥有者,所属用户组和其他用户具有读写权限,不具有执行权限。

如果我要将文件 iphone11 的权限改为只有我自己可以用那么就可以用这个方法更改它的权限。

为了演示,我先在文件里加点内容:

$ echo "echo \"hello shiyanlou\"" > iphone11

然后修改权限:

$ chmod 600 iphone11
$ ls -alh iphone11


切换到 lilei 用户,尝试写入和读取操作,可以看到 lilei 用户已经不能读写这个 iphone11 文件了:
方式二:加减赋值操作
要完成上述实验相同的效果,你可以:

$ chmod go-rw iphone11


g、o 还有 u 分别表示 group(用户组)、others(其他用户) 和 user(用户),+ 和 - 分别表示增加和去掉相应的权限。

更多

adduser 和 useradd 的区别是什么
答:useradd 只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd 去设置新用户的密码。adduser 在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。

Linux 还有一些关于隐藏权限和特殊权限的内容,想全面了解 Linux 权限管理这部分内容的用户可以通过其它方式学习。

作业

添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户 loutest 可以读写。截图并把操作过程写入实验报告。

提示: 如何创建一个文件呢?可以考虑 touch 命令,执行 sudo touch /opt/forloutest 这个命令可以创建一个空文件,但前提是执行这个命令的 loutest 用户需要具备 sudo 权限。

第一步,添加一个用户loutest。

sudo adduser loutest


第二步,让loutest用户具备sudo权限。

sudo usermod -G sudo loutest

第三步,loutest用户使用sudo创建文件 /opt/forloutest

su - loutest sudo touch /opt/forloutest


第四步,修改权限

sudo chmod go+rw /opt/forloutest

[Linux]学习笔记3:用户及文件权限管理相关推荐

  1. 《Linux基础三》用户和文件权限管理

    用户和文件权限管理 1,用户 管理员用户: Root用户,也称根用户.超级用户.超级管理员 可对根目录执行读写和执行操作 具有系统中的最高.所有权限 普通用户: 权限有限的用户 Root用户拥有系统的 ...

  2. 蓝桥云课linux入门3:用户及文件权限管理

    内容转自蓝桥云课 目录 1.内容 2.Linux用户管理 2.1查看用户 2.2创建用户 2.3用户组 将其它用户加入 sudo 用户组 2.4删除用户和用户组 3.Linux文件权限 3.1查看文件 ...

  3. Linux学习笔记(二)——文件与磁盘系统

    Linux学习笔记(二)--文件与磁盘系统 文件操作 ls [选项][目录名]-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)- ...

  4. Linux中的用户及文件权限管理总结

    一.用户 1.查看用户:who am I 2.创建用户:sudo adduser <用户名> 在linux中,root权限拥有至高无上的权利,一般登录系统时都是以普通账户的身份登录的,要创 ...

  5. linux学习笔记yum源.repo文件的理解

    linux学习笔记 repo文件是yum 源( 软件仓库 )的 配置 文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容(记录了包的下载路径,相当于寻宝图,告诉yum去哪里寻找将要下载的软 ...

  6. Linux shell 学习笔记(5)— 文件权限(添加、修改、删除用户及创建、修改群组)

    1. Linux的安全性 Linux 安全系统的核心是用户账户.每个能进入 Linux 系统的用户都会被分配唯一的用户账户.用户对系统中各种对象的访问权限取决于他们登录系统时用的账户. 用户权限是通过 ...

  7. Linux命令学习笔记(一)—— 用户及文件权限管理

    1.用户 1.1 查看用户 who am i 查看当前用户及时间 whoami 显示当前用户 1.2创建用户 创建用户要用到 sudo 这个命令了.不过使用这个命令有两个大前提: 你要知道当前登录用户 ...

  8. 我的Linux学习记录(蓝桥)————用户及文件权限管理

    我的Linux学习记录(蓝桥)三 Linux 是一个可以实现多用户登录的操作系统,比如"李雷"和"韩梅梅"都可以同时登录同一台主机,他们共享一些主机的资源,但他 ...

  9. Linux学习:shell命令(文件权限、用户、用户组)

    一.文件权限.用户.用户组 d rwx rwx r-x 2 itcast itcast 4096 1 月 14 17:33 bb 下面一一来讲解这几位: (1)第 1 位:文件类型(共 7 种)(注意 ...

  10. linux —— 学习笔记(用户管理与权限控制)

    目录:1.用户的创建和管理    2.组的创建和管理 3.文件执行权限的控制 4.不用密码执行sudo 1.用户的创建和管理 用户的创建和管理: useradd.usermod . userdel . ...

最新文章

  1. 【组队学习】【31期】IOS开发
  2. [转]mysql使用关键字作为列名的处理方式
  3. python中的time库安装步骤-python中time模块怎么用
  4. opencv python全屏显示、置窗口大小和位置
  5. 单指手势,旋转,缩放
  6. 《大数据分析原理与实践》一一第3章 关联分析模型
  7. 【北航oj】(线段树取模运算)
  8. cordova-plugin-themeablebrowser 0.2.17 ThemeableBrowserionic跳转外链插件在ios中heardBar会遮住内容的bug...
  9. 【渝粤教育】国家开放大学2018年春季 0692-22T化工设备机械基础 参考试题
  10. cisco路由器菜单的制作
  11. 直方图均衡化及算法步骤
  12. idea更新git报错master has no tracked branch
  13. Python——第一天的Suger Rush
  14. 关于windows版本电脑版微信更新后无法显示好友头像以及接收图片和表情的解决方案
  15. Java是什么,Java是什么意思
  16. 微信小程序——订阅消息与微信公众号模板消息
  17. maya(学习笔记)之Arnold渲染器
  18. WKWebView白屏问题
  19. 南宁西乡塘区的计算机中专学校,南宁市西乡塘区中专学校
  20. 初级中级高级测试工程师的区别

热门文章

  1. 数字排列问题(全排例)
  2. 用python读取YUV文件 转RGB 8bit/10bit通用
  3. UOJ449 集训队作业2018 喂鸽子
  4. 设置局域网内共享磁盘
  5. microsoft office 文档左边导航窗格列表不见了
  6. 万年历黄历星座查询v3.6.7
  7. 通信协议:CAN总线
  8. 美杜莎(Medusa)
  9. 五、SPR 单一职责
  10. 绝知此事要躬行|fatal: not in a git directoryError: Command failed with exit 128: git