Linux 用户管理和权限分配

一、Linux 用户分类

        超级管理员、普通用户、傀儡用户

1,root   #皇帝用户,定制规则的用户,系统高级管理员;【0】
2,普通用户  #老百姓,官员;有特定的权限,权限是root授予的;【大于1000】
3,傀儡(虚拟)用户   #没有家目录,不能登录系统;sshd;    【0-999】

二、Linux 用户相关的配置文件

(一)每种类型用户信息的存储文件passwd

[root@oldboy home]# cat /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

解释说明:root:x:0:0:root:/root:/bin/bash

root  #用户名
x     #以前6的时候,这个位置是密码,后来密码换到别的文件中存储了,这里就换成了x,占位符号;
0     #uid,用户id
0     #gid,用户组id
root  #用户的描述信息,注释、备注
/root  #用户的家目录;
/bin/bash   #用户使用的解释器;
			#/bin/bash:用户能够登录操作系统
			#/sbin/nologin:用户不能登录操作系统

(二)Linux release 6 以后密码存储文件

[root@root home]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@root home]# 

密码存储文件:shadow

[root@root home]# cat /etc/shadow
root:$6$RLUDoFchgqxGoD8v$TtDAUzx3P8.e7t/puZJt47bOq6te6bIRvq8szaACh58E4uBlgcdwklNe/C2vYwLILY0J4V4WvTXsXLA9inpGZ/::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:

密码文件内容解释说明:bin:*:18353:0:99999:7:::

bin:   #用户名;
*:     #机密后的密码;
========================================
18353: #最近修改密码的时间戳;
0:     #禁止修改密码的天数;
99999: #用户必须修改密码的天数;
7:     #修改密码提前警告的天数;
:      #密码过期后,彻底禁用用户的天数;
:      #失效时间;

(三)Linux  用户组的存储文件

[root@root home]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:

(四)Linux 用户组的密码存储文件

[root@root home]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
wheel:::
cdrom:::
mail:::postfix
man:::
dialout:::
floppy:::

(五)Linux 用户备用目录(重点)

每一次创建新用户,系统会直接把/etc/skel/目录下的所有文件拷贝到新用户的家目录下。

1.创建新用户

2.系统默默干活: cp /etc/skel/.bash*  /home/【新用户】/

 测试一下

[root@root home]# cd /etc/skel/
[root@root skel]# ls
[root@root skel]# ll
总用量 0
[root@root skel]# touch 1.txt
[root@root skel]# ls
1.txt
[root@root skel]# useradd test
[root@root ~]# cd /home
[root@root home]# ls
0815newUser  oldboy  oldboy-02  test
[root@root home]# cd test/
[root@root test]# ls
1.txt

三、用户管理

(一)新增用户

1.新增用户方法一:

语法:useradd  【用户名称】

[root@root test]# useradd 0815newUser02
[root@root test]# ls /home
0815newUser  0815newUser02  oldboy  oldboy-02  test
[root@root test]# 
2.新增用户方法二:指定UID

语法:useradd  【用户名称】  -u  1004

[root@root test]# useradd 0815newUser03 -u 1006
[root@root test]# ls /home
0815newUser  0815newUser02  0815newUser03  oldboy  oldboy-02  test
[root@root test]# id 0815newUser03
uid=1006(0815newUser03) gid=1007(0815newUser03) 组=1007(0815newUser03)
[root@root test]# 
3.新增用户方法三:指定UID、GID

语法:useradd 【用户名称】 -u 1007 -g 0

[root@root test]# useradd 0815newUser04 -u 1007 -g 0
[root@root test]# id 0815newUser04
uid=1007(0815newUser04) gid=0(root) 组=0(root)
[root@root test]# 
4.新增用户方法四:指定UID、GID、添加注释

语法:useradd 【用户名称】 -u 1008  -g 0  -c "添加注释"

[root@root test]# useradd 0815newUser05 -u 1008 -g 0 -c "添加注释"
。。。。
0815newUser05:x:1008:0:添加注释:/home/0815newUser05:/bin/bash
[root@root test]# 
5.创建虚拟傀儡用户:

语法:useradd  【用户名称】  -c  "虚拟用户"   -M  -s  "/sbin/nologin"

[root@root tmp]# useradd mysqlxuni -c "mysql虚拟用户" -M -s /sbin/nologin
[root@root tmp]# cat /etc/passwd | grep mysql
mysqlxuni:x:1009:1009:mysql虚拟用户:/home/mysqlxuni:/sbin/nologin
[root@root tmp]# 
[root@10 ~]# cat /etc/passwd | grep nginx
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin
[root@10 ~]# cat /etc/passwd | grep mysql
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
[root@10 ~]# 

(二)修改用户

1.修改用户的UID:

语法:usermod 【用户名称】  -u  【UID数值】

[root@root tmp]# usermod 0815newUser02 -u 2001
[root@root tmp]# id 0815newUser02
uid=2001(0815newUser02) gid=1006(0815newUser02) 组=1006(0815newUser02)
[root@root tmp]# 
2.修改用户的GID:

语法:usermod 【用户名称】  -g  【GID数值】

[root@root tmp]# usermod 0815newUser02 -g 1
[root@root tmp]# id 0815newUser02
uid=2001(0815newUser02) gid=1(bin) 组=1(bin)
[root@root tmp]# 
3.修改用户的备注信息:

语法:usermod 【用户名称】  -c  【备注信息】

[root@root tmp]# cat /etc/passwd | grep 0815
0815newUser:x:1003:1003::/home/0815newUser:/bin/bash
0815newUser02:x:2001:1:修改备注信息:/home/0815newUser02:/bin/bash
4.修改用户密码方式一:交互式

交互式简单的设置和修改密码

语法:passwd  【普通用户名称】

[root@root tmp]# passwd 0815newUser02
更改用户 0815newUser02 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@root tmp]# cat /etc/shadow | grep 0815
0815newUser:!!:19950:0:99999:7:::
0815newUser02:$6$5p6I1dfV$BNJ4/Yx2tWOWKuvLTJmA9SX03x3QgKx2Ekzsfl0Rnfyu4Q.DvIVIms4iA9QLY98p64y/g0pYzewBytiHXMHcO1:19950:0:99999:7:::
0815newUser03:!!:19950:0:99999:7:::
0815newUser04:!!:19950:0:99999:7:::
0815newUser05:!!:19950:0:99999:7:::
[root@root tmp]# 
5.修改用户密码方式二:非交互式

语法:echo "1" | passwd --stdin 【用户名称】

[root@root tmp]# echo "1" | passwd --stdin 0815newUser03
更改用户 0815newUser03 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@root tmp]# cat /etc/shadow | grep 0815
0815newUser:!!:19950:0:99999:7:::
0815newUser02:$6$5p6I1dfV$BNJ4/Yx2tWOWKuvLTJmA9SX03x3QgKx2Ekzsfl0Rnfyu4Q.DvIVIms4iA9QLY98p64y/g0pYzewBytiHXMHcO1:19950:0:99999:7:::
0815newUser03:$6$e/w6PYkI$xAeEj.57Fk5mLF1dQlNpLqbNqpbbWMHYti32wU8g1bTG7CcU6gu0uZFnNv7jXiYOw4fUC5Wv7H6M2AR3C2Bxk0:19950:0:99999:7:::
0815newUser04:!!:19950:0:99999:7:::
0815newUser05:!!:19950:0:99999:7:::
[root@root tmp]# 

(三)删除用户

1.删除用户,保留用户的数据信息:

删除一个用户之后,保留用户之前的数据信息;

语法:userdel  【用户名名称】

#1,删除一个用户(删除完之后,保留期用户的数据信息)
[root@root tmp]# userdel 0815newUser05
[root@root tmp]# cat /etc/shadow | grep 0815new
0815newUser:!!:19950:0:99999:7:::
0815newUser02:$6$5p6I1dfV$BNJ4/Yx2tWOWKuvLTJmA9SX03x3QgKx2Ekzsfl0Rnfyu4Q.DvIVIms4iA9QLY98p64y/g0pYzewBytiHXMHcO1:19950:0:99999:7:::
0815newUser03:$6$e/w6PYkI$xAeEj.57Fk5mLF1dQlNpLqbNqpbbWMHYti32wU8g1bTG7CcU6gu0uZFnNv7jXiYOw4fUC5Wv7H6M2AR3C2Bxk0:19950:0:99999:7:::
0815newUser04:!!:19950:0:99999:7:::
[root@root tmp]# 

[root@root tmp]# ll /home
总用量 0
drwx------ 2 0815newUser   0815newUser   62 8月  15 09:15 0815newUser
drwx------ 2 0815newUser02 bin           75 8月  15 10:47 0815newUser02
drwx------ 2 0815newUser03 0815newUser03 75 8月  15 10:48 0815newUser03
drwx------ 2 0815newUser04 root          75 8月  15 10:49 0815newUser04
drwx------ 2          1008 root          75 8月  15 10:52 0815newUser05

2.彻底删除用户:

递归删除一个用户,不保留其原来信息【彻底删除】

语法:userdel   -r  【用户名称】

[root@root tmp]# userdel -r 0815newUser04
[root@root tmp]# ll /home
总用量 0
drwx------ 2 0815newUser   0815newUser   62 8月  15 09:15 0815newUser
drwx------ 2 0815newUser02 bin           75 8月  15 10:47 0815newUser02
drwx------ 2 0815newUser03 0815newUser03 75 8月  15 10:48 0815newUser03
drwx------ 2          1008 root          75 8月  15 10:52 0815newUser05
drwx------ 2 oldboy        oldboy        96 7月  29 17:51 oldboy
drwx------ 2 oldboy-02     oldboy-02     62 7月  29 17:36 oldboy-02
drwx------ 2 test          test          75 8月  15 10:23 test
[root@root tmp]# 

(四)查询用户

查询用户一:id  【用户名】

#1,查看用户信息【id】
[root@root tmp]# id 0815newUser03
uid=1006(0815newUser03) gid=1007(0815newUser03) 组=1007(0815newUser03)
[root@root tmp]# 

查询用户方法二:whoami

#查询当前窗口用户
[root@root tmp]# whoami
root
[root@root tmp]# 

查询用户方法三:who

#4,查看当前链接用户(显示的信息比w少一点)
[root@root tmp]# 
[root@root tmp]# who
root     pts/0        2024-08-15 09:14 (10.0.0.1)
[root@root tmp]# 

 查询用户方法四:以用户为单位,每个用上一次使用系统的记录(每个用户只显示一条)

[root@root tmp]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/0                     四 8月 15 10:10:30 +0800 2024
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
oldboy           pts/0                     一 7月 29 17:40:00 +0800 2024
oldboy-02                                  **从未登录过**
dhcpd                                      **从未登录过**
0815newUser      pts/0                     四 8月 15 10:10:21 +0800 2024
xuniyonghu01                               **从未登录过**

查询方法五: #以操作单位

[root@root tmp]# last
root     pts/0        10.0.0.1         Thu Aug 15 09:14   still logged in   
root     pts/0        10.0.0.1         Thu Aug 15 08:21 - 09:14  (00:53)    
reboot   system boot  3.10.0-1160.el7. Tue Aug 13 08:32 - 13:27 (2+04:54)   
root     pts/1        10.0.0.1         Fri Aug  9 18:01 - crash (3+14:31)   
root     pts/0        10.0.0.1         Fri Aug  9 07:26 - 18:01  (10:35)    
root     tty1                          Thu Aug  8 22:42 - crash (4+09:50)   
root     pts/0        10.0.0.1         Thu Aug  8 22:34 - 22:39  (00:04)    
reboot   system boot  3.10.0-1160.el7. Thu Aug  8 22:32 - 13:27 (6+14:54)   
root     pts/0        10.0.0.1         Thu Aug  8 11:05 - crash  (11:27)    
reboot   system boot  3.10.0-1160.el7. Thu Aug  8 11:04 - 13:27 (7+02:22) 

查询方法六:查看当前系统登录的所有用户【w】

[root@root ~]# su - 0815newUser02
[0815newUser02@root ~]$ w
 13:30:21 up 1 day, 18:13,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         09:14    2:21   0.24s  0.16s bash
root     pts/1    10.0.0.1         13:29   29.00s  0.00s  0.00s -bash
root     pts/2    10.0.0.1         13:30    5.00s  0.00s  0.00s w
[0815newUser02@root ~]$ 

USER   #用户名
TTY    #登录方式(tty表示本地,pts表示远程)
FROM   #登录ip地址
LOGIN@   #登录时间
IDLE     #空闲时间
JCPU     #登录后做的操作占用cpu的资源情况(之后进程详细说)
PCPU     #登录后做的操作占用cpu的资源情况(之后进程详细说)
WHAT     #在干什么

四、Linux权限分配

(一)Linux提取文件

用户权限文件:sudoers

(二)Linux修改用户权限

进入修改界面方式一:

[root@10 ~]# visudo
[root@10 ~]# 

进入修改界面方式二:

[root@10 ~]# vim /etc/sudoers
[root@10 ~]# 

进入修改界面方式三:

[root@10 ~]# vim +100 /etc/sudoers
[root@10 ~]# 

(三)Linux查看用户权限

用户查看权限方式一:sudo -l

 管理员用户

[root@root tmp]# sudo -l
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset,
    env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME
    LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE
    LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

用户 root 可以在 root 上运行以下命令:
    (ALL) ALL
[root@root tmp]# 

 普通用户

[0815newUser03@root ~]$ sudo -l

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] 0815newUser03 的密码:
对不起,用户 0815newUser03 不能在 root 上运行 sudo。
[0815newUser03@root ~]$ 

五、系统文件默认权限

[ ~]$ vim /etc/profile
.........
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi
.........
######################################
gt  #大于
ge  #大于等于
lt  #小于
le  #小于等于
eq  #等于
ne  #不等于

############################
#创建目录默认权限:755+022=777   #目录最大权限默认777
#创建文件默认权限:644+022=666   #文件默认最大权限666

#-创建目录的默认权限设置
umask 022   #创建目录的结果就是:777 - 022(umask)=755

#-创建文件的默认权限设置
umask 022   #创建文件的结果就是:666 - 022(umask)=644
#####################################################
如果说,umask设置为奇数,
创建目录不影响,创建文件需要再奇数位再+1;

六、系统特殊权限

suid

suid:让所有用户,在使用这个命令文件的时候,都拥有属主一样的权利。

***:只针对二进制命令设置

[root@root tmp]# chmod u+s /usr/bin/cp
[root@root tmp]# ll /usr/bin | grep cp
-rwxr-xr-x.   1 root root       1345 10月  2 2020 abrt-action-analyze-ccpp-local
-rwxr-xr-x.   1 root root       3535 10月  2 2020 abrt-action-perform-ccpp-analysis
-rwsr-sr-x.   1 root root     155176 8月  20 2019 cp
-rwxr-xr-x.   1 root root     145968 10月 13 2020 cpio
-rwxr-xr-x.   1 root root     772688 9月  30 2020 cpp
-rwxr-xr-x.   1 root root      67928 10月 20 2020 cpupower
-rwxr-xr-x.   1 root root      62208 10月  1 2020 lscpu
-rwxr-xr-x.   1 root root      11424 10月  1 2020 rpm2cpio
-rwxr-xr-x.   1 root root      91384 8月   9 2019 scp
[root@root tmp]# 
sgid

sgid:让所有用户,在使用这个命令文件的时候,都拥有属组一样的权利。

***:只针对二进制命令设置

[root@root tmp]# chmod g+s /usr/bin/cp
[root@root tmp]# ll /usr/bin | grep cp
-rwxr-xr-x.   1 root root       1345 10月  2 2020 abrt-action-analyze-ccpp-local
-rwxr-xr-x.   1 root root       3535 10月  2 2020 abrt-action-perform-ccpp-analysis
-rwsr-sr-x.   1 root root     155176 8月  20 2019 cp
-rwxr-xr-x.   1 root root     145968 10月 13 2020 cpio
-rwxr-xr-x.   1 root root     772688 9月  30 2020 cpp
-rwxr-xr-x.   1 root root      67928 10月 20 2020 cpupower
-rwxr-xr-x.   1 root root      62208 10月  1 2020 lscpu
-rwxr-xr-x.   1 root root      11424 10月  1 2020 rpm2cpio
-rwxr-xr-x.   1 root root      91384 8月   9 2019 scp
[root@root tmp]# 
sbit

sbit:粘滞位,只有属主能编译和删除这个文件和目录,其他用户只能查看
***:一般情况下,这个权限,都是给目录设置的;

含义:让一个目录下,只有属主能操作文件,其他用户只能看,不能删除

drwxr-xr-x 2 root root    6 8月  15 14:06 work-space-tst
-rw------- 1 root root 2562 8月   8 10:18 yum_save_tx.2024-08-08.10-18.f4AFHg.yumtx
[root@root tmp]# 
[root@root tmp]# chmod o+t work-space-tst/
[root@root tmp]# 
drwxr-xr-t 2 root root    6 8月  15 14:06 work-space-tst
-rw------- 1 root root 2562 8月   8 10:18 yum_save_tx.2024-08-08.10-18.f4AFHg.yumtx
[root@root tmp]# 

七、权限拓展~文件上锁

(一)文件上锁语法

语法:chattr  +i  【文件名】

[root@root tmp]# touch 1.sql
[root@root tmp]# ll
总用量 12
-rw-r--r-- 1 root root    0 8月  15 14:11 1.sql
[root@root tmp]# chattr +i 1.sql 
[root@root tmp]# ll
总用量 12
-rw-r--r-- 1 root root    0 8月  15 14:11 1.sql

(二)查看文件是否上锁

语法:lsattr  【文件名】

[root@root tmp]# lsattr 1.sql
----i----------- 1.sql
[root@root tmp]# 

(三)解锁文件

语法: chattr -i  【文件名】

[root@root tmp]# chattr -i 1.sql
[root@root tmp]# lsattr 1.sql
---------------- 1.sql
[root@root tmp]# 

 

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值