简单了解一下linux中的文件权限格式与chmod命令

chmod命令:改变文件或者目录的权限

  格式:chmod [参数] [<权限范围><符号><权限代码>]

  -R 或者--recursive 递归处理,表示将指定目录下的所有文件夹及其子目录一并处理

  权限范围表示方法:

    u:User 即文件或者目录的拥有这

    g:group即文件或者目录的所属群组

    o:other 除了文件或目录拥有者或所属群组之外,其他用户都属于这个范围

    a:all 即全部的用户,包含拥有者,所属群组以及其他用户

  符号:

    +号代表添加权限

    -号代表取消权限

  有关权限代号的表示如下:

    r:读取权限,数字代号为4

    w:写入权限,数字代号为2

    x:执行或切换权限,数字代号为1

    -:不具有任何权限,数字代号为0

修改文件权限

   chown   表示修改文件或目录拥有者 
  chgrp     表示修改组 
  chmod   表示修改文件或目录的权限

格式如下:

  # 修改文件|目录的拥有者
  chown 用户名 文件名|目录名

  # 递归修改文件|目录的组
  chgrp -R 组名 文件名|目录名

  # 递归修改文件权限
  chmod -R 755 文件名|目录名
 `chmod` 在设置权限时,可以简单地使用三个数字分别对应 **拥有者** / **组** 和 **其他** 用户的权限

常见数字组合有(`u`表示用户/`g`表示组/`o`表示其他):
  `777` ===> `u=rwx,g=rwx,o=rwx` 
   `755` ===> `u=rwx,g=rx,o=rx`
   `644` ===> `u=rw,g=r,o=r`

例如:chmod u-rwx jason 表示取消jason目录的用户读写执行权限

chmod 777 jason 表示给jason目录添加所有权限

linux权限格式如下图

用户组的管理

  **创建组** / **删除组** 的终端命令都需要通过 `sudo` 执行

  groupadd 组名         表示添加组
  groupdel 组名          表示删除组 
    cat /etc/group           查看用户组是否添加或者删除成功,确认的方式 
    chgrp -R 组名 文件/目录名            表示递归修改文件/目录的所属组

  组信息保存在 `/etc/group` 文件中
  `/etc` 目录是专门用来保存 **系统配置信息** 的目录

  在实际应用中,可以预先针对 **组** 设置好权限,然后 **将不同的用户添加到对应的组中**,从而**不用依次为每一个用户设置权限**

用户的管理

  **创建用户** / **删除用户** / **修改其他用户密码** 的终端命令都需要通过 `sudo` 执行

创建用户/设置密码/删除用户

  useradd -m -g 组 新建用户名   表示添加新用户

  参数说明:-m 自动建立用户家目录

       -g 指定用户所在的组,否则会建立一个和同名的组

  passwd 用户名         表示为该用户设置密码  如果是普通用户,直接用 passwd 可以修改自己的账户密码 
  userdel -r 用户名           表示删除用户

  参数说明: -r 选项会自动删除用户家目录 
  cat /etc/passwd | grep 用户名    表示确认用户信息 新建用户后,用户信息会保存在 /etc/passwd 文件中

创建用户时,如果忘记添加 `-m` 选项指定新用户的家目录 —— 最简单的方法就是**删除用户,重新创建**
 创建用户时,默认会创建一个和**用户名**同名的**组名**
 用户信息保存在 `/etc/passwd` 文件中

`/etc/passwd` 是用于保存用户信息的文件
 `/usr/bin/passwd` 是用于修改用户密码的程序

`/etc/passwd` 文件存放的是用户的信息,由 6 个分号组成的 7 个信息,分别是

  1. 用户名
  2. 密码(x,表示加密的密码)
  3. UID(用户标识)
  4. GID(组标识)
  5. 用户全名或本地帐号
  6. 家目录
  7. 登录使用的 Shell,就是登录之后,使用的终端命令

usermod命令

* `usermod` 可以用来设置 **用户** 的 **主组** / **附加组** 和 **登录 Shell**,命令格式如下:
* **主组**:通常在新建用户时指定,在 `etc/passwd` 的第 4 列 **GID 对应的组**
* **附加组**:在 `etc/group` 中最后一列表示该组的用户列表,用于指定 **用户的附加权限**

> 提示:设置了用户的附加组之后,需要重新登录才能生效!

例如:

  # 修改用户的主组(passwd 中的 GID)
    usermod -g 组 用户名

  # 修改用户的附加组
    usermod -G 组 用户名

  # 修改用户登录 Shell
    usermod -s /bin/bash 用户名

注意:默认使用 `useradd` 添加的用户是没有权限使用 `sudo` 以 `root` 身份执行命令的,可以使用以下命令,将用户添加到 `sudo` 附加组中

  usermod -G sudo 用户名

要将新添加的用户添加到附加组中,下次登录才能使用该用户进行登录。

查看用户信息

   id [用户名]   表示查看用户 UID 和 GID 信息 
   who        表示 查看当前所有登录的用户列表 
   whoami            表示查看当前登录用户的账户名

  who am i           表示查看第一次登录的用户

用户的切换

  `su` 是 `substitute user` 的缩写,表示 **使用另一个用户的身份**

    使用格式:su 用户名

  su不接用户名,默认切换到root。

  exit 命令表示退出当前用户。su命令和exit结合使用来进行用户的切换。
   `sudo` 命令用来以其他身份来执行命令,预设的身份为 `root`

linux中文件权限格式与chmod命令以及用户和用户组的管理的更多相关文章

  1. [转]Linux中文件权限目录权限的意义及权限对文件目录的意义

    转自:http://www.jb51.net/article/77458.htm linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括 ...

  2. Linux中文件权限查看和修改

    权限定义 linux文件权限分为:r读权限(4).w写权限(2).x执行权限(1) linux权限对象分为:拥有者.组用户.其他用户 权限修改: chown user:group /usr/local ...

  3. linux中文件权限的字母含义

    一.文件系统部分 - 普通文件(文本文件,二进制文件,压缩文件,电影,图片...)d 目录文件(蓝色)b 设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1c 设备文件(字符 ...

  4. 6、Linux基础--文件类型、属性信息、创建用户与用户组

    笔记 1.晨考 1.解析映射文件 /etc/hosts 2.磁盘挂载文件 /etc/fstab 3.设置开机自启动脚本的步骤 1.修改/etc/rc.local 2.设置可执行权限 chmod +x ...

  5. linux 中文件权限和磁盘管理、linux服务器项目如何部署

    chmod chmod 421 xx.txt //4=r,2=w,1=x df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k ...

  6. 初窥Linux 之 文件权限

    一.用户与用户组 为了更好地理解文件权限,我们需要先有用户和用户组的概念.因为在Linux里面,任何一个文件都具有“User(用户).Group(用户组)及Others(其他用户)”3种身份的个别权限 ...

  7. linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

  8. 【Linux】windows下编写的脚本文件,放到Linux中无法识别格式

    注意:我启动的时候遇到脚本错误 » sh startup.sh -m standalone tanghuang@bogon : command not found : command not foun ...

  9. 【博学谷学习记录】超强总结,用心分享|Linux修改文件权限方法总结

    一.介绍 linux中"一切皆文件".每个文件都设定了针对不同用户的访问权限. 文件权限主要针对以下三种对象: 属主:拥有者 属组:所属的组 其他人:不属于上述两类 二.文件权限 ...

随机推荐

  1. JUnit——运行多个测试方法

    TDD=Test Drive Development   在实际应用中作用特别大,因为我们会定义很多的类和方法,也会存在很多的更新操作,这样如果用main函数进行测试,则会异常麻烦. 而如果用这种多个 ...

  2. 【深入理解CLR】2:细谈值类型的装箱和拆箱

    装箱 总所周知,值类型是比引用类型更“轻型”的一种类型,因为它们不作为对象在托管堆中分配,不会被垃圾回收,也不通过指针来引用.但在许多情况下,都需要获取对值类型的一个实例的引用.例如,假定要创建一个A ...

  3. CDOJ 1073 线段树 单点更新+区间查询 水题

    H - 秋实大哥与线段树 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit S ...

  4. 关于win7系统下gitbook的安装与gitbook editor的配合使用

    1.安装nodejs 2.node -v,可查看node版本: npm -v,可查看npm版本 3.npm install gitbook-cli -g,安装gitbook 此过程经常报错,如果报错, ...

  5. Python3学习笔记(五):列表和元组

    一.列表 列表是可变的--可以改变列表的内容 list函数可以把各种类型的序列拆分列表 >>> list('Hello') ['H', 'e', 'l', 'l', 'o'] 二.列 ...

  6. Spring 4.2.2以上版本和swagger集成方案和踩过的坑

    因为公司使用的spring版本太高,在集成swagger的时候会存在一些问题,而网上的很多实例大多都是版本比较低的,为了是朋友们少才坑,我这边将集成的过程记录一下: 1. 引入spring.swagg ...

  7. Spring Cloud Stream教程(五)编程模型

    本节介绍Spring Cloud Stream的编程模型.Spring Cloud Stream提供了许多预定义的注释,用于声明绑定的输入和输出通道,以及如何收听频道. 声明和绑定频道 触发绑定@En ...

  8. 【转】C语言中数组名和指针的区别

    注:本文转自http://www.cnblogs.com/furaibo/archive/2010/03/19/1689710.html 魔幻数组名 请看程序(本文程序在WIN32平台下编译): #i ...

  9. C++二维数组(指针)做参数

    一.问题描述 使用C++编程过程中经常需要使用到二维数组,然而初级程序员在使用过程中经常会出错使程序崩溃.下面就二维指针的定义,初始化,以及二维指针做参数给出简单介绍. 1.二维数组的定义与初始化 在 ...

  10. sar性能监控

    1.安装sar: yum -y install sysstat 第一次使用sar命令会提示如下错误:“无法打开 /var/log/sa/sa13: 没有那个文件或目录”. 这里的值13是当天的日期,如 ...