linux用户、组、权限

一、用户概述

什么是用户

用户是指能够正常登陆操作系统linux/windwos;
#linux支持多个用户同一账号同时登陆,windows同一账号同一时间只能有一个在线用户;

用户有什么作用

linux每运行一个程序都需要一个特定的用户;
不同的人管理分配不同用户我标识身份
root用户权限太高,不建议直接使用root,可能会造成不可挽回的故障;

用户的分类

在系统中用户分为普通用户,超级管理员(root),以及系统用户;
在这里插入图片描述

如何操作

配置文件

#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
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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
admin:x:1000:1000:admin:/home/admin:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

在这里插入图片描述

#cat/etc/shadow 这个文件中存放信息是用户名/密码,用户创建时间,用户到期时间,
在这里插入图片描述

操作

id

[root@centos-node1 ~]# id
uid=0(root) gid=0(root) groups=0(root)

id username

[root@centos-node1 ~]# id admin
uid=1000(admin) gid=1000(admin) groups=1000(admin)

useradd

[root@centos-node1 ~]# useradd test123

userdel

[root@centos-node1 ~]# useradd test123    #-r参数,删除用户以及用户的家目录,邮件目录等;

usermod

[root@centos-node1 ~]# useradd test123
[root@centos-node1 ~]# cat /etc/passwd  | grep  test1
test1:x:1001:1002:testuser:/home/test1:/bin/bash

passwd

[root@centos-node1 ~]# passwd test1
Changing password for user test1.
New password: 
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word
Retype new password: 
passwd: all authentication tokens updated successfully.

echo “passwd” > passwd --stdin username

[root@centos-node1 ~]# echo "passwd" | passwd --stdin test1
Changing password for user test1.
passwd: all authentication tokens updated successfully.

二、组、附加组

什么是用户组

多个用户归纳到一个组,统一授权,统一调度;

用户组的分类

默认组:即创建一个用户则会根据与用户名相同名称创建一个组
基本组:一个用户只能属于一个基本组
附加组:一个用户可以属于多个附加组

用户组能干什么

赋予某一个文件拥有组的权限就等于赋予这个组内成员的权限,统一授权

如何操作

配置文件

/etc/group
在这里插入图片描述

/etc/gshadow
在这里插入图片描述

操作

groupadd

[root@centos-node1 ~]# groupadd --help
Usage: groupadd [options] GROUP

Options:
  -f, --force                   exit successfully if the group already exists,
                                and cancel -g if the GID is already used
  -g, --gid GID                 use GID for the new group
  -h, --help                    display this help message and exit
  -K, --key KEY=VALUE           override /etc/login.defs defaults
  -o, --non-unique              allow to create groups with duplicate
                                (non-unique) GID
  -p, --password PASSWORD       use this encrypted password for the new group
  -r, --system                  create a system account
  -R, --root CHROOT_DIR         directory to chroot into

[root@centos-node1 ~]# groupadd grouptest -g 10086
[root@centos-node1 ~]# cat /etc/group | grep  grouptest
grouptest:x:10086:

groupmod,与groupadd使用方式类似

[root@centos-node1 ~]# groupmod --help
Usage: groupmod [options] GROUP

Options:
  -g, --gid GID                 change the group ID to GID
  -h, --help                    display this help message and exit
  -n, --new-name NEW_GROUP      change the name to NEW_GROUP
  -o, --non-unique              allow to use a duplicate (non-unique) GID
  -p, --password PASSWORD       change the password to this (encrypted)
                                PASSWORD
  -R, --root CHROOT_DIR         directory to chroot into

权限

什么是权限

系统根据不同的用户/组,来决定能够访问哪些文件,能够对这些文件执行什么样的操作;

如何查看

[root@centos-node1 ~]# ll
total 4
-rw-r--r--  1 root root    0 Apr 28 06:18 a
-rw-------. 1 root root 1423 Apr 27 09:03 anaconda-ks.cfg
drwxr-xr-x. 2 root root  138 Apr 28 08:34 scripts

root root

  • 第一个root:文件拥有人(属主)
  • 第二个root:文件拥有组(属组)

drwxr-xr-x

  • 第一个d:表示文件的类型,目录
  • rwx:表示属主的权限,r(4)读权限,w(2)写权限,x(1)执行权限
  • r-x:属组的权限,可读可执行
  • r-x:其他人权限,可读可执行

一个用户访问的一个文件的流程如下:
1、查看文件的属主/属组是否是自己;
2、根据属主和属组的信息读取后面相应的RWX的权限;
3、如果不是属主也不是属组,则根据其他人权限;

修改属主/属组
chown

chgrp

如何操作

chmod 664 filename(数字方式)

[root@centos-node1 ~]# chmod 664 a
[root@centos-node1 ~]# ll a
-rw-rw-r-- 1 root root 0 Apr 28 06:18 a
[root@centos-node1 ~]# 

chmod g=rwx(UGO方式)

[root@centos-node1 ~]# ll b
-rw-r--r-- 1 root root 0 Apr 29 18:48 b
[root@centos-node1 ~]# chmod g=rwx b
[root@centos-node1 ~]# ll b
-rw-rwxr-- 1 root root 0 Apr 29 18:48 b

特殊权限

特殊权限有哪些

suid
拥有suid权限的文件,在其他用户执行该文件时会以属主的身份来执行该文件;

sgid
拥有sgid权限的文件,在其他用户执行该文件时会以属组的身份来执行该文件;

sticky
对一个目录设置sticky位,那么将能阻止用户删除或者重命名文件,除非用户是这个目录的所有者、文件所有者或者超级用户。它通常用来控制对共享目录(例如/tmp)的访问。

文件的特殊权限属性charrt
创建一个文件,不允许被修改,移动,删除,root用户也不行;---->/etc/passwd
创建一个文件,仅允许往里追加内容,不允许,移动,删除----->日志文件

如何使用特殊权限

  • suid:
    一般用于一些二进制的命令文件,让普通用户执行时能够以属主身份执行;
    一般文件如果没有执行权限的话,suid就会以S的方式显示;
[root@centos-node1 raiddata]# chmod u+s a.txt 
[root@centos-node1 raiddata]# ll
total 4
-rwSr--r-- 1 root root 5 Apr 29 19:31 a.txt
  • sgid
    设置在二进制执行文件上,让普通用户以属组的身份运行这个命令
    设置在一个目录上,该目录新建的文件会自动继承该目录的属组;

[root@centos-node1 raiddata]# ll -d sgidtext/
drwxr-xr-x 2 root root 6 Apr 29 19:40 sgidtext/

[root@centos-node1 raiddata]# chmod g+s sgidtext/

[root@centos-node1 raiddata]# ll -d sgidtext/
drwxr-sr-x 2 root root 6 Apr 29 19:40 sgidtext/

  • sticky
    设置了sbit以后,只有root能够删除所有文件,普通用户就算由W权限也只能够删除自己创建的文件;
[root@centos-node1 sgidtext]# ll -d /tmp/
drwxrwxrwx. 8 root root 229 Apr 29 17:07 /tmp/
[root@centos-node1 sgidtext]# chmod o+t /tmp/
[root@centos-node1 sgidtext]# ll -d /tmp/
drwxrwxrwt. 8 root root 229 Apr 29 17:07 /tmp/
[admin@centos-node1 sgidtext]$ rm -rf /tmp/*
rm: cannot remove ‘/tmp/hostname.txt’: Operation not permitted
rm: cannot remove ‘/tmp/ks-script-X5DPI_’: Operation not permitted
rm: cannot remove ‘/tmp/systemd-private-b36d23bd86f149f1a844b349b05bc330-httpd.service-GzWf0V’: Operation not permitted
rm: cannot remove ‘/tmp/yum.log’: Operation not permitted

  • charrt
    设置某一个文件只能进行某一个或者多个的操作,其他操作就算由权限也不允许,root也不行;
[root@centos-node1 raiddata]# ll charrt.txt 
-rw-r--r-- 1 root root 16 Apr 29 19:55 charrt.txt

[root@centos-node1 raiddata]# lsattr charrt.txt 
---------------- charrt.txt

[root@centos-node1 raiddata]# chattr +i charrt.txt 

[root@centos-node1 raiddata]# lsattr charrt.txt 
----i----------- charrt.txt

[root@centos-node1 raiddata]# echo "666" > charrt.txt
-bash: charrt.txt: Permission denied
[root@centos-node1 raiddata]# chattr -i charrt.txt

[root@centos-node1 raiddata]# lsattr charrt.txt
---------------- charrt.txt

[root@centos-node1 raiddata]# echo "666" >> charrt.txt
[root@centos-node1 raiddata]# cat charrt.txt
root
root
root
666

sudo提权

什么是提权

普通用户可以以root的身份去执行某一些命令;
前提是需要root授权;

如何授权

/etc/sudoers
在这里插入图片描述
用户-----------------以谁的身份执行-----------命令执行的路径

批量授权的方式:
设置用户别名,将用户分类;
设置命令别名,将命令分类;
统一授权,哪个用户能够以谁的身份执行什么样的命令;

总结

linux系统一切皆文件,我们做的一切操作都是对文件进行阅读、编辑、修改;
用户即能够对特定的一部分文件有相关的权限;
用户组即对用户进行一个归类, 方便统一调度;
权限即用户/组针对某一些文件能够执行什么样的动作 R W X;
sudo即普通用户没有这个权限,但是又需要执行这个命令,这个时候就需要sudo,普通用户以root的身份去运行一个/多个命令,前提是需要在sudoers文件里进行授权;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值