用户基础

用户和组

  • 每个用户都拥有一个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

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

  1. 在/etc/passwd中添加用户信息
  2. 如果使用passwd命令创建密码,则将密码加密保存在/etc/shadow中
  3. 为用户建立以个新的家目录/home/用户名
  4. 将/etc/skel中的文件复制到用户家目录中
  5. 建立一个与用户用户名相同的组,新建用户默认属于这个同名组

修改用户信息

命令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

Linux入门基础(三):Linux用户及权限基础的更多相关文章

  1. linux入门教程(三) Linux操作系统的安装

    因为笔者一直都是使用CentOS,所以这次安装系统也是基于CentOS的安装.把光盘插入光驱,设置bios光驱启动.进入光盘的欢迎界面. 其中有两个选项,可以直接按回车,也可以在当前界面下输入 lin ...

  2. linux常用终端命令(三)用户和权限

    三.用户权限相关命令 用户 和 权限的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 1.用户和权限的基本概念 1.1.基本概念 用户管理包括 用户 与 组 管理 linux系统中 ...

  3. Linux基础三:用户和组

    三.用户和组 1.概念 (1).用户概念: 用户是用来运行某一些进程.拥有某一些文件或目录. 在Linux里面,用户分成三大类:root用户.系统用户.普通用户. 用户是用UID来唯一标识身份的,且r ...

  4. Linux 配置SFTP,配置用户访问权限

    之前我服务器是使用的Windows Server 2003,这段时间由于访问量变大我还是机智的换成Linux了,在搭建FTP的时候看到网上都是推荐vsftpd,不过我不推荐这个家伙,看官且看下文. 我 ...

  5. 零基础Linux入门之《Linux就该这么学》

    本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值 ...

  6. Linux下给mysql创建用户分配权限

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  7. lilybbs-faq - linux入门以及百合 Linux 版精华区导读

    QUESTIONS 问题与解答 不需要任何命令的简单介绍 历史 (APUE 提到了1990年之前的unix历史,还有各种标准 ANSI ISO IEEE posix xpg3.... 但是linux ...

  8. Linux入门-5 用户及权限基础

    1. Linux用户基础 用户 相关文件 查看登录的用户 添加用户 修改用户信息 删除用户 组 2. Linux权限机制 权限 UGO 修改文件所属用户和组 修改权限 3. Linux权限扩展 默认权 ...

  9. linux开启FTP以及添加用户配置权限,只允许访问自身目录,不能跳转根目录

    1.切换到root用户 2.查看是否安装vsftp,我这个是已经安装的. [root@localhost vsftpd]# rpm -qa |grep vsftpd vsftpd--.el7_2.x8 ...

随机推荐

  1. 网络 互联网接入方法、Mbit与MB的转换

    ADSL:非对称数字用户环路(绝大多数家庭接入方法,使用电话线).可以提供最高1Mbps的上行速率和最高8Mbps的下行速率.最新的ADSL2+可以提供最高24Mbps的下行速率. 千千兆TB 千兆G ...

  2. CSS 颜色 字体 背景 文本 边框 列表 display属性

    1  颜色属性 <div style="color:blueviolet">ppppp</div> <div style="color:#f ...

  3. 使用dva脚手架(dva-cli)快速构建React项目

    安装 dva-cli 你应该会更希望关注逻辑本身,而不是手动敲入一行行代码来构建初始的项目结构,以及配置开发环境. 那么,首先需要安装的是 dva-cli .dva-cli 是 dva 的命令行工具, ...

  4. microsoft azure 映像发布前的检查清单

    在发布映像提交到 Azure 镜像市场之前,请确保以下检查单全部通过: 产品映像要求 产品映像必须满足如下要求: 适用于生产环境,Azure 镜像市场原则上不接受测试版本产品上架 映像为自包含映像,所 ...

  5. 转: C# 的结构剖析

    原文链接:http://www.cnblogs.com/jiajiayuan/archive/2011/09/20/2181582.html 本文意在巩固基础知识,并不是对其进行深入剖析,还望理解.本 ...

  6. 超级好用的解析JSON数据的网站

    超级好用的解析JSON数据的网站 网址 http://json.parser.online.fr/beta/ 效果图 测试数据 {,},,,,,,},{,,,,},{,,,,},{,,,,,,,,,, ...

  7. Python入门-模块4(序列化----json模块和pickle模块)

    序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes.反之,把硬盘里面的数据读到内存里,叫反序列化.

  8. Linux history命令详解

      history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件. 该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定 ...

  9. QuickBI助你成为分析师-数据建模(一)

    摘要: 数据集编辑功能界面介绍以及常见问题总结. 在数据集编辑界面可以进行数据建模来更好的展示数据,创建数据集默认将数值类型字段作为度量,日期.字符串等类型作为维度,度量可以根据维度分组展示.下面来介 ...

  10. JavaScript的DOM操作获取元素实际大小

    clientWidth 和 clientHeight 这组属性可以获取元素可视区的大小,可以得到元素内容及内边距所占据的空间大小. 返回了元素大小,但没有单位,默认单位是 px,如果你强行设置了单位, ...