Linux:操作系统用户权限(useradd、usermod、userdel、groupadd、groupmod、chown、id、uid、sudo)

01. 系统启动流程

1、开机自检
2、MBR引导
3、grub菜单(内核 进入单用户模式)
4、加载内核
5、启动系统的第一个进程init/systemd
6、自动加载系统运行级别
7、加载初始化脚本
8、运行相应的自启动服务
9、加载显示登陆界面进程

2) 系统用户管理

   a 用户的分类
   b 数据文件权限说明(rwx)
     文件权限:(更多关注一定要有read权限)
     read  读文件内容的能力 (有了读文件block能力)
     write 写文件内容的能力(有了读文件block能力)   重命名文件???
     execute 执行文件的能力(脚本文件)
     补充: 文件是否可以编辑查看,和上一级或上n级目录有关
     读取文件数据原理 / oldboy/ oldboy01/ oldboy.txt

     目录权限:(更多关注一定要有执行权限)
     read  读取目录下文件属性信息
     write 可以在目录中创建或删除数据
     execute 可以切换进入到目录中

3) 文件数据权限修改方法

   chmod u/g/o + - = rwx   --- 针对不同用户进行设置
   chmod a + - = rwx       --- 全部用户统一设置权限
   chmod 644 xxx           --- 全部用户统一设置权限(更加灵活)  

4) 文件的默认权限是如何设置

   文件是: 644  666-umask(奇数+1)
   目录是: 755  777-umask
   umask(内置命令): 可以影响系统数据默认权限
   umask如何永久设置
   if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]
          条件一
   then
       umask 002
   else
       umask 022
   fi

   $UID: 显示当前登录系统用户id数值
   判断比较符号
   -gt greater than  >
   -lt less than     <
   -eq equal         ==
   -ge greater && equal >=
   -le less && equal    <=
   -ne not equal     <>
   /usr/bin/id -gn  -- 显示当前用户的组名
   /usr/bin/id -un  -- 显示当前用户名称

   if 判断的条件(有>100万) && 长得帅
   then
      娶到好看的女生
   else
      是个女的就行
   fi
   

5) 特殊的目录: /etc/skel 样板房

   用户家目录都参照样板房设计
   用户家目录中特殊文件:
   -rw-------.  1 oldboy oldgirl 1454 Apr 24 09:12 .bash_history   --- 历史命令记录文件
   曾经输入的历史命令保存位置:
   01. 保存在内存中      histroy
       history -c
   02. 保存在磁盘文件中: .bash_history 

   -rw-------.  1 oldboy oldgirl  651 Apr 23 10:16 .viminfo        --- vim样式设置
   自动加载文件样式信息
   #!/bin/bash
   # 编写人: oldboy
   # 编写时间: 2019
   # 脚本作用: 

02. 系统中和用户相关的文件

/etc/passwd***** --- 记录系统用户信息文件

[[email protected] oldboy]# head /etc/passwd
root    :x  :0  :0  :root       :/root              :/bin/bash
bin     :x  :1  :1  :bin        :/bin               :/sbin/nologin
daemon  :x  :2  :2  :daemon     :/sbin              :/sbin/nologin
adm     :x  :3  :4  :adm        :/var/adm           :/sbin/nologin
lp      :x  :4  :7  :lp         :/var/spool/lpd     :/sbin/nologin
01      02  03  04  05          06                  07

解释:

第一列: 用户名
第二列: 用户密码信息
第三列: 用户的uid信息
第四列: 用户的gid信息
第五列: 用户的注释信息
        mysql(manager database user)
        www  (manager web server)
第六列: 用户家目录信息
第七列: 用户登录系统方式
        /bin/bash       --- 通用的解释器
        /usr/bin/sh     --- 等价于/bin/bash
        /usr/bin/bash
        /sbin/nologin       --- 无法登录系统
        /usr/sbin/nologin
/etc/shadow*      --- 系统用户密码文件
/etc/group*       --- 组用户记录文件
/etc/gshadow*     --- 组用户密码信息
       

03. 系统用户相关命令

a 创建用户命令

  useradd oldboy   普通用户被创建出来
  useradd oldboy01 -M -s /sbin/nologin 虚拟用户被创建出来
  -M 不创建家目录
    -s 指定使用的shell方式
  [[email protected]u oldboy]# useradd Alex01 -M -s /sbin/nologin
  [[email protected] oldboy]# id Alex01
  uid=1067(Alex01) gid=1067(Alex01) groups=1067(Alex01)
  [[email protected] oldboy]# grep Alex01 /etc/passwd
  Alex01:x:1067:1067::/home/Alex01:/sbin/nologin
  [[email protected] oldboy]# ll /home/Alex01 -d
  ls: cannot access /home/Alex01: No such file or directory
  useradd Alex03 -u 2000
  -u 指定用户uid数值信息
  [[email protected] oldboy]# id Alex03
  uid=2000(Alex03) gid=2000(Alex03) groups=2000(Alex03)
  useradd Alex04 -u 2001 -g Alex02
  -g 指定用户所属的主要组信息
  [[email protected] oldboy]# id Alex04
  uid=2001(Alex04) gid=1068(Alex02) groups=1068(Alex02)
  [[email protected] oldboy]# useradd Alex05 -u 2002 -g 1068
  [[email protected] oldboy]# id Alex05
  uid=2002(Alex05) gid=1068(Alex02) groups=1068(Alex02)
  [[email protected] oldboy]# useradd Alex07 -u 2004 -g Alex02 -G Alex03
  -G 指定用户所属的附属组信息
  [[email protected] oldboy]# id Alex07
  uid=2004(Alex07) gid=1068(Alex02) groups=1068(Alex02),2000(Alex03)
  useradd mysql -s /sbin/nologin -M -c "manager database"
  -c 添加指定用户注释说明信息
  [[email protected] oldboy]# grep mysql /etc/passwd
  mysql:x:2005:2005:manager database:/home/mysql:/sbin/nologin

b 修改用户信息

  usermod
  -s    修改用户的登录方式
  -g    修改用户的主要的组信息
  -G    修改用户的附属组信息
  -c    修改用户的注释信息

  修改用户shell信息
  [[email protected] oldboy]# usermod Alex02 -s /sbin/nologin
  [[email protected] oldboy]# grep Alex02 /etc/passwd
  Alex02:x:1068:1068::/home/Alex02:/sbin/nologin

  修改用户uid信息
  [[email protected] oldboy]# usermod Alex02 -u 3000
  [[email protected] oldboy]# id Alex02
  uid=3000(Alex02) gid=1068(Alex02) groups=1068(Alex02)

c 删除用户信息

  userdel
  userdel -r Alex04
  -r 彻底删除用户以及用户的家目录
  [[email protected] oldboy]# ll /home/Alex04 -d
  ls: cannot access /home/Alex04: No such file or directory
  [[email protected] oldboy]# useradd Alex04
  

d 用户密码设置方法

  交互式设置密码
  passwd oldboy
  非交互设置密码
  echo 123456|passwd --stdin oldboy

  企业中设置密码和管理密码的方式
01. 密码要复杂12位以上字母数字及特殊符号
02. 保存好密码信息
      keepass
      密码保险柜,本地存储密码
      lastpass
      密码保险柜,在线存储密码
03. 大企业用户和密码统一管理(相当于活动目录AD)
      openldap域
      用户信息统一保存在一个用户管理服务器中 用户的家目录中的文件 用户密码 用户名称
04. 动态密码:动态口令,第三方提供自己开发也很简单。

04. 用户组相关命令

# groupadd 创建用户组
[[email protected] oldboy]# groupadd python
[[email protected] oldboy]# useradd python -g python
[[email protected] oldboy]# id python
uid=3003(python) gid=3003(python) groups=3003(python)   

# groupmod 修改用户组信息
# groupdel 删除用户组信息

05. 用户属主属组设置命令

chown  修改属主和属组信息
[[email protected] oldboy]# ll /etc/hosts
-rw-r--r--. 2 root root 192 Apr 15 12:19 /etc/hosts
[[email protected] oldboy]# chown oldboy.root /etc/hosts
[[email protected] oldboy]# ll /etc/hosts
-rw-r--r--. 2 oldboy root 192 Apr 15 12:19 /etc/hosts

chown -R  递归修改目录属主和属组信息
[[email protected] oldboy]# ll oldboy_dir -d
dr-xr-xr-x. 2 oldboy oldgirl 24 Apr 23 10:36 oldboy_dir
[[email protected] oldboy]# touch oldboy_dir/root.txt
[[email protected] oldboy]# ll oldboy_dir/root.txt
-rw-r--r--. 1 root root 0 Apr 24 11:29 oldboy_dir/root.txt
[[email protected] oldboy]# id Alex01
uid=1067(Alex01) gid=1067(Alex01) groups=1067(Alex01)
[[email protected] oldboy]# chown Alex01.Alex01 oldboy_dir
[[email protected] oldboy]# ll oldboy_dir -d
dr-xr-xr-x. 2 Alex01 Alex01 40 Apr 24 11:29 oldboy_dir
[[email protected] oldboy]# ll oldboy_dir/
total 0
-rw-r--r--. 1 root root 0 Apr 23 10:36 oldboy.txt
-rw-r--r--. 1 root root 0 Apr 24 11:29 root.txt
[[email protected] oldboy]# chown -R Alex01.Alex01 oldboy_dir
[[email protected] oldboy]# ll oldboy_dir -d
dr-xr-xr-x. 2 Alex01 Alex01 40 Apr 24 11:29 oldboy_dir
[[email protected] oldboy]# ll oldboy_dir/
total 0
-rw-r--r--. 1 Alex01 Alex01 0 Apr 23 10:36 oldboy.txt
-rw-r--r--. 1 Alex01 Alex01 0 Apr 24 11:29 root.txt

06. 用户信息查看命令

a id 显示用户信息命令 (uid gid)
b w 显示正在登陆系统的用户信息
  [[email protected] oldboy]# w
  11:33:31 up  6:33,  1 user,  load average: 0.00, 0.01, 0.05
  USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
  root     pts/0    10.0.0.1         08:55    3.00s  0.20s  0.00s w
  01       02       03               04       05         06       07
解释
  01. 什么用户登录到了系统中
  02. 登录的方式
      pts/x 远程登录系统
      tty1  本地登录
      [[email protected] oldboy]# echo "请不要修改恢复hosts文件配置" >/dev/pts/1
  03. 从哪连接的服务器
  04. 登录时间
  05. IDLE 空闲时间
  06. 用户操作系统 消耗的CPU资源时间
  07. 用户在干什么

07. 用户权限说明:

普通用户如何像root用户一些操作管理系统:
01. 直接切换到root账户下管理系统   篡权夺位
02. 直接修改要做的数据文件权限
03. root用户赋予了普通用户权利     大宝剑--sudo
    sudo root用户授权一个能力给普通用户
    a 怎么进行授权:
      visudo
      93 oldboy  ALL=(ALL)       /usr/sbin/useradd, /usr/bin/rm

    b 如何验证oldboy已经获取了root用户能力
      [[email protected] ~]$ sudo -l
      We trust you have received the usual lecture from the local System
      Administrator. It usually boils down to these three things:

          #1) Respect the privacy of others.
          #2) Think before you type.
          #3) With great power comes great responsibility.
      [sudo] password for oldboy:
      User oldboy may run the following commands on oldboyedu:
          (ALL) /usr/sbin/useradd, /usr/bin/rm

    c 执行root用户可以执行的命令
      [[email protected] ~]$ sudo useradd Alex06
      useradd: user 'Alex06' already exists
      [[email protected] ~]$ sudo useradd Alex07
      useradd: user 'Alex07' already exists
      [[email protected] ~]$ sudo useradd Alex08
      [[email protected] ~]$ sudo rm -f /etc/hosts

原文地址:https://www.cnblogs.com/moox/p/12202590.html

时间: 2024-08-04 19:03:19

Linux:操作系统用户权限(useradd、usermod、userdel、groupadd、groupmod、chown、id、uid、sudo)的相关文章

Linux系统用户权限管及目录、文件的管理(基础详解,操作演示,通俗易懂)

用户账号和组账号 Linux系统是基于用户身份对资源访问进行控制,Linux的用户账号分为以下三类: 超级用户:就是root用户,在所有用户中它拥有最大的权限 ,管理着普通用户,可以说你有了一台服务器的root权限,那这台服务器基本就是你的了. 普通用户: 一般用户,其使用系统的权限受限,可以使用root账户对其管理. 程序用户:也叫系统用户,保障系统运行的用户,一般不可人为登录系统. 常用的组账号一般分为两种: 基本组:也叫私有组,一般在创建账号时系统默认给每个账号都创建一个与自己同名的基本组

linux centos 用户权限相关总结

linux上用户管理 以及 相应权限 查看 增加 删除用户 修改密码 用户 用户组 用户默认目录 用户shell路径 等 用户管理 相关文件 1. 查看系统有哪些用户 cat /etc/passwd linux上面的用户都会写在上面这个文件中/etc/passwd 每行表示一个用户 不同字段通过 : 分开 共七个字段 root: x:0:0:root:/root:/bin/bash username:passwd:User Id:Group Id:comment:home dir:shell 字

Centos(Linux)下用户权限委派配置介绍

说到权限委派,对于一个服务的正常运行至关重要,对于企业中经常说到的一句话就是,权限越大,责任越大,当然危害也是最大的,当权限比较的时候误操作会给应用造成灾难性的损害,所以在权限分配上要绝对小心,当然,一般大的企业中,对于权限分配的是非常详细的,对于同一个服务会分不同的操作权限,所以相对来说比较安全的.这样出了问题直接可以找出对应的责任人.今天我们就介绍一下Centos下的用户权限委派,首先我们都知道Centos(Linux)下最大的权限账户为root,类似在windows中环境中的adminis

Linux添加用户/权限/用户主目录等相关

一. 用户主目录 useradd -d   ${path}   username -d命令是指定用户主目录, 添加完之后  su -  username 默认会转到 这个用户的主目录下,即 ${path} 二. 文件目录的 访问用户权限,归属及用户组 root下使用chown更改 三. 待补充

Linux普通用户权限修改

这个关于权限修改的博客到处都是,但是本文主要是针对,配置文件修改过了之后,普通用户还是不能进行创建文件进行的操作. 修改权限,主要是去/etc/sudoers下面进行修改 1.切换到root用户 命令: su 2.给root添加sudoers文件的写权限 命令: chmod 777 /etc/sudoers 3.编辑sudoers文件 命令: vi /etc/sudoers 找到这行 root ALL=(ALL) ALL 在下面添加 username ALL=(ALL) ALL 可添加下面四种任

linux基础 &nbsp; 用户权限列表

#####用户权限列表###### ###1.权限列表的定义#### 指定特殊用户对某个文件有特殊的权限标记表格 ####2.权限列表的识别####### [[email protected] mnt]# ls  -l file -rw-r--r--. 1 root root 0 Nov 16 20:12 file        ###权限位是.表示权限列表未激活 [[email protected] mnt]# getfacl file                ###权限列表查看 # f

Linux/Unix用户权限下放

一般来说,root权限是在系统管理员手中,不能轻易就给了普通用户,但是有时普通用户想做一些高级一点的操作,又得麻烦系统管理员,比如啊,改个程序文件重启个Apache等等. 于是就有了root权限的下放,使得普通用户能够执行root用户才能执行的命令. 一.有效的UID与真实的UID. 当系统管理员在shell环境中运行passwd命令时,shell首先会创建另一个shell进程.新创建的shell进程映像将载入 passwd可执行映像并覆盖自己的映像,passwd进程就开始运行.当一个进程被创建

linux基础篇-09,组管理groupadd groupmod groupdel groupwd

用户组管理 groupadd groupmod groupdel groupwd ################################################ 用户组类别 管理员组 普通组 系统组 一般组 ################################################ 用户组类别: 私有组:系统自动创建一个和用户名同名的组 用户基本组:默认组 附加组:默认组以为的组 ######################################

2017-06-27(useradd usermod userdel 禁止普通用户登录)

useradd useradd  -g  组名  用户名  (添加新用户,并将其添加到指定的主用户组) useradd  -g  组名  -G 附属组名  用户名  (添加新用户,并将其添加至指定主用户组 与附属用户组) useradd -d  /home/xxx  用户名  (将新添加用户的家目录 指定为/home/xxx) usermod usermod -c  xxxxx  用户名   (修改用户的注释) usermod  -l  新用户名    旧用户名  (修改用户的用户名) user