用户管理及权限

Posted lbzyyy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户管理及权限相关的知识,希望对你有一定的参考价值。

目录

1.系统的启动流程

2.系统的用户管理及权限

3.系统的用户(组)命令

1.系统的启动流程

 

centos6

 

centos7

 

步骤

作用

步骤

作用

01. 加电自检

检查服务器硬件是否正常

01. 加电自检

检查服务器硬件是否正常

02. MBR引导

读取磁盘的MBR存储记录信息,引导系统启动

02. MBR引导

读取磁盘的MBR存储记录信息,引导系统启动

03. grup菜单

选择启动的内核/进行单用户模式重置密码

03. grup菜单

选择启动的内核/进行单用户模式重置密码

04. 加载系统内核信息

可以更好的使用内核控制硬件

04. 加载系统内核信息

可以更好的使用内核控制硬件

05. 系统的第一个进程运行起来 init (串行)

init进程控制后续各种服务的启动: 启动顺序 网络服务 sshd 

05. 系统的第一个进程运行起来 systemd (并行)

服务启动的时候,同时一起启动

06. 加载系统运行级别文件

/etc/inittab

06. 读取系统启动文件

/etc/systemd/system/default.target

07. 初始化脚本运行

初始化系统主机名称 和 网卡信息

07. 读取系统初始化文件

/usr/lib/systemd/system/sysinit.target

08. 运行系统特殊的脚本

服务运行的脚本 

08. 使服务可以开机自启动

/etc/systemd/system 加载此目录中的信息,实现服务开机自动启动

09. 运行mingetty进程

显示开机登录信息界面

09. 运行mingetty进程

显示开机登录信息界面

2.系统的用户管理及权限
1.用户分类

用户分类

用户示例

uid

权限

管理员用户

root

0

权利至高无上

虚拟用户

nobody

1-999

管理进程

没家目录,不能登录系统

普通用户

lbz

1000+

权利有限

2.文件信息

简写

全写

作用

r

read

可以读文件的内容

w

write

可以编辑文件的内容

x

execute

执行这个文件(脚本文件)

3.目录信息

简写

全写

作用

r

read

读目录中的文件属性信息

w

write

可以在目录中添加或删除文件数据信息

x

execute

是否可以进入到目录中


4.代码说明

//用户管理
1.文件权限
  1)修改属主
  2)修改权限
2.目录权限
3.文件权限修改
  1)根据用户信息进行设定 (属主 属组 其他用户)
  2)根据用户进行批量设定
     a) 数值设定
     b) 字符设定
4.文件默认权限
5.特殊目录
6.特殊文件
1.文件权限
  01. root用户对所有文件有绝对的权限,只要有了执行权限,root用户可以无敌存在
  02. 对于文件来说,写的权限和执行的权限,都需要有读权限配合
  03. 如何想对文件进行操作,必须对文件赋予读的权限
  一个普通文件默认权限: 644 保证属主用户对文件可以编辑 保证其他用户可以读取文件内容
[root@lbz01 ~]# touch lbz.txt                                //创建环境
[root@lbz01 ~]# ll lbz.txt
-rw-r--r--. 1 root root 6 Jan 22 21:36 lbz.txt             
[root@lbz01 ~]# chown lbz lbz.txt                            1)修改属主为lbz
[root@lbz01 ~]# ll lbz.txt
-rw-r--r--. 1 lbz root 6 Jan 22 21:36 lbz.txt
[root@lbz01 ~]# chmod 000 lbz.txt                            2)修改权限
[root@lbz01 ~]# ll lbz.txt
----------. 1 lbz root 6 Jan 22 21:36 lbz.txt
2.目录权限
  01. root用户对目录信息有绝对权限
  02. 对于目录来说,写的权限和读的权限,都需要有执行权限配合
  03. 如何想对目录进行操作,必须对目录赋予执行的权限
  一个目录文件默认权限: 755 保证属主用户对目录进行编辑 保证其他用户可以读取目录中的信息,可以进入到目录中
3.文件权限修改
  1)根据用户信息进行设定 (属主 属组 其他用户)
  属主    -user  u 
  属组    -group g 
  其他用户 -other o 
[root@lbz01 ~]# touch lsn.txt                                //创建环境
[root@lbz01 ~]# ll lsn.txt
-rw-r--r--. 1 root root 0 Jan 22 21:54 lsn.txt
[root@lbz01 ~]# chmod u-w lsn.txt                            //修改属主权限
[root@lbz01 ~]# ll lsn.txt
-r--r--r--. 1 root root 0 Jan 22 21:54 lsn.txt 
[root@lbz01 ~]# chmod g+w lsn.txt                            //修改属组权限
[root@lbz01 ~]# ll lsn.txt
-r--rw-r--. 1 root root 0 Jan 22 21:54 lsn.txt
  2)根据用户进行批量设定
[root@lbz01 ~]# chmod 761 lsn.txt                            a) 数值设定
[root@lbz01 ~]# ll lsn.txt
-rwxrw---x. 1 root root 0 Jan 22 21:54 lsn.txt
[root@lbz01 ~]# chmod a=x lsn.txt                            b) 字符设定
[root@lbz01 ~]# ll lsn.txt
---x--x--x. 1 root root 0 Jan 22 21:54 lsn.txt
4.文件默认权限
[root@lbz01 ~]# umask
0022
默认文件权限:   666 - 022 = 644
umask数值是奇数 666 - 033 = 633 + 11 = 644
umask数值是偶数 666 - 022 = 644

默认目录权限:   777 - 022 = 755    
umask数值是奇数 777 - 033 = 744
umask数值是偶数 777 - 022 = 755
[root@lbz01 ~]# vim /etc/profile
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022                                                    //可以永久修改umask数值
fi    
#$UID: 显示当前登录系统用户id数值
判断比较符号
-gt greater than      >
-lt less than         <
-eq equal             ==
-ge greater && equal  >=
-le less && equal     <=
-ne not equal         <>
5.特殊目录
[root@lbz01 ~]# ll /etc/skel -a
  01. 目录中可以存储运维操作规范说明文件
  02. 调整命令提示符信息
  目录中的数据内容会参考/etc/skel目录中的信息
total 24
drwxr-xr-x.  2 root root   62 Apr 11  2018 .
drwxr-xr-x. 80 root root 8192 Jan 22 22:06 ..
-rw-r--r--.  1 root root   18 Apr 11  2018 .bash_logout      //当系统退出登录状态会执行的命令
-rw-r--r--.  1 root root  193 Apr 11  2018 .bash_profile     //别名和环境变量(只针对某个用户)
-rw-r--r--.  1 root root  231 Apr 11  2018 .bashrc           //别名和环境变量(只针对某个用户)
[root@lbz01 ~]# useradd lbz02
[root@lbz01 ~]# ll /home/lbz02/ -a
total 12
drwx------. 2 lbz02 lbz02  62 Jan 22 22:10 .
drwxr-xr-x. 6 root  root   54 Jan 22 22:10 ..
-rw-r--r--. 1 lbz02 lbz02  18 Apr 11  2018 .bash_logout
-rw-r--r--. 1 lbz02 lbz02 193 Apr 11  2018 .bash_profile
-rw-r--r--. 1 lbz02 lbz02 231 Apr 11  2018 .bashrc
[root@lbz01 ~]# cd /etc/skel                                 //应用
[root@lbz01 skel]# touch readme.txrt
[root@lbz01 skel]# touch readme.txt
[root@lbz01 skel]# vim readme.txt
#运维操作规范
[root@lbz01 skel]# useradd test01
[root@lbz01 skel]# su - test01 
[root@lbz01 skel]# su - test01
[test01@lbz01 ~]$ cat readme.txt
#运维操作规范
[root@lbz01 ~]# ll /home/test01/ -a                          //创建环境
total 16
drwx------. 2 test01 test01  83 Jan 22 22:18 .
drwxr-xr-x. 7 root   root    68 Jan 22 22:15 ..
-rw-------. 1 test01 test01  22 Jan 22 22:16 .bash_history
-rw-r--r--. 1 test01 test01  18 Apr 11  2018 .bash_logout
-rw-r--r--. 1 test01 test01 193 Apr 11  2018 .bash_profile
-rw-r--r--. 1 test01 test01 231 Apr 11  2018 .bashrc
[root@lbz01 ~]# rm -fr /home/test01/.b*
[root@lbz01 ~]# ll /home/test01/ -a
total 0
drwx------. 2 test01 test01  6 Jan 22 22:20 .
drwxr-xr-x. 7 root   root   68 Jan 22 22:15 ..
[root@lbz01 ~]# su - test01
Last login: Wed Jan 22 22:15:32 CST 2020 on pts/0
-bash-4.2$                                                    //出现问题
-bash-4.2$ cp /etc/skel/.b* /home/test01/                     //解决问题
-bash-4.2$ exit
[root@lbz01 ~]# su - test01                                   //问题解决
Last login: Wed Jan 22 22:21:07 CST 2020 on pts/0
[test01@lbz01 ~]$
6.特殊文件
[test01@lbz01 ~]$ ll  .bash_history
-rw-------. 1 test01 test01 36 Jan 22 22:24 .bash_history     //历史命令记录文件
#曾经输入的历史命令保存位置:
01. 保存在内存中 histroy
history -c
02. 保存在磁盘文件中: .bash_history 
补充:
[root@lbz01 ~]# su - test01
Last login: Wed Jan 22 22:24:11 CST 2020 on pts/0
[test01@lbz01 ~]$ /usr/bin/id -gn                             //显示当前用户的组名
test01
[test01@lbz01 ~]$ /usr/bin/id -un                             //显示当前用户名称
test01

3.系统的用户(组)命令

//系统的用户(组)命令
1.用户(组)相关命令
  1)相关文件
  2)用户参数说明
  3)修改用户信息
  4)用户组命令
2.用户属主属组命令
3.用户信息查看
4.用户权限说明
  1)su
  2)sudo
  3)数据文件权限
5.特殊权限位
6.粘滞位
1.用户(组)相关命令
1)相关文件
a)/etc/passwd      --- 记录系统用户信息文件 
b)/etc/shadow      --- 系统用户密码文件
c)/etc/group       --- 组用户记录文件
d)/etc/gshadow     --- 组用户密码信息
[root@lbz01 ~]# head /etc/passwd                                 //记录系统用户信息文件 
root:x:0:0:root:/root:/bin/bash                                  ///bin/bash --- 通用的解释器
bin:x:1:1:bin:/bin:/sbin/nologin                                 ///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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
#第一列: 用户名
 第二列: 用户密码信息
 第三列: 用户的uid信息
 第四列: 用户的gid信息
 第五列: 用户的注释信息 
 第六列: 用户家目录信息
 第七列: 用户登录系统方式
2)用户参数说明
#-s 修改用户的登录方式
 -g 修改用户的主要的组信息
 -G 修改用户的附属组信息
 -c 修改用户的注释信息
[root@lbz01 ~]# useradd lbz03 -M -s /sbin/nologin                        //创建虚拟用户
#-M 不创建家目录
 -s 指定使用的shell方式
[root@lbz01 ~]# id lbz03
uid=1005(lbz03) gid=1005(lbz03) groups=1005(lbz03)
[root@lbz01 ~]# grep lbz03 /etc/passwd
lbz03:x:1005:1005::/home/lbz03:/sbin/nologin
[root@lbz01 ~]# ll /home/lbz03 -d
ls: cannot access /home/lbz03: No such file or directory
[root@lbz01 ~]# useradd lbz07 -u 2005 -g lbz02 -G lbz03                   //创建用户
#-u 指定用户uid数值信息
 -g 指定用户所属的主要组信息
 -G 指定用户所属的附属组信息
[root@lbz01 ~]# id lbz07
uid=2005(lbz07) gid=1003(lbz02) groups=1003(lbz02),1005(lbz03)
[root@lbz01 ~]# useradd mysql -s /sbin/nologin -M -c "manager database"   //创建用户
#-c 添加指定用户注释说明信息
[root@lbz01 ~]# grep mysql /etc/passwd
mysql:x:2006:2006:manager database:/home/mysql:/sbin/nologin
3)修改用户信息
[root@lbz01 ~]# usermod lbz02 -s /sbin/nologin                            a)修改用户shell信息
[root@lbz01 ~]# grep lbz02 /etc/passwd
lbz02:x:1003:1003::/home/lbz02:/sbin/nologin
[root@lbz01 ~]# usermod lbz02 -u 3000                                     b)修改用户uid信息
[root@lbz01 ~]# id lbz02
uid=3000(lbz02) gid=1003(lbz02) groups=1003(lbz02)
[root@lbz01 ~]# userdel -r lbz04                                          c)删除用户信息
#-r 彻底删除用户以及用户的家目录
userdel: group lbz04 is the primary group of another user and is not removed.
[root@lbz01 ~]# ll /home/lbz04 -d
ls: cannot access /home/lbz04: No such file or directory
[root@lbz01 ~]# echo 123456|passwd --stdin lbz                            d)非交互式用户密码设置方法
Changing password for user lbz. 
passwd: all authentication tokens updated successfully.
[root@lbz01 ~]# passwd lbz01                                              d)交互式设置密码
补充:企业中设置密码和管理密码的方式
01. 密码要复杂12位以上字母数字及特殊符号
02. 保存好密码信息
keepass
密码保险柜,本地存储密码
lastpass
密码保险柜,在线存储密码
03. 大企业用户和密码统一管理(相当于活动目录AD)
openldap域
用户信息统一保存在一个用户管理服务器中 用户的家目录中的文件 用户密码 用户名称
04. 动态密码:动态口令,第三方提供自己开发也很简单。
4)用户组相关命令
root@lbz01 ~]# groupadd python                                           //创建用户组
#groupadd 创建用户组
 groupmod 修改用户组信息
 groupdel 删除用户组信息
[root@lbz01 ~]# useradd python -g python
[root@lbz01 ~]# id python
uid=3001(python) gid=2007(python) groups=2007(python)
2.用户属主属组命令
[root@lbz01 ~]# chown lbz.lbz lbz_dir                                    //修改属主和属组信息
[root@lbz01 ~]# ll lbz_dir -d
drwxr-xr-x. 2 lbz lbz 40 Jan 23 12:23 lbz_dir
[root@lbz01 ~]# ll lbz_dir/
total 0
-rw-r--r--. 1 root root 0 Jan 23 12:23 lbz_dir.txt
-rw-r--r--. 1 root root 0 Jan 23 12:23 lbz.txt
[root@lbz01 ~]# chown -R lbz.lbz lbz_dir                                 //递归修改目录属主和属组信息
[root@lbz01 ~]# ll lbz_dir -d
drwxr-xr-x. 2 lbz lbz 40 Jan 23 12:23 lbz_dir
[root@lbz01 ~]# ll lbz_dir/
total 0
-rw-r--r--. 1 lbz lbz 0 Jan 23 12:23 lbz_dir.txt
-rw-r--r--. 1 lbz lbz 0 Jan 23 12:23 lbz.txt
3.用户信息查看
[root@lbz01 ~]# id lbz                                                   1)id 显示用户信息命令
uid=1000(lbz) gid=1000(lbz) groups=1000(lbz)
[root@lbz01 ~]# w                                                        2)w显示正在登陆系统的用户信息
 12:29:06 up  4:03,  1 user,  load average: 0.00, 0.01, 0.05   
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         08:26    2.00s  0.47s  0.02s w
#01. 什么用户登录到了系统中
 02. 登录的方式 
     pts/x 远程登录系统
     tty1 本地登录
     [root@lbz01 ~]# echo "请不要修改恢复hosts文件配置" >/dev/pts/1 
 03. 从哪连接的服务器 
 04. 登录时间
 05. IDLE 空闲时间
 06. 用户操作系统 消耗的CPU资源时间
 07. 用户在干什么
4.用户权限说明
普通用户如何像root用户一些操作管理系统:
01. 直接切换到root账户下管理系统 
02. 直接修改要做的数据文件权限    
03. root用户赋予了普通用户权利 
    sudo-- root用户授权一个能力给普通用户
1)第一种方法:su 
#直接切换用户为root
 su    部分环境变量切换用户有变化
 su -  全部环境变量切换用户有变化
[lbz@lbz01 ~]$ env|grep lbz
#默认当前登录系统用户为lbz时,环境变量中会体现出lbz用户信息
HOSTNAME=lbz01
USER=lbz
MAIL=/var/spool/mail/lbz
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/lbz/.local/bin:/home/lbz/bin
PWD=/home/lbz
HOME=/home/lbz
LOGNAME=lbz
[lbz@lbz01 ~]$ su root                                                     a)su
当用户su命令切换用户,系统中环境变量信息部分会变为root,但更多信息为原有lbz用户信息
Password:
[root@lbz01 lbz]# env|grep lbz
HOSTNAME=lbz01
USER=lbz
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/lbz/.local/bin:/home/lbz/bin
MAIL=/var/spool/mail/lbz
PWD=/home/lbz
LOGNAME=lbz
[root@lbz01 lbz]# env|grep root
HOME=/root
[lbz@lbz01 ~]$ su - root                                                  b)su -
#当用户su -命令切换用户,系统中环境变量信息会全部切换为root
Password:
Last login: Thu Jan 23 12:45:15 CST 2020 on pts/0
[root@lbz01 ~]# env|grep lbz
HOSTNAME=lbz01
[root@lbz01 ~]# env|grep root
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
HOME=/root
LOGNAME=root
2)第二种方法:sudo
[root@lbz01 ~]# visudo                                                    a)进行授权
#visudo相当于vi /etc/sudoers(需要排除部分特权命令,如/usr/sbin/*,!/usr/sbin/visudo,/usr/bin/*)
93 lbz ALL=(ALL) /usr/sbin/useradd, /usr/bin/rm
[root@lbz01 ~]# visudo -c                                                 //配置好的文件语法检查
[lbz@lbz01 ~]$sudo -l                                                     b)验证lbz已经获取了root用户能力
[lbz@lbz01 ~]$sudo useradd lbz08                                          c)执行root用户可以执行的命令
#sudo 授权的命令
[lbz@lbz01 ~]$sudo rm -f /etc/hosts
3)第三种方法:修改数据文件权限
总结:
01. 直接切换用户 su - (*)
优势: 简单快捷
劣势: 风险太高(root权限泛滥)
02. 采用sudo提权方式
优势: 可以利用文件编辑指定用户有哪些指定权限 sa运维部门 dev开发人员
劣势: 配置规划复杂
02. 修改数据文件权限 
9位权限位 属主信息
优势: 只针对某个数据文件进行修改 只针对某个用户进行授权
劣势: 需要了解权限位功能
3位权限位
优势: 设置权限简单方便
劣势: 设置好的权限所有用户都拥有
5.特殊权限位
[root@lbz01 ~]# ll /bin/cat
-rwxr-xr-x. 1 root root 54080 Apr 11  2018 /bin/cat
[root@lbz01 ~]# chmod u+s /bin/cat                                        //设置特殊权限位
#setuid权限位设置,将文件属主拥有的能力,分配给所有人
 说明:系统文件数据的9个权限位 系统中实际应该有12个权限位
[root@lbz01 ~]# chmod 4755 /bin/cat
[root@lbz01 ~]# ll /bin/cat
-rwsr-xr-x. 1 root root 54080 Apr 11  2018 /bin/cat
[root@lbz01 ~]# chmod g+s /bin/cat                                        //设置特殊权限位
#setgid权限位设置,将文件属组拥有的能力,分配给所有用户组
[root@lbz01 ~]# chmod 6755 /bin/cat
[root@lbz01 ~]# ll /bin/cat
-rwsr-sr-x. 1 root root 54080 Apr 11  2018 /bin/cat
6.粘滞位
#sticky bit:粘滞位: (创建一个共享目录) 
 作用: 可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但是不可以互相随意修改
语法:chmod o+t 目录信息
     chmod 1777 目录信息
[root@lbz01 ~]# ll -d /tmp/              
#系统中已经准备好了一个共享目录,权限位1777
drwxrwxrwt. 18 root root 4096 Jan 23 09:39 /tmp/

问题及反思:

如何防范系统中的重要文件不被修改(root用户也不能修改)
解决方法:给文件加上锁头
目的: 使root用户也不能直接修改相应文件

[root@lbz01 ~]# chattr +i /etc/passwd            //设置方法
[root@lbz01 ~]# lsattr /etc/passwd               //检查
----i----------- /etc/passwd
[root@lbz01 ~]# chattr -i /etc/passwd            //解锁方法
[root@lbz01 ~]# lsattr /etc/passwd               //检查
---------------- /etc/passwd

版权属于:木丫头

转载必须声明

以上是关于用户管理及权限的主要内容,如果未能解决你的问题,请参考以下文章

Oracle-常用数据库对象笔记(片段)

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

在Winform程序中设置管理员权限及为用户组添加写入权限

gerrit用户管理及权限配置

gitlab 权限说明

在Winform程序中设置管理员权限及为用户组添加写入权限