linux的理解
1.用户组
因为linux 是多人多任务系统 所有可能有很多人在主机人作业。比如 有A B C D 4个人 在linux主机上作业, A B C 3个人 在做同一个项目 建了一个文件夹这个文件只能A B C 3个人进入,不能让其他用户进入 ,所有就出来用户组了,那么那个D 就 是非用户组了。
打个比方可能好理解点,一个学校有很多学生分成了很多班级便于学校管理,在linux中也要对用户(学生)按照某种策略进行分组管理。那么相对你而言你的同班同学就是你的同组用户,其他班级的学生就是非同组用户。
恰好你有一套非常流行的漫画,你就是文件(漫画)的属主,文件属主对自己的文件拥有最大权限可读可写可执行。如果你愿意与同组用户共享文件,那么就可以赋予同组用户(同班同学)一定的权限访问你的文件比如可读不可写可执行。如果你愿意与外班学生分享漫画,文件属主也可以赋予可读不可写不可执行的权限给非同组用户。这样就实现了对不同用户对某个文件的访问权限的管理。这完全取决于文件属主根据实际情况来决定哪个用户有没有有哪些权限访问属主的文件。 当然如果你将自己文件的权限设置为777,那么就是所有的用户拥有和文件属主一样的最大权限,你也就失去了对这个文件的绝对控制。
你也可以这样理解,文件属主所具有的权限应高于本组用户,本组用户的权限应高于非本组用户。做为文件属主或者是root用户不可以随便赋予本组或非本组用户拥有与文件属主一样的权限,这样会导致安全漏洞。
希望这样能给你解释清楚。
2.用户
每次通过远程连接(SHH),都要输入的用户名密码,进入之后就会在/home/yonghu/此目录级别下。
每个用户只具有当前文件夹下的权限,在其他文件夹下是没有权限的,除非属主赋予了权限。
sudo 可以暂时提升权限,比如在/etc/nginx/conf.d/新建一个default.conf的文件,就需要root权限:sudo vim default.conf
su命令可以把自己的用户权限提升至root,前提是你要属对密码。
adduser name 在root权限下创建用户 之后紧跟命令 passwd name
3.用户空间与内核空间
4.用户分类
1、系统管理员:即root帐户,UID号为0,拥有所有系统权限,它类似于Windows系统中的administrator帐户,是整个系统的所有者。
2、系统用户:linux为满足自身系统管理所内建的账号,通常在安装过程中自动创建,不能用于登录操作系统。UID在1-499之间。如上图中的的halt、mail等等用户即是此类用户。它类似于Windows中的system帐户,当然权限远没有system帐户高。
3、自定义用户:由root管理员创建供用户登录系统进行操作使用的账号,UID在500以上。它类似于Windows系统中users用户组中的帐户 。
通过id命令可以查看当前自己的用户id和gourp id。
Linux用 户分为:拥有者、组群(Group)、其他(other),Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信 息, 都是记录在/etc/passwd文件中。每个人的密码则是记录在/etc/shadow文件下。 此外,所有的组群名称记录在/etc/group內
5.文件/目录权限设置
https://www.cnblogs.com/peida/archive/2012/11/29/2794010.html
权限分析:

通过chomd命令实现
用法1:
chmod [who] [opt] [mode] 文件/目录名
其中who表示对象,是以下字母中的一个或组合:
u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限
而mode则代表权限:
r:可读
w:可写
x:可执行
例子:为同组用户增加对文件a.txt的读写权限:chmod g+rw a.txt
用法2:
chmod [mode] 文件名我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为: 111 101 100 再将其每三位转换成为一个十进制数,就是754。
例子:我们想让a.txt这个文件的权限为:
那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:chmod 664 a.txt
chmod -v u+w /etc/sudoers
-v 运行时显示详细处理信息
6.添加新用户并且授权
root权限:删除其他用户的密码,也可以添加一个新的超级用户
https://www.cnblogs.com/cmi-sh-love/p/6683709.html
linux的理解的更多相关文章
- [Linux]系统调用理解(3)
本文介绍了Linux下的进程的一些概念,并着重讲解了与Linux进程管理相关的重要系统调用wait,waitpid和exec函数族,辅助一些例程说明了它们的特点和使用方法. 1.7 背景 在前面的文章 ...
- [Linux]系统调用理解(2)
本文介绍了Linux下的进程概念,并着重讲解了与Linux进程管理相关的4个重要系统调用getpid,fork,exit和_exit,辅助一些例程说明了它们的特点和使用方法. 关于进程的一些必要知识 ...
- 轻松学习Linux之理解Shell的硬链接与软连接
大家在学习linux的过程中常常遇到一些模糊且容易混淆的概念比如什么是硬链接和软链接,他们有什么区别? 软连接有点象windows中的快捷方式,连接和目标文件具有相同的节点,而硬连接就好象重新复制 ...
- 【Linux】理解setuid()、setgid()和sticky位
详见: http://blog.csdn.net/m13666368773/article/details/7615125 Linux SETUID机制 (1)进程运行时能够访问哪些资源或文件,不取决 ...
- (转)linux service理解
能够使用service命令进行操作的,就是已经注册成为linux的系统服务了.window中也可以注册成为系统服务的办法. service命令用的次数真不少,就是比较多的关联点,用了很多次了,还是有些 ...
- linux 系统进程理解
1.为了对进程从产生到消亡的整个过程进行跟踪和描述,就需要定义各种进程的各种状态并制定相应的状态转换策略,以此来控制进程的运行. 不同的操作系统对进程的状态解释不同,但是最基本的状态都是一样 ...
- Linux深入理解Socket异常
在各种网络异常情况的背后,TCP是怎么处理的?又是怎样把处理结果反馈给上层应用的?本文就来讨论这个问题.分为两个场景来讨论 建立连接时的异常情况 1 正常情况下 经过三次握手,客户端连接成功,服务端有 ...
- locale localedef --之Linux字符集理解
参考: https://www.cnblogs.com/dolphi/p/3622420.html http://www.360doc.com/content/15/1105/08/14513 ...
- Linux系统理解以及Linux系统学习心得
原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 说一下我对Lin ...
随机推荐
- 深入理解CPU和异构计算芯片GPU/FPGA/ASIC (下篇)
3.2.1 CPU计算能力分析 这里CPU计算能力用Intel的Haswell架构进行分析,Haswell架构上计算单元有2个FMA(fused multiply-add),每个FMA可以对256bi ...
- 10-13C#语句(1)
C#语句:判断.循环.形成程序的分支和循环 1.语句分类 1)顺序语句 2)分支语句 3)循环语句 2.语句 选择控制:if,else,switch,case 循环控制:while,do,for,fo ...
- UML在需求分析阶段的应用
转自:https://www.cnblogs.com/fuhaots2009/p/3430666.html 上一篇博客写了uml在软件开发过程中的应用,这以篇要详细介绍一下UML在需求分析过程中的应用 ...
- 需要network lightweight filter disk 上的文件netft.sys
小米wifi在win10下安装不成功,需要network lightweight filter disk 上的文件ntflt.sys 默认路径有问题,改成下面的路径好了! 选择下面第一个路径安装成功了 ...
- Java 对密码MD5
MD5,即"Message-Digest Algorithm 5(信息-摘要算法)": MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算 ...
- .each循环的两种使用方法
- ReactNative http网络通讯
安装 fetch npm install whatwg-fetch --save 1.fetch的Get方式通讯 async sendGet(){ let response = await fetch ...
- SpringBoot05 数据操作01 -> JPA的基本使用、基本使用02
前提: 创建一个springboot项目 创建一个名为springboottest的MySQL数据库 1 jar包准备 jpa的jar包 mysql驱动的jar包 druid数据库连接池的jar包 l ...
- JVM的内存管理、对象的生命周期、内存泄漏
1 JVM内存 分为“堆”.“栈”和“方法区”三个区域,分别用于存储不同的数据 1.1 堆 JVM在其内存空间开辟一个称为”堆”的存储空间,这部分空间用于存储使用new关键字所创建的对象. 1.2 栈 ...
- Tensorflow 优化学习
# coding: utf-8 import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data pr ...