用户管理与文件权限

一:用户管理

现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源。
普通用户在所分配到的资源内进行各自的操作,相互之间不受影响。但是这些普通用户的权限是有限制的,且用户太多的话,管理就不便,从而引入root用户。
此用户是唯一的,且拥有系统的所有权限。
root用户所在的组称为root组。“组”是具有相似权限的多个用户的集合。

root的权利

Linux系统的特性就是可以满足多个用户,同时工作,因此Linux系统必须具备很好的安全性。
在安装RHEL7时设置的root管理员密码,这个root管理员就是所有UNIX系统中的超级用户,它拥有最高的系统所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭进程,开启/禁用硬件设备等等。
因此“能力越大,责任越大”,root权限必须很好的掌握,否则一个错误的命令可能会摧毁整个系统。

root为什么叫root?

在Linux系统中,用户也有自己的UID身份账号且唯一
系统管理员UID为0
系统用户UID为1~999    Linux安装的服务程序都会创建独有的用户负责运行。
普通用户UID从1000开始:由管理员创建

用户组GID

为了方便管理属于同一组的用户,Linux 系统中还引入了用户组的概念。
通过使用用 户组号码(GID,Group IDentification),我们可以把多个用户加入到同一个组中,从而方 便为组中的用户统一规划权限或指定任务。假设有一个公司中有多个部门,每个部门中又 有很多员工。如果只想让员工访问本部门内的资源,则可以针对部门而非具体的员工来设 置权限。例如,可以通过对技术部门设置权限,使得只有技术部门的员工可以访问公司的 数据库信息等。Linux管理员在创建用户时,将自动创建一个与其同名的用户组,这个用户组只有该用户一个人

大家都知道windows下有管理员用户 administrator

Linux/unix是一个多用户、多任务的操作系统。

root:默认在Unix/linux操作系统中拥有最高的管理权限。

普通用户:是管理员或者具备管理权限的用户所创建的,只能读、看,不能增、删、改。


1.1:useradd

创建普通用户
# 添加用户
useradd sail # 设置密码       
passwd redhatroot用户可以修改其他所有人的密码,且不需要验证

1.2:su -

切换用户su命令可以切换用户身份的需求,
su - usernamesu命令中间的-号很重要,意味着完全切换到新的用户,即环境变量信息也变更为新用户的信息su username 与 su - username 的区别su username ,切换后的环境变量大部分还是切换前用户的环境su - username ,切换后则完全切换到了目标用户的环境env 查看环境变量 MAIL 可以看出显著区别另外PATH变量在第一种方式切换用户后,都会变成PATH=/sbin:/bin:/usr/sbin:/usr/bin
[root@localhost ~]# su - sail
Last login: Fri Jun 28 21:47:53 CST 2019 on pts/2[sail@localhost ~]$ echo $PATH
/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home/sail/.local/bin:/home/sail/bin[root@localhost ~]# su  sail
Last login: Fri Jun 28 21:47:53 CST 2019 on pts/2[sail@localhost ~]$ echo $PATH
/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin[sail@localhost ~]$ su - root
Password: 
Last login: Sat Jun 29 15:32:42 CST 2019 on pts/2
[root@localhost ~]# echo $PATH
/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
#先看下当前用户(我是谁)
whoami#切换用户
su - oldboy#退出用户登录
logout
ctrl + d#重新登录
ctrl+shift+r
  • 一般情况下,在生产环境避免直接用root用户,除非有特殊系统维护需求,使用完立刻退回普通用户
  • 非交互式设置密码(echo "redhat"|passwd --stdin oldboy && history -c)
Tip:
1:超级用户root切换普通用户无需密码
2:普通用户切换root,需要输入密码
3:普通用户权限较小,只能基本查看信息
4:$ 符号是普通用户命令提示符,# 是超级管理员的提示符
5:root是当前用户,localhost是主机名,~代表当前路径,也是家目录


1.3:groupadd

group命令用于创建用户组,为了更加高效的指派系统中各个用户的权限,在工作中常常添加几个用户到一个组里面,这样可以针对一类用户安排权限。例如在公司里,添加openLDAP用户管理,偶尔台湾,美国的同事去上海协作,我就得给他们添加到it部门组里面,以至于他们有对服务器操作的权限。
groupadd it_dep


1.4:userdel

-f     强制删除用户
-r    同事删除用户以及家目录
userdel -r sail


1.5:sudo

sudo命令用来以其他身份来执行命令,预设的身份为root。

/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

语法

sudo 【选项】【参数】
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

实例

这个sudo命令用在什么时候呢?[sail@localhost ~]$ ls /root/
ls: cannot open directory /root/: Permission denied      权限被拒绝了怎么办?权限不够,这时候需要sudo ls /root  以root身份去运行,sail权利小,root总可以了吧!![sail@localhost ~]$ sudo ls /root/
[sudo] password for sail: 
sail is not in the sudoers file.  This incident will be reported.      sail 不在 sudoers 文件里.  

这是由于配置sudo必须编辑/etc/sudoers文件,并且只有root才能修改,

可以通过visudo命令直接编辑sudoers文件,使用这个命令还可以检查语法,比直接编辑 vim /etc/sudoers更安全

visudo 编辑sudoers文件写入
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
sail  ALL=(ALL)       ALL   #允许chaoge在任何地方,执行任何命令
此时切换chaoge用户
#su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
su - sail
已经可以使用sudo ls /root 命令



二:文件权限

Linux权限的目的是(保护账户的资料)

Linux权限主要依据三种身份来决定:

  • user/owner 文件使用者,文件属于哪个用户
  • group 属组,文件属于哪个组
  • others 既不是user,也不再group,就是other,其他人

2.1:什么是权限

在Linux中,每个文件都有所属的所有者,和所有组,并且规定了文件的所有者,所有组以及其他人对文件的,可读,可写,可执行等权限。对于目录的权限来说,可读是读取目录文件列表,可写是表示在目录内新增,修改,删除文件。可执行表示可以进入目录


2.2:Linux权限的观察

使用一条命令查看权限

ls -l /var/log/mysqld.log 
ls -l a.txt [root@localhost test]# ll
total 28
-rwx---rwx. 1 sail sail     4 Jun 27 20:59 a.txt
drwxrwxr-x. 2 sail sail     6 Jun 27 20:59 b.txt
drwxr-xr-x. 2 root root  4096 Jun 27 21:04 d
-rwxrwxrwx. 1 root root     9 Jun 28 15:50 dianhua.txt
-rw-r---w-. 1 root root     4 Jun 28 16:13 new_pass.txt
-rw-r--r--.     1      root    root   10240        Jun 27 20:47   test.tar权限      文件连接数   属主    属组    文件大小      修改日期时间    文件名[root@localhost test]# ll test.tar-rw-r--r--.     1       root     root     10240        Jun 27 20:47    test.tar权限      文件连接数    属主      属组    文件大小      修改日期时间     文件名解读
1. 权限,第一个字母为文件类型,后续9个字母,每3个一组,是三种身份的权限
2. 文件链接数
3. 文件拥有者-属主
4. 文件拥有组-属组
5. 文件大小
6. 最后一次被修改的时间日期
7. 文件名 

分析一下文件的类型

-    一般文件
d    文件夹
l    软连接(快捷方式)
b    块设备,存储媒体文件为主
c    代表键盘,鼠标等设备


2.3:文件权限

r    read可读,可以用cat等命令查看
w    write写入,可以编辑或者删除这个文件
x    executable    可以执行



三:目录权限

权限这里测试不要用root实验!!!!root太牛逼了

请用普通用户执行!!!!!测试文件、文件夹权限操作,请用普通用户!

r    可以对此目录执行ls列出所有文件
w    可以在这个目录创建文件
x    可以cd进入这个目录,或者查看详细信息

权限与数字转化

img

ls -l /var/log/mysqld.log 
-rw-r--r-- 1 mysql mysql 6735642 8月  11 14:19 /var/log/mysqld.log
这个就代表mysqld.log文件属主是mysql,属组是mysql,只有mysql用户可以读取编写这个文件,其他人只能读此文件。[root@localhost test]# ll test.tar-      rw-     r--   r--     1        root     root      10240        Jun 27 20:47    test.tar
普通文件  属主    属组  其他人            用户    用户组     


3.1:查看用户权限命令

id指令查看用户所属群主
[root@sail_python ~ 16:34:52]#id root
uid=0(root) gid=0(root) 组=0(root)


3.2:修改文件权限属性

普通用户只能修改自己的文件名,时间与权限(注意)
因此修改其他用户权限,只能用最nb的root用户

# 切换root用户

[pyyu@sail_python root]$ su -

当前/tmp/pyyu.txt文件以存在,且信息是
-rw-rw-r-- 1 sail sail    0 8月  11 16:41 py.txt

修改属主为root

chown

[root@sail_python /tmp 16:43:12]#chown root py.txt 

查看信息

[root@sail_python /tmp 16:43:42]#ll py.txt 
-rw-rw-r-- 1 root sail 0 8月  11 16:41 py.txt

修改属组 :chgrp

[root@sail_python /tmp 16:43:42]#ll py.txt 
-rw-rw-r-- 1 root pyyu 0 8月  11 16:41 py.txt
[root@sail_python /tmp 16:44:59]#chgrp root py.txt 
[root@sail_python /tmp 16:45:51]#ll py.txt 
-rw-rw-r-- 1 root root 0 8月  11 16:41 py.txt


3.3:文件权限

我们已知三种身份权限(属主,属组,其他人),每种身份都有rwx的三种权限,系统还提供了数字计算权限。

r    read          4
w    write        2
x    execute     1

每种身份最低是0分,最高是r+w+x 7分

因此三种身份,最高权限是777,最低是000

-rw-rw-r-- 1 root root 0 8月  11 16:41 pyyu.txt
因此可知pyyu.txt的权限是
属主是6 r+w(4+2)
属组是6 r+w(4+2)
其他人是4 r(4)


3.4:修改权限的命令

chmod

chmod [身份]   [参数]   [文件]u(user)   +(添加)  g(group)   -(减去)o(other)  =(赋值)a(all)

例如

当前权限
-rw-rw-r-- 1 root root 0 8月  11 16:41 py.txt
方法1
减去属主的写权限
chmod u-w py.txt
查看权限
-r--rw-r-- 1 root root 0 8月  11 16:41 py.txt方法2
属主添加可读可写可执行权限
chmod 700 py.txt属主可读可写可执行
属组可读可执行
其他人可读可执行
chmod 755 py.txt

修改文件名,修改文件更改日期

mv py.txt sail.txt
#触摸,修改时间
touch sail.txt




转载于:https://www.cnblogs.com/Quantum-World/p/11107046.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php中划线,html中下划线、删除线、上划线的样式与用法实例

这篇文章主要介绍了下划线、删除线、上划线等常用的实例&#xff0c;划线是非常常见的一种样式&#xff0c;为了网页中的视觉效果以及对文字的说明&#xff0c;我们经常对文体进行一些划线操作。下面文章就是对各种划线的详细介绍。一. 下划线的详细介绍在我们日常的Web的开发中…

php获取页面中的指定内容,php 获取页面中指定内容的实现类

[email protected]image&#xff1a;Grep.class.php/** grep class* Date: 2013-06-15* Author: fdipzone* Ver: 1.0** Func:** set: 设置内容* get: 返回指定的内容* replace: 返回替换后的内容* get_pattern 根据type返回pattern*/class Grep{ // class startprivate $_patte…

数据增量更新定义_TiDB 在 OPPO 准实时数据仓库中的实践

作者介绍OPPO 数据分析与解决方案团队主要负责 OPPO 全集团的大数据分析和解决方案提供&#xff0c;团队成员多来自一线互联网公司及著名高校&#xff0c;在 OPPO 众多场景的大数据应用方面有很深经验&#xff0c;极大的支撑了业务迅速发展。文章具体作者&#xff1a;羊欢&…

selenium--单选下拉列表

下拉选择 from selenium import webdriver from time import sleepdriver webdriver.Chrome() driver.get("https://www.xxxxx.com/") sleep(2) driver.find_elements_by_tag_name(option)[2].click() # 通过标签名定位到 option 标签&#xff0c;选择第三个&#x…

matlab实现字符识别,字符识别 - MATLAB Simulink Example - MathWorks 中国

定义问题脚本 prprob 定义了一个包含 26 列的矩阵 X&#xff0c;每列对应一个字母。每列有 35 个值&#xff0c;值可能是 1&#xff0c;也可能是 0。每列(包含 35 个值)定义一个字母的 57 位图。矩阵 T 是一个 2626 的单位矩阵&#xff0c;它将 26 个输入向量映射到 26 个类。[…

批处理结束某个进程_进程调度

当计算机系统是多道程序设计系统时&#xff0c;常常会出现多个进程或线程竞争CPU的情况。如果有大于处理器数的进程(线程)处于就绪态时&#xff0c;就必须要选择下一个要执行的进程(线程)。在操作系统&#xff0c;用于选择接下来要执行的进程的程序称之为调度程序(Scheduler)&a…

动态游标for循环_数据结构系列循环链表

前面留的一个问题,后文更跟新回答单链表可以表示任意的线性关系&#xff0c;有些线性关系是循环的&#xff0c;既没有队尾元素。将单链表中的终端结点指针端由空指针改为指向头结点&#xff0c;这时的单链表形成国恒一个环&#xff0c;改为循环链表。插入与删除与单链表的原理甚…

sas sql 读取最后一行数据_SAS基础编程和数据处理

前几天讲了数据分析中SQL的基本使用方法以及具体案例分析思路&#xff0c;接下来会继续讲统计基础以及在SAS软件内的应用&#xff0c;在这之前&#xff0c;本文先进行SAS基础使用编程的基础介绍&#xff0c;后续会主要阐述SAS软件内的统计数学的应用&#xff0c;如分析或初步建…

代码合并工具_分享几款比较常用的代码比较工具

俗话说&#xff1a;三句不离本行&#xff0c;对于程序员这个可爱的群体来说也是一样&#xff0c;即使面对无休无止的编程工作&#xff0c;程序员们依旧任劳任怨的埋头苦干&#xff0c;梦想着用自己码下的代码改变世界。工欲善其事,必先利其器&#xff0c;每一位程序员都有自己私…

循环控制

循环控制 定义 Python 循环语句是通过一条或多条语句的执行结果&#xff08;True 或者 False&#xff09;来决定执行的代码块。 并在符合条件的情况下跳出该段循环。 类似于控制语句。 如下图所示。 WHILE 循环 while 判断条件&#xff1a; 语句 求1~100的和 n 0 sum 0 while…

rest风格的get加密字符串怎么接收_RESTful Api的设计与风格,你该学一下咯

REST的重要概念REST全称是Representational State Transfer&#xff0c;中文意思是表征性状态转移。RESTful是指具有REST表征的web架构风格&#xff0c;并非必须遵守的规则。REST分离了API的结构和逻辑&#xff0c;主要应用于客户端和服务器交互类的软件。基于这种风格设计的软…

接口批量同步数据_千手接口平台+电商ERP,助德嵘大药房征战拼多多

拼多多对C端经营者来说&#xff0c;是一个处于红利期的第三方C端电商平台&#xff0c;进驻费比天猫低很多&#xff0c;而且流量成本也低&#xff0c;很多商家都跃跃欲试。但对于没有C端平台运营经验的商家&#xff0c;进驻后会发现几个"坑"&#xff1a;客单价低、退货…

php 接口有几种,【后端开辟】php接口有哪些范例?

接口是什么&#xff1f;运用接口(interface)&#xff0c;能够指定某个类必需完成哪些要领&#xff0c;但不须要定义这些要领的具体内容。接口是经由过程 interface 关键字来定义的&#xff0c;就像定义一个规范的类一样&#xff0c;但个中定义一切的要领都是空的。接口中定义的…

java是编译型语言还是解释型语言?

首先拿python和C说明&#xff0c;python运行速度慢&#xff0c;和C程序相比非常慢&#xff0c;因为Python是解释型语言&#xff0c;你的代码在执行时会一行一行地被python解释器翻译成CPU能理解的机器码&#xff0c;这个翻译过程非常耗时&#xff0c;所以很慢。而C/C程序是编译…

typedef函数指针_C语言函数指针之回调函数

1 什么是回调函数&#xff1f;首先什么是“回调”呢&#xff1f;我的理解是&#xff1a;把一段可执行的代码像参数传递那样传给其他代码&#xff0c;而这段代码会在某个时刻被调用执行&#xff0c;这就叫做回调。如果代码立即被执行就称为同步回调&#xff0c;如果过后再执行&a…

fedora 安装oracle 12c,Fedora 12下安装Oracle 11客户端

目标&#xff1a;将oracle-client(v11)安装到rdquo;/opt/oracle/rdquo;下准备好如下三个安装包&#xff0c;放在某个目录下&#xff0c;如&#xff1a;/root/software/ora目标&#xff1a;将Oracle-client(v11)安装到”/opt/oracle/”下准备好如下三个安装包&#xff0c;放在某…

轨迹跟踪主要方法_DELMIA教程:基于指令形式的机器人TCP轨迹局部跟踪方法

上一期为大家介绍了基于工具条中的“TCP Trace”命令按钮的全局TCP轨迹跟踪&#xff0c;之所以称之为全局轨迹跟踪&#xff0c;是因为只要命令被打开&#xff0c;机器人运行的全部轨迹都将实现跟踪。既然有全局TCP轨迹跟踪&#xff0c;那么就一定有局部TCP轨迹跟踪&#xff0c;…

[转帖]开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 https://www.geek-workshop.com/thread-1860-1-1.htmlliamjeal电梯直达1# 发表于 2012-9-10 13:41:43 | 只看该作者 |只看大图 因CooCox用户数及影响力越来越大&#xff0c;CooCox团队也逐渐提高了对软件及代码协议的重…

qt 定时器累加值_零基础入门单片机定时器详解

一、基本定时器介绍在STM32中&#xff0c;基本定时器有TIM6、TIM7等。基本定时器主要包含时基单元&#xff0c;提供16位的计数&#xff0c;能计数0~65535。基本定时器除了计数功能以外&#xff0c;还能输出给DAC模块一个TRGO信号。基本定时器框图如下&#xff1a;二、时基单元介…

jvm 安装位置_简单了解JVM

1、JVM的位置&#xff1a;JVM是在操作系统上面的应用软件JVM虚拟机有三种如下&#xff1a;① Sun公司的HotSpot&#xff1b;    ② BEA公司的JRockit&#xff1b;    ③ IBM公司的J9 JVM&#xff1b;java虚拟机属于第一种&#xff1a;2、JVM的体系结构&#xff1a;3、类…