Linux 用户及权限

2021-12-15  本文已影响0人  paul_deng

概览

本文主要引导如何看用户和权限,及简单的权限设置,不做详细的用户增删查改等操作说明。

1. 查看用户

1.1 查看用户列表

$ cat /etc/passwd

输出说明:

# 格式
# 用户名:密码:用户ID:组ID:用户全名:主目录:登录shell
# 密码:存在/etc/shadow中,x表示有, !表示不能用密码访问
root:x:0:0:root:/root:/bin/bash
adm:x:3:4:adm:/var/adm:/sbin/nologin
...
deploy:x:1000:1000::/home/deploy:/bin/bash
backup:x:1001:1001::/home/backup:/bin/bash

1.2 查看用户组别

$ cat /etc/group

输出说明:

# 用户组:密码:GROUPID:组的附加用户(不含同名的默认用户)
# 密码: 真正的密码在 /etc/gshadow
root:x:0:
bin:x:1:
adm:x:4:
...
deploy:x:1000:
docker:x:992:deploy
backup:x:1001:

1.3 查看用户活动

显示当前登录系统的用户

$ who -H

$ w

2. 查看权限

2.1 查看文件权限

$ ls -lh /data

输出说明:

# 权限
# 第一列: 目录 + owner 权限 + group 权限 + others 的权限
# 第三列: owner
# 第四列: group
drwxr-xr-x 5 deploy deploy 4.0K Feb  3  2021 docker
drwx--x--x 3 root   root   4.0K Feb  3  2021 lib
drwx------ 2 root   root    16K Feb  3  2021 lost+found

2.2 查看进程权限

# 尝试用 backup 用户进入到容器(无权限)
backup$ docker exec -it saas bash
> Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/saas/json: dial unix /var/run/docker.sock: connect: permission denied

==可以看到拒绝了,因为 backup 用户没有该进程的访问权限==。通过 root 查看了 /var/run/docker.sock 的权限信息,如下:

root$ ls -lh /var/run/docker.sock
srw-rw---- 1 root docker 0 Jan 18  2021 /var/run/docker.sock

==可以看到 root 用户 和 docker 组拥有该进程的访问权限,所以只要把 backup 用户加入到 docker 组即可== 用户及组管理会在下面提及

3. 管理用户

# 新建用户
$ useradd [用户名]

# 密码设置
$ passwd [用户名]

用户默认会添加到自己的组别上,如果需要添加到其他组别以便获得对应组别的权限,则可以:

# 添加用户到某个组
$ usermod -a -G [组名] [用户名]

指令说明:

-G, --groups GROUPS           new list of supplementary GROUPS 
-a, --append          append the user to the supplemental GROUPS 

4. 管理权限

4.1 标准用户的管理员权限

默认添加的用户都是标准用户,如果我们需要给标准用户 root 权限,则将他加入到 sudoers (慎用)

# 打开 sudoers 文件
$ visudo

# 添加用户行到文件尾
[用户名]  ALL=(ALL)       ALL

# :wq 保存退出

测试:

# 切换用户
$ su [用户名]

# 进入到 sudo 模式(能进入则表示成功)
$ sudo su

4.2 管理文件夹的权限

参考 《Linux 目录文件权限》

5. 参考

Linux who命令

五分钟学会 Linux ACL 权限的全部内容

上一篇下一篇

猜你喜欢

热点阅读