linux+系统优化基础,Linux入门基础(三):Linux用户及权限基础

用户基础

用户和组

每个用户都拥有一个userid

每个用户都属于一个主组,属于一个或多个附属组

每个组拥有一个groupid

每个进程以一个用户身份运行,受该用户可访问资源限制

每个可登陆用户拥有一个指定的shell

用户

userid为32位,从0开始,为了和老式系统兼容,用户id限制在60000以下

用户分为三种

-root用户(id为0的用户)

-系统用户(id为1~499的用户)

-普通用户(500以上)

系统中的文件都有一个所属用户及所属组

使用id命令可以显示当前用户的信息

使用passwd命令可以修改当前用户密码

相关文件

/etc/passwd 保存用户信息

/etc/shadow 保存用户密码(加密的)

/etc/group 保存组信息

查看登录的用户

命令whoami显示当前用户

命令who显示有哪些用户已经登陆系统

命令w显示有哪些用户已经登陆并且在干什么

创建一个用户

命令useradd用来创建一个用户

-d 家目录

-s 登陆shell

-u userid

-g 主组

-G 附属组(最多31个,用逗号分隔)

例如

useradd -u 600 -g group1 user1

这个命令会执行以下操作 :

在/etc/passwd中添加用户信息

如果使用passwd命令创建密码,则将密码加密保存在/etc/shadow中

为用户建立以个新的家目录/home/用户名

将/etc/skel中的文件复制到用户家目录中

建立一个与用户用户名相同的组,新建用户默认属于这个同名组

修改用户信息

命令usermod用来修改用户信息 -l 新用户名

-u 新userid

-d 用户家目录位置

-g 用户所属主组

-G 用户所属附属组

-L 锁定用户使其不能登录

-U 解除锁定

例如

usermod -u 700 user1

删除用户信息

命令userdel用以删除指定用户:

例如

#删除指定用户,保留用户家目录

userdel user1

#删除指定用户,同时删除用户家目录

userdel -r user1

几乎所有操作系统都有组的概念,通过组,我们可以更加方便的归类,管理用户

一般来件,我们使用部门,职能或地域的分类方式来创建使用组

每个组都有一个组id

组信息保存在/etc/group中

每个用户都拥有一个主组,同时还可以拥有最多31个附属组

创建组

命令groupadd用来创建组

例如

groupadd group1

修改组

命令groupmod用来修改组

例如

#修改组名

groupmod -n group2 group1

#修改组id

groupmod -g 601 600

删除组

命令groupdel用来删除组

例如

groupdel group2

权限机制

权限是操作系统用来限制对资源访问的机制

每个进程都以某个用户的身份运行,所以进程的权限和该用户的权限一样

文件权限

文件拥有三种权限 :

权限

对文件的影响

对目录的影响

r (读取)

可读取文件内容

可列出目录内容

w (写入)

可修改文件内容

可在目录中创建删除文件

x (执行)

可以作为命令执行

可访问目录内容

目录不许拥有x (执行权限) , 否则无法查看其内容

UGO模型

Linux权限基于UGO模型进行控制

U代表User , G代表Group , O代表Other

每一个文件的权限基于UGO进行设置

权限三个一组(rwx),对应UGO分别进行设置,总共9个 例如 rwxrwxrwx

每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件的所属用户或组的使用O权限

修改文件所属用户和所属组

命令chown用以改变文件的所属用户

例如

#chown 用户名 文件名/文件夹

chown user1 /var/www/aaa

#-R 递归修改目录下所有文件

命令chgrp用以修改文件的所属组

例如

#chgrp 组名 文件名/文件夹

chgrp group1 /var/www/aaa

#-R 递归修改目录下所有文件

修改权限

命令chmod用以修改文件的权限 chmod 模式 文件

模式为如下格式 :

u,g,o分别代表用户,组和其他

a可以代指ugo

+,- 代表假如或删除对应的权限

r,w,x 代表三种权限

模式示例 :

#所属用户加入读写权限

chmod u+rw fileName

#所属组删除执行权限

chmod g-x fileName

#所属组和其他加入执行权限

chmod go+x fileName

#ugo都删除执行权限

chmod a-x fileName

chmod 也支持数字方式修改权限,分别由三个数字表示 -r = 4 (2^2) -w = 2 (2^1) -x = 1 (2^0) 使用数字表示权限时,每组权限分别对应数字之和 rw=4+2=6 rwx=4+2+1=7 r-x=4+1=5 所以,使用数字表示ugo权限使用如下方式表示: chmod 660 fileName == rw-rw---- chmod 775 fileName == rwxrwxr-x

扩展权限

默认权限

每一个终端都拥有一个umask属性,来确定新建文件 , 文件夹的默认权限

目录的默认权限:777-umask

文件的默认权限:666-umask

一般对于普通用户默认的umask是002,root用户的默认是022

新建文件的权限是:666-002=664

新建目录的权限是:777-002=775

命令umask用以查看 , 设置umask值

#查看

umask

#设置

umask 022

特殊权限

除普通权限外,还有三个特殊权限:

权限

对文件的影响

对目录的影响

suid

以文件的所属用户身份执行

sgid

以文件的所属组身份执行

在该目录中创建的任意新文件的所属组与该目录的所属组相同

sticky

对目录拥有写入权限的用户可仅可以删除其拥有的文件,无法删除其他用户所拥有的文件

设置特殊权限

设置suid:

chmod u+s fileName

即rwsrwxrwx

设置sgid:

chmod g+s fileName

即rwxrwsrwx

设置sticky:

chmod o+t fileName

即rwxrwxrwt

与普通权限一样,特殊权限也可以使用数字方式表示

- SUID = 4

- SGID = 2

- Sticky = 1

所以可以通过一下命令 设置

chmod 4755 fileName

即rwsrwxrwx

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

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

相关文章

linux dhcp 负载均衡,dhcp双机负载均衡

dhcp双机负载均衡1:环境介绍:我是用两个linux机器(dhcpd server 一个是master ,一个是slave)和一个windows xp机器来做的(测试用的client!) ,master:ip:172.17.61.124netmask:255.255.255.0gw:1…

c语言 字节转换成位,C语言中的字节序和指针转换

我在计算机上用以下代码部分编写了一个C程序:uint32_t test 0x01020304;uint8_t array[4];memcpy(array, &test, 4);printf("%02x %02x %02x %02x",array[0], array[1], array[2], array[3]);它打印04030201,但我希望是01020304。我是否必…

C语言顺序结构程序设计PPT,C语言习题集与实验指导 教学课件 伍鹏、杜红、王圆妹、邓绍金 第3章 顺序结构程序设计.pdf...

[摘要]第3章 顺序结构程序设计 第3章 顺序结构程序设计 当你对C语言程序设计有了一定了解和掌握后, 在处理一些简单的任务时,若想根据程序书写的过程 顺序执行程序,这时应该如何处理呢? •顺序结构 •顺序结构 程序的三种结构 程序…

c语言调用exe并传递参数,如何使用execlp将命令行参数传递给C程序

This page包括大量的使用示例....编辑:从链接 从链路的代码段添加的代码片段上方static void show_info_page(const char *git_cmd){const char *page cmd_to_page(git_cmd);setenv("INFOPATH", system_path(GIT_INFO_PATH), 1);execlp("info"…

c语言include math.h,在C语言中,若需调用数学类库函数第数据进行处理,则需包含头文件______. 答案:math.h;#includemath.h;math.h;“math....

相关问题设随机变量X的密度函数为,则c .e339fd828a3e5af974ac21fd9ebc7f0b.gif有函数f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。请写出该函数采用边界值分析法设计的测试用例函数重写与函数重载的相同之处是&#xff1…

c语言sin函数返回nan,C语言入口函数和LD_PRELOAD环境变量

零.C语言入口函数从第一天学习C语言开始,我们的脑子里就深深烙下这样一个概念:C语言程序总是从main()函数开始执行,main()函数结束,程序也就结束了.在平时的练习中貌似这没有问题,但事实真的是这样吗?测试一下,点击(此处)折叠或打开#include #include #include int enter(void…

c语言字符串传给swift,如何把字符串数组从 Swift 传递给 C

作者:Natasha The Robot,原文链接,原文日期:2016-10-27译者:BigbigChai;校对:walkingway;定稿:CMBSwift 允许我们将原生的字符串直接传递给一个接受 C String(即 char *)…

c语言上机题库程序设计,C语言上机程序设计题库及答案.docx

C语言上机程序设计题库及答案C语言上机程序设计题库【程序设计】功能:根据整型形参m,计算如下公式的值:ysin(m)*10。【参考代码】 double y0; ysin(m)*10; return(y);功能:若x、y为奇数,求x到y之间的奇数和&#xff1b…

Android端发送字符到Wed端,android应用端向web端获取字符串。

一 发送和接收普通的JSONArray(仅仅包含字符串的数组)1)web端:PrintWriter out response.getWriter();ListorderAllList new USER().getListStr();JSONArray jsonArray JSONArray.fromObject(orderAllList);System.out.println("wowowo"jsonArray);whil…

three.js使用精灵模型Sprite渲染森林

效果&#xff1a; 源码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div class"box-right&quo…

android logcat 系统 分析,Android日志系统Logcat源代码简要分析

原文出处——>[Android日志系统Logcat源代码简要分析](http://blog.csdn.net/luoshengyang/article/details/6606957)在前面两篇文章Android日志系统驱动程序Logger源代码分析和Android应用程序框架层和系统运行库层日志系统源代码中&#xff0c;介绍了Android内核空间层、系…

android订阅管理,RXJAVA取消订阅封装-kotlin-Android

因为好几次自己想要在别的项目使用&#xff0c;每次都要重写一遍太麻烦&#xff0c;整理了一下发布到 jcenter 。利用官方lifecycle库与kotlin语言特性。lifecycle官方 support 27 自带。库代码数少于100行。用法&#xff1a;1、添加依赖implementation com.sjianjun:rxutils:1…

android 动画完成后不可点击事件,android – TranslateAnimation后按钮不可点击

点击后,我想移动按钮(带动画).我希望它在第一次点击时移动100个像素,底部移动100个像素,第二个100像素,第三个底部的100个像素,依此类推.我有简单的布局文件(main.xml)&#xff1a;android:id"id/button"android:layout_width"wrap_content"android:layout…

鸿蒙系统操作界面布局,华为鸿蒙操作系统大曝光

描述华为鸿蒙操作系统大曝光5月21日&#xff0c;华为消费者业务CEO余承东透露&#xff0c;面向下一代技术而设计的华为操作系统“鸿蒙”&#xff0c;最早将于今秋面市。而就在前天&#xff0c;环球时报(Global Times)发出推文表示&#xff1a;有消息人士称&#xff0c;华为正在…

android 高德获取省市,高德地图定位获取当前地址城市街道等详细信息(全部代码)...

自动定位后弹窗信息&#xff0c;包含省市县镇区路门牌号(效果图如下)代码↓↓↓获取地理位置var mapObj new AMap.Map(iCenter);mapObj.plugin(AMap.Geolocation, function () {geolocation new AMap.Geolocation({enableHighAccuracy: true, // 是否使用高精度定位&#xff…

nsq Android客户端,NSQ的golang客户端简单使用

NSQ的golang客户端简单使用NSQ 是由国外的一个短链服务商bitly使用golang开发的一个消息队列系统&#xff0c;正好使用到了这个东西&#xff0c;在这里简单的记录下。获取客户端nsq的golang客户端是官方版本的go get github.com/nsqio/go-nsq即可简单的消费者和生产者使用该客户…

鸿蒙系统新手教程,鸿蒙灭神决新手入门全流程图文攻略

鸿蒙灭神决新手入门全流程图文攻略2019-03-21 15:04:13来源&#xff1a;天天RPG编辑&#xff1a;野狐禅评论(0)中后期回归主题&#xff0c;如果还是打不过神器2&#xff0c;可以先到“中级挑战”这里完成第一排的四项挑战&#xff0c;可以获得四件道具。从这里开始由于我们刷木…

html中websocket获取数据,如何使用websocket从数据库中获取数据来刷新视图

在标准的Web交互中&#xff0c;客户端(即您的Web浏览器)向您的服务器发送请求。您的服务器收到请求&#xff0c;然后发送回您的浏览器中显示的信息&#xff0c;然后终止连接。WebSockets是一种在客户端和服务器之间创建持久&#xff0c;双向连接的方式&#xff0c;但它需要两者…

流内容html,为什么,和元素属于html中的流内容?

您在引用的部分中通常会忽略这个词.他们中的大多数确实包含文本,但并非所有文本都包含文本.其中一些,如< br>和< hr>您指出的元素不包含任何内容(因此不是typical个流内容元素).Most elements that are used in the body of documents and applications are catego…

html添加工具栏,添加带有命令的工具栏 (HTML)

添加带有命令的工具栏 (HTML)03/04/2016本文内容[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发&#xff0c;请参阅 最新文档 ]ToolBar 是一个简单的控件&#xff0c;用于解决命令扩展问题。它具有一个 …