文章目录

  • 用户管理
    • 配置文件
    • 创建用户
    • 查看用户账号信息
    • 修改账户属性
    • 删除用户
    • 切换用户
      • bash配置文件
    • 密码管理
    • 修改用户密码期限
    • 密码生成工具
  • 组管理
    • 创建组
    • 修改组信息
    • 删除组
    • 给组设密码
    • 切换组
  • 权限管理
    • 权限的二进制十进制转换
    • 修改权限
    • 遮罩码
    • 特殊权限
      • SUID
      • SGID
      • Sticky
    • facl
  • 管理命令

用户管理

配置文件

字符段\配置文件 /etc/shadow /etc/passwd /etc/group
第一个字段 登录名 用户名 组名
第二个字段 加密后的密码 密码占位符 组密码
第三个字段 最近一次更改密码的日期 UID GID
第四个字段 密码的最小使用期限 GID 以当前组为附加组的用户列表(分隔符为逗号)
第五个字段 密码的最大使用期限 用户的描述信息
第六个字段 密码警告时间段 用户家目录
第七个字段 密码禁用期 用户的登录shell
第八个字段 帐号的过期日期
第九个字段 保留字段

例:

jay   :     x    :1000:1000:   jay   : /home/jay :/bin/bash
用户名  密码占位符  UID  GID  注释信息   用户家目录  执行shell
  • 每个用户都有一个ID,就像是我们的身份证号码,是唯一的
  • root用户的UID、GID都是0
  • 用户分为
    • 系统用户:用户ID在1-999
    • 登录用户:用户ID在1000-60000

创建用户

useradd

  • 语法:useradd [选项] 用户名
  • 常用选项;
    • -u 指定uid
    • -g 指定拥护所属基本组、组名或GID
    • -G 组名 为用户添加附加组,附加组必须事先存在
    • -c “注释信息” 添加注释信息
    • -d 目录 指定用户的家目录。此目录必须不能事先存在,否则将不会从/etc/skel中复制环境设置文件
    • -s shell 指定登录shell
    • -M 创建用户时不给其创建家目录
    • -r 添加一个系统用户
[root@bad test]# id jay  //查看用户jay的详细信息
uid=1000(jay) gid=1000(jay) 组=1000(jay)
[root@bad test]# useradd -u 1005 -g jay -G user lili  //创建用户lili,指定uid为1005,基本组为jay组,附加组为user
[root@bad test]# id lili
uid=1005(lili) gid=1000(jay) 组=1000(jay),1001(user)
[root@bad test]# ls /home/
jay  lili  bad
[root@bad test]# ls /opt/
rh
[root@bad test]# useradd -d /opt/tom tom  //创建用户,指定家目录为/opt/tom
[root@bad test]# ls /opt/
rh  tom
[root@bad test]# id tom
uid=1006(tom) gid=1006(tom) 组=1006(tom)
[root@bad test]# useradd -s /bin/sh lisi  //创建用户lisi指定执行shell为/bin/sh
[root@bad test]# su - lisi
-sh-4.2$
[root@bad test]# useradd -M -s /sbin/nologin -r jerry  //创建一个系统用户jerry不创建家目录,指定shell不允许登录系统,
[root@bad test]# id jerry
uid=992(jerry) gid=990(jerry) 组=990(jerry)
[root@bad test]# ls /home/
jay  lili  lisi  bad
[root@bad test]# su jerry
This account is currently not available.
[root@bad test]# vim /etc/login.defs  //默认配置
  • 在创建用户时,会默认创建一个相同名的组,这个组叫私有组也叫基本组
  • 除了基本组,用户还可以被加到其他组,这个组叫附加组
    创建了一个用户,我们要怎么看是否创建成功了呢?这个时候,就会用到id命令了。

查看用户账号信息

id

  • 语法:id [选项] 参数
  • 常用选项:
    • -u 查看UID
    • -g 查看GID
    • -G 查看Groups
[root@bad test]# id -u jerry
992
[root@bad test]# id -g jerry
990
[root@bad test]# id -G jerry
990

修改账户属性

usermod

  • 语法:usermod [选项] 用户名
  • 常用选项:
    • -u 修改uid
    • -g 修改gid
    • -a -G 添加附加组,不使用-a选项,会覆盖此前的附加组
    • -d -m 改变用户家目录的同时把原来家目录的文件移动到新的家目录中
    • -e YYYY-MM-DD 指明用户帐号过期日期
    • -f INACTIVE 设定非活动期限
    • -L 锁定帐号。被锁定的帐号在/etc/shadow文件中密码前面会有一个感叹号
    • -U 解锁帐号
[root@bad test]# id bad  //查看用户详细信息
uid=1001(bad) gid=1001(user) 组=1001(user)
[root@bad test]# usermod -u 1005 bad  //修改uid为1005
[root@bad test]# id bad
uid=1005(bad) gid=1001(user) 组=1001(user)
[root@bad test]# usermod -g 1000 bad  //修改gid为1000
[root@bad test]# id bad
uid=1005(bad) gid=1000(jay) 组=1000(jay)
[root@bad test]# usermod -G user bad  //添加附加组为user
[root@bad test]# id bad
uid=1005(bad) gid=1000(jay) 组=1000(jay),1001(user)
[root@bad test]# groupadd a  //创建新组为a
[root@bad test]# usermod -G a bad  //给用户bad指定附加组a
[root@bad test]# id bad
uid=1005(bad) gid=1000(jay) 组=1000(jay),1002(a)
[root@bad test]# usermod -aG user bad  //再原附加组的基础上添加附加组
[root@bad test]# id bad
uid=1005(bad) gid=1000(jay) 组=1000(jay),1001(user),1002(a)
[root@bad ~]# tail -3 /etc/passwd  //查看密码配置文件
tcpdump:x:72:72::/:/sbin/nologin
jay:x:1000:1000:jay:/home/jay:/bin/bash
bad:x:1005:1000::/home/bad:/bin/bash
[root@bad ~]# usermod -c "hello bad" bad  //为用户bad添加注释信息
[root@bad ~]# tail -3 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
jay:x:1000:1000:jay:/home/jay:/bin/bash
bad:x:1005:1000:hello bad:/home/bad:/bin/bash

删除用户

userdel

  • 语法:userdel [选项] 用户名
  • 选项:
    • -r 删除用户的同时删除其家目录
[root@bad test]# ls /home/  //查看家目录下的目录里
jay  lili  lisi  bad
[root@bad test]# userdel -r lili  //删除用户,并删除家目录
[root@bad test]# ls /home/
jay  lisi  bad

如果我们在删除用户的时候,没有删除其家目录,那么在/home目录下,还是依旧会看到我们创建的用户的目录。可以将目录删除,或者重新建一个同名的用户,重新删除用户。

切换用户

su

切换用户的方式 特点
su 用户名 非登录式切换,即不会读取目标用户的配置文件
su - 用户名 登录式切换,即会读取目标用户的配置文件。完全切换
su - 不指定用户时默认切换至root用户
[root@bad test]# su - jay  //切换jay用户,并切换到jay的家目录
上一次登录:日 10月 20 15:45:30 CST 2019:0 上
[jay@bad ~]$ pwd  //查看当前位置
/home/jay
[jay@bad ~]$ exit
登出
[root@bad test]# su jay  //切换用户,不切换目录
[jay@bad test]$ pwd
/root/test
[jay@bad test]$ su -  //不指定用户默认为root用户
密码:
上一次登录:四 11月  7 00:40:36 CST 2019pts/0 上
[root@bad ~]# whoami  //查看当前登录用户
root
  • 语法:su - 用户名 -c '命令'

    • 切换身份执行命令,命令执行结束后又回到原来的身份
[root@bad ~]# su - bad -c 'touch abc'
[root@bad ~]# ll /home/bad/
总用量 0
-rw-r--r--. 1 bad jay 0 11月  7 14:07 abc

root用户切换至其他用户时,是不需要密码的。但是其他的用户想要切换别的用户,需要输入切换的用户的密码

sudo

  • 配置文件:/etc/sudoers
  • 语法:sudo 选项 命令
  • 选项:
    • -V 显示版本编号
    • -h 会显示版本编号及指令的使用方式说明
    • -l 列出当前用户可以使用的所有sudo类命令
    • -v 在第一次执行时或是在N分钟内没有执行(N默认为5)会问密码
    • -k 使认证信息失效,如果不指定-k,默认认证信息在5分钟后失效
    • -b 将要执行的指令放在后台执行
    • -u 用户名 //以指定的用户名执行命令,默认为root

bash配置文件

配置文件类型 配置文件路径
全局配置 /etc/profile、/etc/profile.d/*.sh、/etc/bashrc
个人配置 ~/.bash_profile、~/.bashrc
配置文件类型 功能
profile类 为交互式登录的shell提供配置,用来设定环境变量、运行命令或脚本
bashrc 为非交互式登录的shell提供配置,用来设定本地变量、定义命令别名

在RHCE的考试中,为了保险起见,通常会写一个脚本,以保证我们所做的服务配置,能够在机器重启之后挂载成功。而这个脚本需要执行就会放在全局配置文件中,以及命令别名都会涉及到这里。

密码管理

passwd

  • 语法:passwd [选项] username
  • 选项:
    • --stdin 从标准输入获取用户密码
    • -l 锁定用户
    • -u 解锁用户
    • -d 删除用户密码
    • -n mindays 指定最短使用期限
    • -x mandays 指定最长使用期限
    • -w warndays 提前多少天开始警告
    • -i inactivedays 非活动期限,密码过期后到禁用前的这段时间

这里没有举例,可以自己练习,可以在/etc/shadow中查看修改的用户的详细信息

修改用户密码期限

chage

  • 用于修改用户密码过期信息的命令
  • 语法:chage [选项] username
  • 选项:
    • -d 最近一次的修改时间
    • -E 过期时间
    • -I 非活动时间
    • -m 最短使用期限
    • -M 最长使用期限
    • -W 警告时间

这条命令我用到过的比较少,但是工作应该用的会多一点。

密码生成工具

openssl

  • openssl 密码生成工具
  • 语法:openssl command [ command_opts ] [ command_args ]
  • 选项:
    • command 包含标准命令、消息摘要命令、加密命令
    • version 查看程序版本号
    • dgst 提取特征码
    • passwd 生成密码
    • rand 生成伪随机数
//提取特征码
[root@bad ~]# openssl dgst -md5 /etc/fstab
MD5(/etc/fstab)= a977cc5e638d779ed880f3fee6d7067e//生成密码 openssl passwd -1 -salt string        //string一般为8位
[root@bad ~]# openssl passwd -1 -salt hellotom
Password:
$1$hellotom$HpEDmPGqWwhP/eHg0kJHA0//生成随机数 openssl rand -base64 NUM
//NUM表示随机数的长度
[root@bad ~]# openssl rand -base64 20
S/q8tjUSBuUNHb+0cgDX66dbvTQ=

组管理

创建组

groupadd

  • 语法:groupadd [选项] groupname
  • 选项:
    • -g GID 指定GID
    • -r 添加一个系统组

修改组信息

groupmod

  • 语法:groupmod [选项] groupname
  • 选项:
    • -g GID 指定GID
    • -n groupname 修改组名

删除组

groupdel

  • 语法:groupdel groupname

给组设密码

gpasswd

  • 语法:gpasswd [选项] group
  • 选项:
    • -a username 将用户添加至组
    • -d username 将用户从组中删除
    • -r -passwd 删除组密码

切换组

newgrp

  • 语法:newgrp groepname

这条命令我几乎没有用过。当你以以一个非root的用户登录,可以使用这条命令临时切换到新的基本组,但是需要输入要切换的基本组的密码。使用exit就可以退出新的基本组,回到当前用户原本的基本组。

权限管理

那权限怎么看呢?其实很简单,在使用ll命令的时候,是不是发现文件显示一大串?那么最前面的一列就是。第一个字符表示文件类型,之后的九位就表示权限。

  • 首先我们要知道,文件的权限主要针对的对象

    • u(owner)属主,即文件拥有者
    • g(group)数组,即文件拥有的组
    • o(other)其他用户,即除文件拥有者及拥有者所属组之外的所有用户
  • 每个文件或者目录都有三种权限

    • r 可读
    • w 可写
    • x 可执行

注意!在RHCSA的题目中,有涉及到设置权限的题,其中有一个坑就是要你给目录可读的权限。因为是个目录,如果可读,那么就一定有执行权限,因为你要进入到目录中去才可以查看目录中的内容。

权限的二进制十进制转换

  • 不要慌,进行进制转换,是为了帮助我们更好的理解权限
权限 二进制 十进制
000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7
  • 权限通常有两种表达方式,一种是用字母rwx来表示,还有一种就是用十进制数来表示

不要看着这么多就慌了,记不住怎么办?我在刚开始学的时候,权限完全是懵逼的,但是只要你理解了,也就很简单。无非就读写执行,421。数字表示就是自由组合了。

修改权限

chmod

  • 即change modify,修改
  • 语法:chmod[选项] 文件或目录
  • 选项:
    • -R 递归修改权限,修改目录及目录中的文件权限时需要

chown

  • 即change owner,修改属主,也可以修改属组
  • 语法:chown 用户名 文件名 //修改属主
  • 语法:chown 用户名.组名 文件名 //修改属主和属组,中间有
  • 选项:
    • -R 递归修改权限

在RHCSA中,会有一道题是需要修改文件的属主和属组的。

chgrp

  • 语法:chown [选项] 组名 文件名
  • 选项:
    • -R 递归修改

这条命令我们一般使用的少,一般都是直接使用的chown

遮罩码

  • 这个其实就是将文件的权限进行一个隐藏,能更安全

  • 有个变量叫umask,默认值为0022

  • 文件最终权限是:666-umask

  • 目录最终权限是:777-umask

    文件默认是不能具有执行权限的,如果算得结果有执行权限,则将其权限整体+1

特殊权限

SUID

  • 针对可执行的程序文件

    • 程序启动的进程的属主是程序文件自身的属主,不是启动者为属主

      • chmod u+s 文件
      • chmod u-s 文件
      • chmod 4755 文件

如果文件本身拥有执行权限,则显示SUID为s,否则为S

SGID

  • 针对目录

    • 用户创建文件时,属组为此用户所属的基本组

      • chmod g+s 目录
      • chmod g-s 目录
      • chmod 2755 目录

如果目录本身拥有执行权限,则显示SGID为s,否则为S

Sticky

  • 针对目录

    • 在一个公共目录,每个人都能创建文件,删除自己的文件,但是不能删除别人创建的文件

      • chmod o+t 目录
      • chmod o-t 目录
      • chmod 1755 目录

如果目录本身拥有执行权限,则显示Sticky为t,否则为T

后面两种权限在RHCSA中都会有相关的题目,需要掌握。

一般不会使用7755权限

facl

  • Filesystem Access Control List,文件系统访问控制列表
  • 语法:setfacl [选项] 语法 文件名
    • -m 设定

      • u:用户名:权限
      • g:组名:权限
    • -x 取消特殊权限

      • u:用户名
      • g:组名
    • -b Remove all 即清除所有特殊权限

  • 如果要为某个目录设定默认的访问控制列表,则设定时在u或g前面加上d
  • setfacl -m d:u:test:rw 文件名

设置特殊权限也是RHCSA中必考的题目,需要多练习。

管理命令

  • w 显示当前系统登录用户,以及在做什么
  • sleep 睡眠
    • sleep 数字

      • s 秒,默认
      • m
      • h 小时
      • d

写脚本为防止上一个命令没执行完下一命令就开始执行时可以加上sleep表示停顿#秒后再执行后面的命令

  • last 显示/var/log/wtmp文件,显示用户登录历史及系统重启历史

    • -n # 显示最近#次的相关信息
  • lastb 显示/var/log/btmp文件,显示用户错误的登录尝试
    • -n # 显示最近#次的相关信息
  • lastlog 显示每个用户最近一次成功登录信息
    • -u 用户名 //显示特定用户最近的登录信息
  • basename //显示路径基名
[root@bad test]# ls
abc  test
[root@bad test]# ll abc
-rw-r--r--. 1 root root 0 11月  9 10:00 abc
[root@bad test]# chown jay abc
[root@bad test]# ll
总用量 0
-rw-r--r--. 1 jay  root 0 11月  9 10:00 abc
drw-------. 2 root root 6 11月  9 09:32 test
[root@bad test]# chown .jay abc
[root@bad test]# ll abc
-rw-r--r--. 1 jay jay 0 11月  9 10:00 abc
[root@bad test]# chown root.root
chown: "root.root" 后缺少操作数
Try 'chown --help' for more information.
[root@bad test]# chown root.root abc
以上内容均属原创,如有不详或错误,敬请指出。
本文作者: 坏坏
本文链接: https://blog.csdn.net/qq_45668124/article/details/104567687
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

Linux用户与组管理、权限管理、管理命令相关推荐

  1. Linux用户和组:linux用户和组及权限讲解

    linux用户和组及权限讲解 Linux用户和组概念精讲 Linux用户和组实战应用 Linux系统用户权限管理 Linux用户和组概念精讲 Linux是一种多用户的操作系统(服务器系统),允许多个用 ...

  2. linux 用户、组、权限基本权限

    linux用户.组.权限等简单操作 1.groupadd student useradd -g student -d /usr/local/stu1 -m stu1 echo "123456 ...

  3. Linux文件管理、标准I/O重定向和管道以及Linux用户、组和权限知识总结

    一.文件管理 1.1.Linux下的文件类型 ● -  普通文件 ● d 目录文件directory ● b 块设备blocks ● c字符设备character ● |符号链接文件link ●p管道 ...

  4. linux用户、组、权限问题

    用户.组.权限 一.权限:r, w, x 1.文件权限:       r:可读,可以使用类似cat等命令查看文件内容:       w:可写,可以编辑或删除此文件:       x: 可执行,eXac ...

  5. linux 权限 mask,【自学Linux】Linux用户、组、权限(一)

    用户.组.权限 权限:r,w,x 文件: r:可读,可以使用类似cat等命令查看文件内容 w:可写,可以编辑或删除此文件 x:可执行,eXacutable,可以命令提示符下当中命令提交给内核运行 0 ...

  6. linux修改组的选项名字为,Linux用户、组及权限管理浅析

    一.用户和组 1.用户 系统用来认证(Authentication),授权(Authorization),审计(Autition)的帐号.通过登录用户来登录系统.操作系统通过登录不同的用户来调用相对应 ...

  7. Linux用户、组和权限管理

    Linux用户和权限管理 基础知识 Linux用户 管理员:root 0 普通用户:1-65535 系统用户:Centos6:1-499,Centos7:1-999 登录用户:Centos6:500+ ...

  8. 04 linux用户群组和权限

    作业一: 1)新建用户natasha,uid为1000,gid为555,备注信息为"master" 2)修改natasha用户的家目录为/Natasha 3)查看用户信息配置文件的 ...

  9. linux 用户和组的相关文件和命令

    文章目录 用户和组 一.四个文件 1./etc/passwd文件 2./etc/shadow文件 3./etc/group 4./etc/login.defs 二.相关命令 1.useradd:新建用 ...

  10. linux用户和组、权限常用命令

    一:系统用户操作命令 1.创建用户和密码 (1)useradd 用户名 (2)Passwd 用户名(回车输入两次密码) 2.切换用户: su 用户名 3.修改用户的主组(起始组).附加组 修改主组: ...

最新文章

  1. 两种语言实现设计模式(C++和Java)(三:策略模式)
  2. 生鲜在卖场中的六大类别
  3. mapreduce介绍_MapReduce:简单介绍
  4. java判断是否空值
  5. StreamDM:基于Spark Streaming、支持在线学习的流式分析算法引擎
  6. android系统(63)---Jobscheduler运行机制详解
  7. 分级时间轮优化普通时间轮定时器(2):滴答式分层计时轮
  8. 小论坛 之Linux服务器搭建Apache PHP mysql 环境
  9. 数据结构期末复习第一章绪论
  10. MySQL查询时当offset较大时查询效率低
  11. zbb20180815 网盘搜索引擎
  12. 金蝶计算机会计实验报告总结,会计实训总结(精选5篇)
  13. vue实现复制到剪切板的功能
  14. 小仲马《茶花女》读后感
  15. kru生成树变种 poj3522 bzoj 1196
  16. 淘淘商城第75讲——添加商品同步到索引库以及消息机制测试
  17. 平面设计师笔试题应答技巧|智测优聘总结
  18. 他是阿里年头最久的越南小二,从中供铁军学到地推秘诀
  19. 安全TEE下的GIC-400(一)
  20. 微信小程序获取附近商家

热门文章

  1. 可验证随机函数 VRF
  2. hdr与sdr_sdr和hdr区别
  3. java毕业生设计在线玩具租赁系统计算机源码+系统+mysql+调试部署+lw
  4. 设计模式の建造者模式
  5. 2021-08-23王汕8.23现货黄金晚间行情走势分析,期货原油实时趋势交易策略
  6. app 隐私 自我评估指南_在线隐私入门指南
  7. 《啊哈算法》第三章--枚举很暴力
  8. Ubuntu下使用PlatformIO开发STC89/STC12/Arduino
  9. 使用el-tree支持保留源节点的拖放操作
  10. 一分钟解决HbuilderX运行到微信开发者工具时报错提示:fail to open IDE