Linux基础入门 - 2
第三节 用户及文件权限管理
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的更多相关文章
- Linux 基础入门(新版)”实验报告一~十二
实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...
- Linux基础入门学习笔记20135227黄晓妍
学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用L ...
- Linux 基础入门 第二周9.21~9.27
一.学习内容 本周主要学习内容主要贴合: 在进行<深入理解计算机系统>这门课的实验中没有遇到什么大问题,学习内容与上周实验<linux基础入门>有相似之处.本实验中的内容比较贴 ...
- Linux 基础入门----推荐课程
Linux 基础入门课程:https://www.shiyanlou.com/courses/1 很好的一门Linux基础课,精炼.简洁!推荐! 课程内容: 第1节 Linux 系统简介 https: ...
- Linux基础入门教程
Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...
- 在学习linux基础入门时的一些问题总结(1)
本周在实验楼完成了<linux基础入门>的21个实验,虽然之前已经学习过linux的相关课程,对linux下的命令也有一些了解和实践,但完成这21个实验以及35个练习题仍然遇到了许多的问题 ...
- 腾讯云-Linux 基础入门
Linux 基础入门 目录操作 任务时间:5min ~ 10min 创建目录 使用 mkdir 命令创建目录 mkdir $HOME/testFolder # $HOME 当前用户的家目录 root ...
- Linux基础入门之网络属性配置
Linux基础入门之网络属性配置 摘要 Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制. L ...
- Linux基础入门 - 3
第四节 Linux 目录结构及文件基本操作 4-1.Linux目录结构 Linux 的目录与 Windows 的目录的实现机制是完全不同的.一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关 ...
随机推荐
- 【扫盲】】32位和64位Windows的区别
用户购买windows安装盘或者重新安装操作系统的时候,通常会遇到这个问题,就是不知道该如何选择使用32位操作系统和64位操作系统,有人说64位系统速度快,其实理论上确实是这样,不过具体还要根据你的个 ...
- 如何快速备份还原Sql Server 数据库
备份数据库 选择你要备份的数据库,鼠标右键单击,选择任务-备份 弹出备份数据库窗口,选择添加 弹出选择备份目标窗口,点击浏览,选择存放备份数据库的目录,输入文件名,后缀名输入.bak,点击确定,确定, ...
- Grid控件
Grid控件是WPF布局容器中功能最强大.最灵活的控件.Grid控件基本上能够完成其他WPF容器控件所能完成的功能,Microsoft建议大多数界面的布局都使用Grid控件来实现,因此默认情况下.vs ...
- C# 之程序退出的方法
1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Application.Exit(); 强制所有消息中 ...
- angular2 *ngIf与[hidden]对比<转>
在AngularJS 1中,如果想切换DOM元素的显示状态,估计你会用AngularJS 1内置的指令如:ng-show 或者 ng-hide: AngularJS 1示例: <div ng-s ...
- FE面试题库
一.HTML 序号 面试题目 难度等级 回答要点 H1 简述编写HTML需要注意哪些事项? ☆ DOCTYPE.charset.viewport.语义化.CSS与JS的位置.DOM层级.结构样式行为的 ...
- spss C# 二次开发 学习笔记(一)——配置数据源
由于项目的需要,使用Spss进行数据统计分析. Spss对于数据统计分析的功能有多强主要是客户关注的事情,我所主要关注的是,Spss的二次开发有多复杂. 学习的基本思路是: (1)首先了解统计基本知识 ...
- k:特殊的线性表—栈
栈(Stack): 栈是一种特殊的线性表,栈中的数据元素以及数据元素之间的逻辑关系和线性表相同,两者之间的差别在于:线性表的插入和删除操作可以在表的任意位置进行,而栈的插入和删除操作只允许在表的尾端 ...
- word 文档刷文字格式
WORD文档增加的宏文件, 作用:对全文中文字体更改为,DFKai-SB :对英文字母字体更改为,Times New Roman Sub AutoClose() Selection.WholeStor ...
- 20个网页设计师应该学习的CSS3经典教程实例
CSS3技术离我们越近,我们也应该学习一些简单的CSS3技术了,而学习最基本的方法就是模仿,以及观看大师作品的案例.收集了20个基础教程,均是涉及到css3应用范围,值得你和我一起共同学习. Smoo ...





