Bootstrap

Linux账号和权限管理

一. 用户账号

  • 超级管理员: 拥有最高权限,超级管理员在系统中时唯一的
  • 普通用户:是权限受限制的用户,但是在自己的家目录当中拥有完整的权限
  • 程序用户:在linux安装时,或者是安装第三方的软件时,需要运行的账户,但是这些账户不需要登录系统,仅仅作为程序启动时的依赖账号或者是维持某个程序正常运行的账号。

linux系统当中用户的角色,以及角色所拥有的权限
超级管理员:root@du:~#

  • root 表示当前的登录用户
  • du 当前的主机名
  • ~当前所在的目录
  • #表示当前用户时管理员
  • $:表示当前用户是一个普通用户

切换用户

  • su - 用户名
  • su 用户名
    su 刷新功能仅限于root用户
    #从管理员切换到普通用户时不需要输入密码的

修改主机名
hostnamectl set-hostname 主机名 (永久修改主机名 配置su刷新立即生效,无需重启系统)
vim /etc/hostname(修改配置文件,必须要重启)
hostname (主机名临时修改,重启失效)

uid
linux系统根基uid号来确定账号的身份信息

  1. 唯一,所有账号的uid都是唯一的,不能重复的
  2. 再创建用户时,系统会自动分配(根据用户创建账户时的配置来进行分配)/etc/passwd
root@du:/home/du1# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:2:2:bin:/bin:/usr/sbin/nolegin     #程序用户的 uid:1-999
du:x:1000:1000:du,,,:/home/du:/bin/bash  #普通用户的 uid从1000 开始
root用户名,账号名称X:密码的占位符,无实义
x密码的占位符,无实义
0uid号 0就是管理员
0gid号0就是组账号0:
root用户账号
/root该用户的家目录的位置
/bin/bash用户登录系统的shell默认都是 bash

!或者*:表示用户的密码为空,伪空

二. 用户如何创建,修改密码(创建普通用户一定要创建密码)

root@du:/home/du1# cat /etc/shadow
root:$y$j9T$7Byzk0hfruGx5eQVTsQwN0$IwVespUviOuSG1.iSnpR1pU4Ljis6UA6SZ/4HSRMvm4:20024:0:99999:7:::
  • root:用户名
  • y y yj9T 7 B y z k 0 h f r u G x 5 e Q V T s Q w N 0 7Byzk0hfruGx5eQVTsQwN0 7Byzk0hfruGx5eQVTsQwN0IwVespUviOuSG1.iSnpR1pU4Ljis6UA6SZ/4HSRMvm4:md5 加密的密码信息字符串
  • 20024:上次修改密码的时间
  • 0:密码的最短有效天数,0表示不限制
  • 99999:密码的最长有效期,999999 表示不限制
  • 7:提前7天告知用户密码即将过期

2.1 创建用户的命令

useradd 用户名

  • -m 创建用户时创建家目录(只针对 ubuntu,centos 不需要)
  • -s 指定用户的登录 shell (只针对 ubuntu)
  • -u:创建用户时指定 uid
  • -d:指定用户家目录的位置
  • -M:创建程序用户时使用,不创建用户的家目录。(一般用于创建程序用户时)useradd -m -s /bin/bash nginx

2.2删除用户

userdel 用户名
-r 删除用户时一并删除家目录

2.3 创建用户的密码

passwd 用户名
-d 清空用户的密码,后面才真正不需要密码

2.4 命令行修改

centos
echo 密码 | passwd --stdin 用户名

ubuntu
echo “用户名:密码(长度最少8位,字母和数字,大小写字母)” | chpasswd

2.5 修改账户信息:

usermod

  • -u 修改用户的uid号
  • -d 修改用户的家目录位置
  • -e 修改用户的账户有效时间
  • -g 修改用户的所在组
  • -G 修改用户的附加组
  • -s 修改用户的登陆shell
  • -L 锁定用户
  • -U 解锁用户

组账号
cat /etc/group -g #查看指定gid号组信息
groupadd 组名

添加组成员:
gpasswd

  • -a 向组内条件用户id或者组id
  • -d 删除组内的成员
  • -M 添加多个组内的成员,以逗号分开

删除组:
groupdel 组名

2.6 系统的用户配置文件

  • 全局配置 -------对所有用户生效
    /etc/profile
    source /etc/profile 读取配置文件当中的可运行的代码,立即生效。

  • 用户自定义 ------只对当前用户生效
    用户的家目录,是一个隐藏的文件
    .bashrc与.profile 是用户自己的配置,只对用户自己生效
    .profile: 用户登录之后会先读取.profile里面的配置
    .bashrc: 读取玩.profile的配置后,读取.bashrc的配置

三. 权限管理:

3.1 文件和目录进行权限管理

chmod 权限 文件名/目录(递归赋权:chmod -R 权限 目录名)
-rw-r–r–
6 4 4
-rw-r–r-x
6 4 5
rw- 所有者 6
r-- 所在组 4
r-- 其他用户 4
r 读 查
w 写 改
x 执行 运行指定的代码

  • r =4
  • w = 2
  • x =1

老办法:
u 所有者
g 所在组
o 其他用户
a 默认就是a,表示所有用户
+:增加权限
-:去掉权限
=:设置权限
例:chmod u+x lx

3.2 所有者和所在组修改

chown 所有者和所在组

  • chown nginx.nginx 文件名/目录名
  • chown nginx:nginx 文件名/目录名
    同时修改文件/目录的所有者和所在组

只改所有者
chown nginx 文件名/目录名

只改所在组
chown .nginx 文件名/目录名
chown :nginx 文件名/目录名

递归修改所有者和所在组
chown -R nginx.nginx 目录名

3.3 umask 反掩码 权限码

文件的默认 666 目录的默认 777 和umask相减得到默认的权限
umask设定了文件和目录的创建时的默认权限。

  • 文件默认就不能拥有执行权限
  • 目录默认就有执行权限,目录要切换

四. 练习:进入其它用户时有提示语

root@du:/# cd /opt
root@du:/opt# vim test.sh
#!/bin/bash
echo "欢迎进入du1"
~                                                                                                                        
~                                                                                                                                                                                                                                        
~                                                                                                                        
~                                                                                                                        
~                                                                                                                        
~                                                                                                                        
~                                                                                                                        
~                                                                                                                        
~                                                                                                                        
~                                                                                                                        
~                                                                                                                        
~                                                                                                                        
:wq!
root@du:/opt# ll
总计 1068
drwxr-xr-x  3 root  root     4096 10月 30 14:47 ./
drwxr-xr-x 20 root  root     4096 10月 28 10:09 ../
drwxr-xr-x  9 nginx nginx    4096 10月 29 11:29 nginx-1.22.0/
-rw-r--r--  1 root  root       35 10月 30 14:47 test.sh
root@du:/opt# chmod 777 test.sh 
root@du:/opt# ll
总计 1068
drwxr-xr-x  3 root  root     4096 10月 30 14:47 ./
drwxr-xr-x 20 root  root     4096 10月 28 10:09 ../
drwxr-xr-x  9 nginx nginx    4096 10月 29 11:29 nginx-1.22.0/
-rwxrwxrwx  1 root  root       35 10月 30 14:47 test.sh*
root@du:/opt# cd /home/
root@du:/home# ll
总计 16
drwxr-xr-x  4 root root 4096 10月 30 14:49 ./
drwxr-xr-x 20 root root 4096 10月 28 10:09 ../
drwxr-x--- 14 du   du   4096 10月 28 10:47 du/
drwxr-x---  2 du1  du1  4096 10月 30 10:46 du1/
root@du:/home# cd du1
root@du:/home/du1# ls -a
.  ..  .bash_history  .bash_logout  .bashrc  .profile
root@du:/home/du1# vim .profile 

/opt/test.sh
~                                                                                                                        
~                                                                                                                        
~                                                                                                                        
~                                                                                                                                                   
:wq!
root@du:/home/du1# source .profile 
欢迎进入du1
root@du:/home/du1# cd /opt
root@du:/opt# su - du1
欢迎进入du1
du1@du:~$
;