Linux的用户,组及文件权限管理

Linux用户与组的创建,删除,属性修改,文件权限管理

 

Linux的用户和组管理

Linux的用户有两种,分别是系统管理员和普通用户,其中普通用户又分为系统用户和登陆用户;

系统用户:系统用户从不登陆系统,是用来执行某些进程服务的账号

登陆用户:用户通过输入账号密码登陆

用户创建时系统至少会为其分配两个id号,一个是用户id即UID,一个是组id,即GID

普通用户登陆是是通过输入账号密码进行登陆,Linux系统识别的并不是账号,而是识别用户创建时系统分配的用户id号即UID,其中UID分类如下:

系统管理员:root,其id号是0;

普通用户:id为1-65535

        系统用户id:1-499(centOS 6),1-999(centOS 7)

        登陆用户id:500以上(centOS 6),1000以上(centOS 7)
GID分类与UID差不多:

系统管理员:root,其id号是0;

普通用户:id为1-65535

        系统组id:1-499(centOS 6),1-999(centOS 7)

        非系统组id:500以上(centOS 6),1000以上(centOS 7)
一个用户可以属于多个组,分别为主组和附加组,主组名与用户名相同,主组以外的组就是附加组。但是一个用户只能有唯一一个UID号。

相关的配置文件:

/etc/passwd:用户账号的相关信息

/etc/group:用户组的相关信息

/etc/shadow:用户密码相关信息,加密后存放

/etc/gshadow:用户组密码的相关信息

useradd

  • 添加用户
  • -u:创建用户时指定其uid
  • -g:创建用户时指定其基本id,此组要事先存在
  • -c:创建用户时给用户添加附加组,多个组用逗号隔开
  • -d:创建用户时指定其家目录,通过复制/etc/skel并重命名实现,指定的家目录如果事先存在则不会为用户复制huanj环境配置文件
  • -s:创建用户时指定其默认shell
  • -r:创建系统用户
  • useradd -D:显示创建用户时的默认配置
  • useradd -D:选项:修改默认配置 useradd -D -s /bin/csh 修改默认shell为csh
  • 修改结果保存在/etc/default/useradd中

usermod

  • 修改用户属性信息
  • -u:修改用户的uid
  • -g:修改用户所属的基本组
  • -G: 修改用户所属的附加组,原来的附加组会被覆盖
  • -a:用于给用户追加新的附加组,与-G一同使用
  • -c:修改注释信息
  • -d:修改用户的家目录,原有的家目录不会被移动至新的家目录
  • -m:与-d一同使用,将原有的家目录移动至新的家目录
  • -l:修改用户名
  • -s:修改用户默认的shell
  • -L:锁定用户的密码,即在原来用户的密码字符串前加上‘!’
  • -U:解锁用户的密码

userdel

  • 删除用户
  • -r:删除用户时连同家目录一起删除

passwd

  • 修改用户密码
  • passwd username:修改指定用户的密码,仅root有此权限
  • -l,-u:锁定和解锁用户密码
  • -d:清除用户密码
  • -e DATE:过期期限
  • -i DATE: 非活动期限
  • -n DATE:密码最短使用期限
  • -x DATE:密码最长使用期限
  • –stdin:echo “passwd” | passwd –stdin USERNAME 通常在写脚本是会以此方式给用户添加密码

groupadd

  • 添加组
  • -g:创建组时指定组id,默认是上一个GID+1
  • -r: 创建系统组

groupmod

  • 修改组信息
  • -g:修改GID
  • -n:修改组名

groupdel

  • 删除组
  • groupdel [OPTION] groupname

gpasswd

  • 设置组密码
  • 用法:gpasswd group
  • -a USERNAME:在组中添加用户
  • -d USERNAME:在组中移除用户

id

  • 显示用户相关id号信息
  • -u:显示用户有效的UID
  • -G:显示用户所属的所有组id
  • -g:显示用户的GID
  • -n:显示用户的名字

su

  • 切换用户
  • su USERNAME:以非登录式的方式切换用户,不会读取用户的配置信息
  • su – USERNAME:以登录的方式切换用户,读取用户的配置信息
  • su USERNAME -c ‘COMMMAND’:以用户‘USERNAME’的身份执行‘COMMAND’

chage

  • 更改用户密码过期信息
  • chage [option] 登录名

newgrp

  • 临时切换到指定组为基本组
  • newgrp [-] [group]
  • -:会模拟用户重新登录以实现重新初始化其工作环境

目录或文件权限管理

文件或者目录的权限可通过ls -l命令查看;一般文件属于三类用户,分别是u(属主),g(属组),o(其他用户)
例如:drwxr-xr-x 3 user group 102 Mar11 22:56 Filename
drwxr-xr-x
  • d:文件类型,d代表该文件为为目录
  • rwx:文件对应属主的权限,r:可读,w:可写,x:可执行
  • r-x:文件对应属组的权限,r:可读,-:不可写,x:可执行
  • r-x:文件对其他用户的权限,r:可读,-:不可写,x:可执行

chmod

  • 修改文件或目录的权限
  • 用法:chmod [option] mode[mode] file
  • 赋权表示法:操作一类用户的所有权限
  • 例: chmod u=rwx file chmod a=rwx file
  • 授权表示法:操作一类用户的一个权位
  • 例:chmod u+r file chmod g-r file
  • option: -R 递归修改
  • 参考其他文件的属性修改目标文件:
  • chmod [option] …–reference=RFILE(参考的文件) file(目标文件)

chown

  • 修改文件的属主属组
  • 用法:chown [option]…[owner][:group] file
  • 参考其他文件的属性修改目标文件:
  • chown [option] …–reference=RFILE(参考的文件) file(目标文件)
  • 选项:-R 递归修改,目录下的文件也一同修改

chgrp

  • 修改文件的属主属组
  • 用法:chgrp [option]…[owner][:group] file
  • 参考其他文件的属性修改目标文件:
  • chgrp [option] …–reference=RFILE(参考的文件) file(目标文件)

umask

  • 文件权限的反向掩码,遮掩码
  • 文件默认权限:666减去mask
  • 目录默认权限:777减去mask
  • 注:文件默认权限使用666减去mask是因为文件本身不能有执行权限,如果减的结果中有执行权限则需要将其加一
  • 例如:umask是023
  • 此时666减去023得643,有执行权限,则将其加一变成644
  • umask:查看当前umask
  • umask UMSK:设置umask
  • 注:此类设置只对当前shell进程有效

mktmp

  • 创建临时文件
  • 用法:mktmp [option] [template]
  • 选项:-d 创建临时目录
  • 例如:mktmp file.XXX , 其中XXX用来生成随机字符

ps:

Linux系统文件类型

通过ls -l命令查看:

  • -:常规文件
  • d:目录文件
  • b:块设备文件
  • c:字符设备文件
  • l:链接文件
  • p: 命令管道
  • s:套接字文件

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91628

(0)
galamgalam
上一篇 2018-02-23
下一篇 2018-02-24

相关推荐

  • 第一次写的linux脚本

    刚开始学的时候,都是一些基本的命令,总是无法把它们联系到一块去,现在刚开始接触脚本,顿时感觉压力好大,基础命令如果记不牢,很有可能就挂了,下面我把近几天学习的一些脚本命令及练习拿来分享一下,供大家参考,同时加深我的记忆。 首先是写脚本的格式,我这里用vim编辑器来写的脚本,因为它的色彩非常明艳,易于区分。基本格式如下: #!/bin/bash 第一行一般为调…

    Linux干货 2017-08-05
  • linux发展简史

    前言 为什么要写这么一篇文章呢?我发现我虽然知道linux的一些知识,却不知道linux方面的历史,所以今天写一篇关于linux方面历史的文章,用来总结这段时间自己所学习到的关于linux的历史与linux的知识。关于说起linux的历史,就不得不介绍计算机的历史,与其他相关操作系统的一些历史,所以本文中的会简单介绍Linux与其他操作系统的关系。主要讲li…

    Linux干货 2017-02-16
  • Linux网络管理&脚本编程之执行流程、循环

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥(Bridge):是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switc…

    Linux干货 2016-11-14
  • Http请求流程

    1、http请求流程 1.连接 当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端口建立的,所以之前还有一个DNS解析过程,把www.mycompany.com变成ip,如果url里不包含端口号,则会使用该协议的默认端口号。 DNS的过程是这样的:首先我们知道我们本地的机器上在配置网络时都会填写DNS,这样本机就会把这个…

    Linux干货 2017-02-13
  • 磁盘和文件系统创建

    磁盘结构:主要是由盘体、控制电路、接口部件等组成。盘体里面封装了多个盘片的腔体;控制电路包含硬盘BIOS、主控芯片和硬件缓存等单元;接口部件包含电源、数据接口主从跳线等。读取硬盘数据时,主轴电机带动盘片旋转,副轴电机带动磁头臂将磁头放到相应的数据存放的柱面和磁道上,再由磁头读出相应扇区中的数据。(图1-1) 磁道(track):每个盘面被划分成了多个同心圆环…

    Linux干货 2016-02-14
  • ansible实践

    本偏文章以上图拓扑部署 首先准备了6台为centos7的主机(确保selinux和iptables不会成阻碍!关闭他们) 我们先来安装ansible吧! 配置EPEL源过后使用 yum -y install ansible  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 出师不利啊,安装ansible就失败了。!!!!!! 看了一下…

    Linux干货 2017-01-27