一. 用户和组的管理  - Linux中用户种类

种类 特点
root 是管理员,拥有至高无上的权限,不受限制,UID为0
普通用户 管理员创建的用户,受权限限制,UID一般从500开始,可以登录系统
程序用户 安装应用程序,系统创建的,一般UID小于500,一般不可以登录系统,shell一般是/sbin/nologin
  • Linux中组的种类:
种类 特点
基本组(私有组) 一个用户只有一个私有组,当用户创建目录和文件的时候,目录和文件默认的属组是基本组
附加组(公共组) 用户可以有多个附加组
  1. 用户的管理:
/etc/passwd   #存放了用户的信息
/etc/shadow #存放了用户的密码信息等
  • 添加用户账号

    useradd命令

useradd  [选项]...  用户名   
    -u:指定 UID 标记号
-d:指定宿主目录,缺省为 /home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或UID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
  • 设置/更改用户口令

    passwd命令

passwd  [选项]...  用户名
    -d:清空用户的密码,使之无需密码即可登录
-l:锁定用户帐号
-S:查看用户帐号的状态(是否被锁定)
-u:解锁用户帐号
  • 修改用户账号的属性  usermod命令
usermod  [选项]...  用户名
    -l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s
  • 删除用户账号  userdel命令
userdel  [-r]  用户名  #添加 -r 选项时,表示连用户的宿主目录一并删除
  • 用户第一次登陆必须更改密码
chage  -d  0  用户名   

2.组的管理:

/etc/group   #保存组账号基本信息
/etc/gshadow #保存组账号的加密密码信息,很少用
  • 添加组账号

groupadd命令

groupadd  [-g GID]  组帐号名
  • 添加删除组成员  gpasswd命令  用途:设置组帐号密码(极少用)、添加/删除组成员
gpasswd  [选项]...  组帐号名
    -a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
  • 删除组账号  groupdel命令
groupdel  组帐号名
  • 查询账号信息:

id命令

    用途:查询用户身份标识
格式:id [用户名]

groups命令

    用途:查询用户所属的组
格式:groups [用户名]

finger命令

    用途:查询用户帐号的详细信息
格式:finger [用户名]

users、w 、who命令

    用途:查询已登录到主机的用户信息

二. 文件和目录的属性:属主、属组、权限

  • 文件/目录的权限和归属
A.  访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
B. 归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
  • ls -l 执行命令后得结果分析
第一个字符:表示文件或目录的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等。
第2-4个字符:表示属主的权限
第5-7个字符:表示属组的权限
第8-10个字符:表示其它人的权限
  • Linux中基本权限分为r(4)、w(2)、x(1)
查看文件/目录的权限和归属
---------------------------------------------------------------------------------
| 权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
---------------------------------------------------------------------------------
|字符表示| r | w | x | r | w | x | r | w | x |
---------------------------------------------------------------------------------
|数字表示| 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
---------------------------------------------------------------------------------
|权限分配| 文件所有者 | 文件所属组 | 其他用户 |%2
  • 设置文件和目录的权限

  chmod命令

         格式1:chmod   [ugoa]  [+-=] [rwx]  文件或目录... 

         格式2:chmod nnn 文件或目录...

         常用命令选项

         -R:递归修改指定目录下所有子项的全新
  • 设置文件和目录的归属

chown命令

格式:chown  属主  文件或目录

chown  :属组  文件或目录

chown  属主:属组  文件或目录

常用命令选项

-R:递归修改指定目录下所有文件、子目录的归属

  • 用户账号的初始配置文件

文件来源

新建用户帐号时,从/etc/skel 目录中复制而来

主要的用户初始配置文件

~/.bash_profile:用户每次登录时执行

~/.bashrc:每次进入新的Bash环境时执行

~/.bash_logout:用户每次退出登录时执行

A.Umask  可以设置新建文件、目录时的默认权限,(默认权限 = 现有默认权限 - 权限掩码)

Umask [权限掩码]

B.附加权限

a)Set位权限:给可执行的程序或脚本文件设置。 SUID----4, SGID----2

执行文件设置了set后,任何用户在执行该文件时,获得该文件属主、属组账号对应的身份。

比如普通用户无法修改/etc/shadow文件,但是却可以修改自己的密码,因为/usr/bin/passwd设置了set权限。

ll  /usr/bin/passwd

例: cp /bin/mkdir  /tmp/mymkdir

     Chmod u+s /tmp/mymkdir

     ll /tmp/mkdir

     切换到其他用户,/tmp/mymkdir  创建文件(宿主目录下),发现属主为root。而mkdir属主为自己

b)粘滞位:用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限以后,即便用户对该目录写入权限,也不能删除该目录中其他用户的文件数据。例 /tmp  , /var/tmp

例: 在/tmp中,使用用户aa创建文件,使用用户bb删除不了
<pre name="code" class="html">[root@localhost ~]# su - vanko
[vanko@localhost ~]$ cd /tmp/
[vanko@localhost tmp]$ mkdir vanko
[vanko@localhost tmp]$ ls -ltr
total 4
drwxrwxr-x 2 vanko vanko 4096 Jan 8 10:09 vanko
[root@localhost ~]# su - xu
[xu@localhost ~]$ cd /tmp
[xu@localhost tmp]$ mkdir xu
[xu@localhost tmp]$ ls -ltr
total 8
drwxrwxr-x 2 vanko vanko 4096 Jan 8 10:09 vanko
drwxrwxr-x 2 xu xu 4096 Jan 8 10:09 xu
[xu@localhost tmp]$ rm -rf vanko
rm: cannot remove `vanko': Operation not permitted
[xu@localhost tmp]$ rm -rf xu

Linux账号和权限管理的更多相关文章

  1. Linux账号和权限管理(第二回合)

    一.组账号文件二.添加组账号groupadd三.添加删除组成员gpasswd四.删除组账号groupdel五.查询账号信息finger六.文件/目录的权限和归属七.设置文件和目录的归属chown 一. ...

  2. Linux 服务器用户权限管理改造方案与实施项目

    Linux 服务器用户权限管理改造方案与实施项目 在了解公司业务流程后,提出权限整改方案改进公司超级权限root泛滥的现状. 我首先撰写方案后,给boss看,取得boss的支持后,召集大家开会讨论. ...

  3. Linux用户和权限——管理用户和用户组的命令

    Linux用户和权限——管理用户和用户组的命令 摘要:本文主要学习了在Linux系统中管理用户和用户组的命令. useradd命令 useradd命令可以用来创建新用户. 基本语法 useradd [ ...

  4. Linux用户和权限——管理文件权限的命令

    Linux用户和权限——管理文件权限的命令 摘要:本文主要学习了Linux中修改文件权限的命令. chown命令 chown命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件( ...

  5. Linux用户组和权限管理

    Linux用户组和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.Linux的安全模型 1>.安全3A 这并不是Linux特有的概念,在很多领域都有3A的概念 ...

  6. 简单的Linux的用户权限管理

    企业生产环境用户权限集中管理方案案例 建立中要添加如下的项目经验: 在了解公司业务流程后,提出权限整改解决方案,改进公司超级用户Root权限泛滥的问题. 我首先写好方案后,给老大看,取得老大的支持后, ...

  7. linux用户及权限管理

    [文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...

  8. Linux用户和权限管理看了你就会用啦

    前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 没想到上一篇能在知乎获得千赞呀,Linux也快期末考试了,也有半个月没有写文章了.这篇主要将Linux下的用户和权限知识点再整理 ...

  9. Linux 用户账号与权限管理

    在Linux中,如何管理用户.管理权限?请看下文,谢谢配合. 用户.组概述 用户分类 超级用户:root,人为交互最高权限用户,system为最高权限用户. 普通用户:通过管理管理员创建,权限受到一定 ...

随机推荐

  1. 【Shell】总结·linux shell脚本攻略

    第一章:小试牛刀 #变量赋值 var = value不同于var=value 把var=value写成var = value是一个常见的错误 前者是赋值操作,后者是相等操作 #let命令可以直接执行基 ...

  2. 【转】Pycharm创建py文件时自定义头部模板

    File->settings->Editor->File and Code Templates->Python Script #!/usr/bin/env python # - ...

  3. Python获取间隔时间段的时间戳数据

    import time import datetime today = datetime.datetime.now() # delta = datetime.timedelta(hours=1) de ...

  4. Android开发(十)——像素单位dp、px、pt、sp的比较

    dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖 ...

  5. django源码解析之 BooleanField (三)

    def __init__(self, *args, **kwargs): kwargs['blank'] = True if 'default' not in kwargs and not kwarg ...

  6. java中常用的16个工具类

    1. org.apache.commons.io.IOUtils:处理io流的相关操作 closeQuietly ( ) toString ( ) copy ( ) toByteArray ( ) w ...

  7. c语言二分法

    #include <stdio.h> #include <stdlib.h> int Search(int *a,int key) { ,mid; ; while(low< ...

  8. [转]javaweb学习总结(二十九)——EL表达式

    原文地址:https://www.cnblogs.com/xdp-gacl/p/3938361.html 一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获 ...

  9. JSP_运维_JSP项目部署到server(适合0经验新手)

    实战:真正server端部署jsp项目经验总结与记录(完整过程从0到10适合对server端部署0经验新手) jsp+tomcat+mysql项目部署到真正server; servermysql安装; ...

  10. Spark编程指南

    1.在maven里面添加引用,spark和hdfs的客户端的. groupId = org.apache.spark artifactId = spark-core_2.9.3 version = 0 ...